diff --git a/wortschlucker/database.sqlite b/wortschlucker/database.sqlite index 04c9929..3cfa91c 100644 Binary files a/wortschlucker/database.sqlite and b/wortschlucker/database.sqlite differ diff --git a/wortschlucker/templates/poll_admin_details.html b/wortschlucker/templates/poll_admin_details.html index 50bc869..6663308 100644 --- a/wortschlucker/templates/poll_admin_details.html +++ b/wortschlucker/templates/poll_admin_details.html @@ -19,6 +19,7 @@
  • ${key}: ${value}
  • Edit this poll
  • +
  • Delete this poll
  • diff --git a/wortschlucker/wortschlucker.py b/wortschlucker/wortschlucker.py index 8bca1cf..88f990a 100755 --- a/wortschlucker/wortschlucker.py +++ b/wortschlucker/wortschlucker.py @@ -77,6 +77,15 @@ class Poll(sqlobject.SQLObject): def get_num_of_submissions(self): return WordSubmission.selectBy(poll_id=self.id).count() + def delete_poll(self): + submissions = WordSubmission.selectBy(poll_id=self.id) + settings = PollSetting.selectBy(poll_id=self.id) + for submission in submissions: + submission.destroySelf() + for setting in settings: + setting.destroySelf() + self.destroySelf() + def get_url(self): return "%spolls/%s" % (BASE_DICT["base_url"], self.hash_key) @@ -86,6 +95,9 @@ class Poll(sqlobject.SQLObject): def get_edit_url(self): return "%spolls/%s/admin" % (BASE_DICT["base_url"], self.admin_hash_key) + def get_delete_url(self): + return "%spolls/%s/delete" % (BASE_DICT["base_url"], self.admin_hash_key) + def get_creation_time_string(self): return str(self.timestamp_creation) @@ -171,6 +183,14 @@ def new_poll(submit=None, cancel=None, author=None, title=None, description=None new_poll = Poll(hash_key=hash_key, admin_hash_key=admin_hash_key, timestamp_creation=now, **data) return bobo.redirect(new_poll.get_admin_url()) +@bobo.query('/polls/:admin_hash_key/delete') +def delete_poll(admin_hash_key=None): + admin_poll_id = get_poll_admin_id(admin_hash_key) + if not admin_poll_id is None: + poll = Poll.get(admin_poll_id) + poll.delete_poll() + return bobo.redirect(BASE_DICT["base_url"]) + @bobo.query('/polls/:admin_hash_key/admin') def admin_poll(cancel=False, submit=None, admin_hash_key=None, author=None, title=None, description=None, **kwargs): value_dict = get_default_values()