diff options
-rw-r--r-- | askbot/skins/default/templates/delete_ask_widget.html | 14 | ||||
-rw-r--r-- | askbot/skins/default/templates/list_ask_widget.html | 2 | ||||
-rw-r--r-- | askbot/tests/widget_tests.py | 13 | ||||
-rw-r--r-- | askbot/urls.py | 6 | ||||
-rw-r--r-- | askbot/views/widgets.py | 9 |
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: <script type="text/javascript" src=http://{{request.get_host()}}{% url render_ask_widget widget.id%} ><script> {%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): |