def populate(): print('Populating Survey and Question ... ', end='') Survey.objects.all().delete() Question.objects.all().delete() Choice.objects.all().delete() Response.objects.all().delete() userList = User.objects.first() for title in titles: survey = Survey() survey.title = title survey.description = title survey.date = datetime.date.today() survey.startDate = survey.date survey.endDate = survey.startDate + datetime.timedelta(60) survey.user = userList survey.emailContent = '新的問題開始' survey.save() for content in contents: question = Question() question.survey = survey question.title += 'Q:' + title question.description += title + content + '\n' question.save() Choice.objects.create(question=question, name='是') Choice.objects.create(question=question, name='否,另有要事') print('done')
def post(self, request, *args, **kwargs): warnings = [] data = json.loads(request.POST.get('r')) title = data.get('title', '') slug = slugify(data.get('slug') or title) if not slug: warnings.append(_('Please enter a valid title.')) return HttpResponse(json.dumps({'status': 'failure', 'warnings': warnings}), mimetype='application/json') try: survey = self.get_object() if slug != survey.slug: warnings.append(_("This survey's URL has been changed. Be sure to update any QR code images.")) except AttributeError: survey = Survey(creator=request.user) survey.title = title survey.slug = slug survey.description = data.get('description', '') try: survey.save() except IntegrityError: warnings = [_('That title is already taken. Please choose a different one.')] return HttpResponse(json.dumps({'status': 'failure', 'warnings': warnings}), mimetype='application/json') # delete existing questions # due to cascading deletes, this will also delete choices QuestionGroup.objects.filter(pk__in=survey.question_set.all().values_list('group')).delete() survey.question_set.all().delete() questions = data.get('questions', []) groups = data.get('groups', []) survey.add_questions(questions, groups) return HttpResponse(json.dumps({'status': 'success', 'warnings': warnings, 'url': reverse('surveydashboard', args=[survey.slug])}), mimetype='application/json')
def post(self, request, *args, **kwargs): warnings = [] data = json.loads(request.POST.get('r')) title = data.get('title', '') slug = slugify(data.get('slug') or title) if not slug: warnings.append(_('Please enter a valid title.')) return HttpResponse(json.dumps({ 'status': 'failure', 'warnings': warnings }), mimetype='application/json') try: survey = self.get_object() if slug != survey.slug: warnings.append( _("This survey's URL has been changed. Be sure to update any QR code images." )) except AttributeError: survey = Survey(creator=request.user) survey.title = title survey.slug = slug survey.description = data.get('description', '') try: survey.save() except IntegrityError: warnings = [ _('That title is already taken. Please choose a different one.' ) ] return HttpResponse(json.dumps({ 'status': 'failure', 'warnings': warnings }), mimetype='application/json') # delete existing questions # due to cascading deletes, this will also delete choices QuestionGroup.objects.filter( pk__in=survey.question_set.all().values_list('group')).delete() survey.question_set.all().delete() questions = data.get('questions', []) groups = data.get('groups', []) survey.add_questions(questions, groups) return HttpResponse(json.dumps({ 'status': 'success', 'warnings': warnings, 'url': reverse('surveydashboard', args=[survey.slug]) }), mimetype='application/json')