Example #1
0
def register(request):
    pform = PersonForm(request.POST or None)

    # Remove the stupid help text.
    stupid_help_text = _(u'Hold down "Control", or "Command" on a Mac, to select more than one.')
    for field in ("driver_license", "forklift_license"):
        pform.fields[field].help_text = pform.fields[field].help_text.replace(stupid_help_text, "").strip()

    if request.method == "POST":
        if pform.is_valid():
            person = pform.save()

            password = User.objects.make_random_password(length=15)
            user = User.objects.create_user(person.email, person.email, password)
            user.save()

            person.user = user
            person.save()

            # TODO: Add support for templates in database.

            # Prepare an e-mail
            current_site = Site.objects.get_current()
            mail_template = loader.get_template("recruitment/register_confirmation_mail.txt")
            mail_context = RequestContext(
                request,
                {
                    "person": person,
                    "password": password,
                    "email_hash": person.email_hash,
                    "domain": current_site.domain,
                },
            )

            # Send the mail to the user
            send_mail(
                _(u"[CHARM] Thank you for registering!"),
                mail_template.render(mail_context),
                "noreply@%s" % current_site.domain,
                [person.email],
                fail_silently=True,
            )

            loggedin_user = authenticate(username=person.email, password=password)
            if loggedin_user is not None:
                messages.success(
                    request,
                    _(u"Thank you for registering. You will receive an e-mail within 24 hours with more information."),
                )
                login(request, loggedin_user)

            return HttpResponseRedirect(reverse("mypage"))

    return render(
        request,
        "recruitment/register.html",
        {"page_title": _(u"Register!"), "button_text": _(u"Register!"), "form": pform},
    )
Example #2
0
def edit_my_profile(request):
    u"""Edit the profile + the username of the user."""

    person = Person.objects.get(user=request.user)
    pform = PersonForm(request.POST or None, instance=person)
    if request.method == "POST":
        if pform.is_valid():
            personf = pform.save()

            request.user.username = personf.email
            request.user.email = personf.email
            request.user.save()

            return HttpResponseRedirect(reverse("mypage"))

    return render(
        request,
        "recruitment/register.html",
        {"page_title": _(u"Edit my profile"), "button_text": _(u"Save!"), "form": pform},
    )