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 handle(self, *args, **options): # TODO: Remove or improve before production... logger.info('Deleting all surveys...') User.objects.filter(is_staff=False).delete() Survey.objects.all().delete() ChallengeDetail.objects.all().delete() logger.info('Starting import...') df = pd.read_excel(path.join(settings.BASE_DIR, 'respondents.xlsx'), sheetname='Delegates') df.fillna('', inplace=True) for idx, survey in df.iterrows(): data_raw = survey.to_dict() data = {k: str(v).strip() for k, v in data_raw.items()} try: country = Country.objects.get(name=data.get('country_of_operation')) data.update({'country_of_operation': country}) except Country.DoesNotExist: logger.warning('Could not find country %s' % data.get('country_of_operation')) data.update({'country_of_operation': None}) del data['countries'] # Create and associate user username = slugify(data.get('name')).replace('-', '_') slug = '{0}_{1}'.format(data.get('slug')[2:] or slug_generator(), username) logger.info(slug) user = User.objects.create_user(username[:30], data.get('email', ''), slug) survey = Survey(**data) survey.slug = slug survey.user = user survey.save() assign_perm('change_survey', user, obj=survey) # Creating challenges # for challenge in Challenge.objects.all(): # ChallengeDetail.objects.create(owner=slug, challenge=challenge) for rank in range(1, 4): ChallengeDetail.objects.create(respondent=survey, rank=rank) # try: # Survey(**data).save() # except IntegrityError: # logger.excep('Integ exisits: %s ' % data) # except: # logger.exception(data) # else: # for challenge in Challenge.objects.all(): # ChallengeDetail.objects.create(slug, challenge) logger.info('Done')
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)