added poll deletion
This commit is contained in:
parent
81df603ba2
commit
366b11d733
3 changed files with 21 additions and 0 deletions
Binary file not shown.
|
@ -19,6 +19,7 @@
|
||||||
<li py:for="key, value in poll.get_settings().items()">${key}: ${value}</li>
|
<li py:for="key, value in poll.get_settings().items()">${key}: ${value}</li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li><a href="${poll.get_edit_url()}" title="edit this poll">Edit this poll</a></li>
|
<li><a href="${poll.get_edit_url()}" title="edit this poll">Edit this poll</a></li>
|
||||||
|
<li><a href="${poll.get_delete_url()}" title="delete this poll">Delete this poll</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -77,6 +77,15 @@ class Poll(sqlobject.SQLObject):
|
||||||
def get_num_of_submissions(self):
|
def get_num_of_submissions(self):
|
||||||
return WordSubmission.selectBy(poll_id=self.id).count()
|
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):
|
def get_url(self):
|
||||||
return "%spolls/%s" % (BASE_DICT["base_url"], self.hash_key)
|
return "%spolls/%s" % (BASE_DICT["base_url"], self.hash_key)
|
||||||
|
|
||||||
|
@ -86,6 +95,9 @@ class Poll(sqlobject.SQLObject):
|
||||||
def get_edit_url(self):
|
def get_edit_url(self):
|
||||||
return "%spolls/%s/admin" % (BASE_DICT["base_url"], self.admin_hash_key)
|
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):
|
def get_creation_time_string(self):
|
||||||
return str(self.timestamp_creation)
|
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)
|
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())
|
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')
|
@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):
|
def admin_poll(cancel=False, submit=None, admin_hash_key=None, author=None, title=None, description=None, **kwargs):
|
||||||
value_dict = get_default_values()
|
value_dict = get_default_values()
|
||||||
|
|
Loading…
Reference in a new issue