Esempio n. 1
0
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')
Esempio n. 2
0
    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')
Esempio n. 3
0
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)