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 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 create_survey(request): if request.POST: survey_title = request.POST.get("survey_title") survey_description = request.POST.get("survey_description") if survey_title == "New Survey(Click to change)": survey_title = "No title" if survey_description == "Add description here" or survey_description == "Click here to add...": survey_description = "" publishBool = request.POST.get("publishBool") survey = Survey(title=survey_title) survey.description = survey_description creator = User.objects.get(id = int(request.POST.get( "creatorID"))) survey.user = creator survey.theme_name = request.POST.get("theme_name") deadline = request.POST.get("survey_deadline") survey.deadline = datetime.strptime(deadline.strip(), "%d/%m/%Y") survey.save() collaborators = request.POST.get("collaborators") collaborators = collaborators.split(",") try: collaborators.remove("") except BaseException as e: pass for collaborator_id in collaborators: collaboration = Collaboration() collaboration.user = User.objects.get(id = int(collaborator_id)) collaboration.survey = survey collaboration.is_active = True collaboration.save() if publishBool == 'true': survey.is_published = True survey.save() surveyID = survey.id dict = {"surveyID": surveyID, "survey_key": survey.key} return HttpResponse(simplejson.dumps(dict), mimetype='application/javascript') return error_jump(request)