コード例 #1
0
ファイル: views.py プロジェクト: nonZero/Hackita02
    def form_valid(self, form):
        u = self.request.user
        data = form.cleaned_data
        form_name = get_user_next_form(u)

        logger.info("User %s filled %s" % (u, form_name))

        a = models.Answer.objects.create(user=u, q13e_slug=form_name, data=data)

        try:
            app = u.application
        except models.Application.DoesNotExist:
            app = models.Application(user=u)
        app.forms_filled = u.answers.count()
        app.last_form_filled = a.created_at
        app.save()

        if get_user_next_form(u) is None:
            app.set_and_log_status(app.Status.REGISTERED, None)
            messages.success(self.request, _("Registration completed! Thank you very much!"))
            text, html = self.get_summary_email(u)
            mail_managers(_("User registered: %s") % u.email, text, html_message=html)
            return redirect("sa:dashboard")

        messages.success(self.request, _("'%s' was saved.") % form.form_title)

        return redirect(reverse("sa:register"))
コード例 #2
0
ファイル: views.py プロジェクト: Travel-Agent1/hackforisrael
    def form_valid(self, form):
        u = self.request.user
        data = form.cleaned_data
        form_name = get_user_next_form(u)

        logger.info("User %s filled %s" % (u, form_name))

        a = Answer.objects.create(user=u, q13e_slug=form_name, data=data)

        # Save personal information
        if form_name == FORM_NAMES[0]:
            if not u.first_name:
                u.first_name = data['hebrew_first_name']
            if not u.last_name:
                u.last_name = data['hebrew_last_name']
            update_personal_details(u, data)
            u.save()  # keep it on the safe side

            message = "\n".join(u"{label}: {html}".format(**fld) for fld in
                                get_pretty_answer(form, data)['fields'])
            mail_managers(u"{}: {hebrew_last_name} {hebrew_first_name}".format(
                _("New User"), **data), message)

        elif form_name == 'cohort1':
            COHORTS = (
                ('group_monday_morning', 1),
                ('group_thursday_morning', 2),
                ('group_evenings', 3),
            )
            cohorts = {x[1]: Cohort.objects.get(ordinal=x[1]) for x in COHORTS}
            for k, ordinal in COHORTS:
                v = data[k] == u"כן"
                UserCohort.objects.create(user=u, cohort=cohorts[ordinal],
                                          status=UserCohortStatus.AVAILABLE if v else
                                          UserCohortStatus.UNAVAILABLE)

        # update denormalized index fields
        u.forms_filled = u.answers.count()
        u.last_form_filled = a.created_at
        u.save()

        if get_user_next_form(u) is None:
            messages.success(self.request,
                             _("Registration completed! Thank you very much!"))
            url = self.request.build_absolute_uri(reverse('user_dashboard',
                                                          args=(u.id,)))
            mail_managers(_("User registered: %s") % u.email, url)
            return redirect('dashboard')

        messages.success(self.request, _("'%s' was saved.") % form.form_title)

        return redirect('register')
コード例 #3
0
ファイル: views.py プロジェクト: Travel-Agent1/hackforisrael
    def get_context_data(self, **kwargs):
        d = super(Dashboard, self).get_context_data(**kwargs)

        d['registered'] = get_user_next_form(self.request.user) is None

        if d['registered']:
            d['answers'] = get_user_pretty_answers(self.request.user)

        return d
コード例 #4
0
ファイル: views.py プロジェクト: nonZero/Hackita02
    def get_context_data(self, **kwargs):
        d = super().get_context_data(**kwargs)

        d["registered"] = get_user_next_form(self.request.user) is None

        # if d['registered']:
        #     d['answers'] = get_user_pretty_answers(self.request.user)

        return d
コード例 #5
0
ファイル: views.py プロジェクト: nonZero/Hackita02
    def get_context_data(self, **kwargs):
        d = super().get_context_data(**kwargs)
        d["registered"] = get_user_next_form(self.request.user) is None
        d["needs_personal_details"] = not hasattr(self.request.user, "personalinfo")
        if d["registered"]:
            projects = Project.objects.published().random().with_votes(self.request.user)
            d["pending"] = [p for p in projects if not p.vote]
            d["processed"] = sorted([p for p in projects if p.vote], key=lambda p: p.vote.score, reverse=True)

        d["note_form"] = self.get_note_form()
        d["notes"] = self.request.user.notes.filter(visible_to_user=True)

        return d
コード例 #6
0
ファイル: views.py プロジェクト: Travel-Agent1/hackforisrael
    def get_form_class(self):
        form_name = get_user_next_form(self.request.user)
        if not form_name:
            return None

        return FORMS[form_name]
コード例 #7
0
ファイル: views.py プロジェクト: yotammanor/Hackita02
 def get_context_data(self, **kwargs):
     d = super().get_context_data(**kwargs)
     d["registered"] = get_user_next_form(self.request.user) is None
     d["needs_personal_details"] = not hasattr(self.request.user, "personalinfo")
     return d