#8: Delete Answers
- Contents
Allow for deleting selected respondents answers
- Proposed by
- adamu
- Proposal type
- User interface
- State
- being-discussed
Motivation
Suggested by a user:
Proposal
Would it be difficult to implement a "delete this answer" or rather "delete this respondent" in the HTML view_results page? I have a lot of test / bogus entries in my data and would like to delete them on the level of CMFQuestions rather than filter them out in the spreadsheet software each time I load an updated list....


Delete Answer
Thank you for your useful Product.
I have added this feature simplly as follows.
First, I added
deleteAnswermethod intoclass Questionnaire. --- security.declareProtected(CMFCorePermissions.ModifyPortalContent,deleteAnswer) def deleteAnswer(self, userid): answered_flag = 0 for q in self.getAllQuestions(): if q.values_by_user.has_key(userid): if self.getCompletedFor(userid): if q.getQuestionType() !=textand q.getQuestionType() != 'area': values = q.getAnswerFor(userid).split(##,len(q.getAnswerOptions())) for value in values: if not q.value_counts.has_key(value): q.value_counts[value] = 0 q.value_counts[value] -= 1 del q.values_by_user[userid] q._p_changed = 1 answered_flag = 1 count = 0 for i in self.completed: if i == userid: del self.completed[count] count += 1 self._p_changed = 1 return answered_flag ---Second, I added python script
delete_answer.pyinto skin directory. --- ## Script (Python) "delete_answer" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters=delete_answer_button=None,delete_answer_text="" ##title= ## if delete_answer_button: answered_flag = context.deleteAnswer(delete_answer_text) go = context.REQUEST.RESPONSE.redirect if answered_flag: go("%s/html_spreadsheet?portal_status_message=%s" % (context.absolute_url(), "Answer deleted.")) else: go("%s/html_spreadsheet" % (context.absolute_url())) ---Finally, I added a delete form into
---html_spreadsheet.pt---Thank you!
t_oku