summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdolfo Fitoria <adolfo.fitoria@gmail.com>2012-08-15 14:50:15 -0600
committerAdolfo Fitoria <adolfo.fitoria@gmail.com>2012-08-15 14:50:15 -0600
commit116a95d146c4502e484f9dd6f29cb11d5d7475c7 (patch)
tree2b97b393335bca79ae65a22aa5a528d99a96b839
parent5ac6c13edf6cbe2c1af72de0cc06bd31bd279f84 (diff)
downloadaskbot-116a95d146c4502e484f9dd6f29cb11d5d7475c7.tar.gz
askbot-116a95d146c4502e484f9dd6f29cb11d5d7475c7.tar.bz2
askbot-116a95d146c4502e484f9dd6f29cb11d5d7475c7.zip
Added delete view
-rw-r--r--askbot/skins/default/templates/delete_ask_widget.html14
-rw-r--r--askbot/skins/default/templates/list_ask_widget.html2
-rw-r--r--askbot/tests/widget_tests.py13
-rw-r--r--askbot/urls.py6
-rw-r--r--askbot/views/widgets.py9
5 files changed, 43 insertions, 1 deletions
diff --git a/askbot/skins/default/templates/delete_ask_widget.html b/askbot/skins/default/templates/delete_ask_widget.html
new file mode 100644
index 00000000..17f48b8c
--- /dev/null
+++ b/askbot/skins/default/templates/delete_ask_widget.html
@@ -0,0 +1,14 @@
+{% extends "one_column_body.html" %}
+<!-- create_ask_widget.html -->
+{% block title %}Delete Ask Question Widget{% endblock %}
+{% block content %}
+<h1>Are you sure that you cant to delete this Ask Question Widget?</h1>
+<br/>
+<strong>Warning: This could break the widgets on sites that currently use this widget please make sure that you don't use the widget in other sites</strong>
+<form action="." method="POST">
+ <p><input type='submit' value='Delete' /> <a href="{% url list_ask_widgets %}">Go Back</a></p>
+</form>
+{% endblock %}
+{% block endjs %}
+{% endblock %}
+
diff --git a/askbot/skins/default/templates/list_ask_widget.html b/askbot/skins/default/templates/list_ask_widget.html
index bda917a4..d3ee6f3a 100644
--- a/askbot/skins/default/templates/list_ask_widget.html
+++ b/askbot/skins/default/templates/list_ask_widget.html
@@ -5,7 +5,7 @@
<h1>Ask Question widget list</h1>
{%for widget in widgets%}
- <p>Widget: {{widget.title}} (<a href="{% url edit_ask_widget widget.id %}">Edit</a>)</p>
+ <p>Widget: {{widget.title}} | <a href="{% url edit_ask_widget widget.id %}">Edit</a> | <a href="{% url delete_ask_widget widget.id %}">Delete</a> </p>
<p>Code: &lt;script type="text/javascript" src=http://{{request.get_host()}}{% url render_ask_widget widget.id%} &gt;&lt;script&gt;
{%endfor%}
diff --git a/askbot/tests/widget_tests.py b/askbot/tests/widget_tests.py
index 673b17f4..0ead07f5 100644
--- a/askbot/tests/widget_tests.py
+++ b/askbot/tests/widget_tests.py
@@ -110,3 +110,16 @@ class WidgetCreatorViewsTests(AskbotTestCase):
response = self.client.post(reverse('edit_ask_widget',
args=(self.widget.id, )), post_data)
self.assertEquals(response.status_code, 302)
+
+ def test_delete_ask_widget_get(self):
+ self.client.login(username='user1', password='testpass')
+ response = self.client.get(reverse('delete_ask_widget',
+ args=(self.widget.id, )))
+ self.assertEquals(response.status_code, 200)
+ self.assertTrue('widget' in response.context)
+
+ def test_delete_ask_widget_post(self):
+ self.client.login(username='user1', password='testpass')
+ response = self.client.post(reverse('delete_ask_widget',
+ args=(self.widget.id, )))
+ self.assertEquals(response.status_code, 302)
diff --git a/askbot/urls.py b/askbot/urls.py
index f4576465..8b0cb7cb 100644
--- a/askbot/urls.py
+++ b/askbot/urls.py
@@ -413,6 +413,12 @@ urlpatterns = patterns('',
name = 'edit_ask_widget'
),
url(
+ r'^widgets/ask/delete/(?P<widget_id>\d+)/$',
+ views.widgets.delete_ask_widget,
+ name = 'delete_ask_widget'
+ ),
+
+ url(
r'^widgets/ask/$',
views.widgets.list_ask_widget,
name = 'list_ask_widgets'
diff --git a/askbot/views/widgets.py b/askbot/views/widgets.py
index e0d4b061..879e44e2 100644
--- a/askbot/views/widgets.py
+++ b/askbot/views/widgets.py
@@ -127,6 +127,15 @@ def edit_ask_widget(request, widget_id):
data = {'form': form}
return render_into_skin('ask_widget_form.html', data, request)
+@decorators.admins_only
+def delete_ask_widget(request, widget_id):
+ widget = get_object_or_404(models.AskWidget, pk=widget_id)
+ if request.method=="POST":
+ widget.delete()
+ return redirect('list_ask_widgets')
+ else:
+ return render_into_skin('delete_ask_widget.html',
+ {'widget': widget}, request)
#TODO: Add cache
def render_ask_widget_js(request, widget_id):