Example #1
0
File: views.py Project: josben/flo
def registerGuest(request):
    if request.method == "POST":
        form = GuestSimplifiedForm(request.POST)
        if form.is_valid():
            try:
                guard = Guard.objects.get(staff=request.user.staff)
                branchoffice = GuardsToBranchoffice.objects.filter(guard=guard).filter(is_active=True)
            except Guard.DoesNotExist:
                messages.add_message(
                    request, messages.ERROR, "Usted %s no tiene permisos para registrar personas" % request.user
                )
                return HttpResponseRedirect("/register/guest_form/")

            val_document = form.cleaned_data["val_document"]
            reason = form.cleaned_data["reason"]

            try:
                guest = Guest.objects.get(val_document=val_document)
            except Guest.DoesNotExist:
                type_document = request.POST.get("type_document")
                city = request.POST.get("city")
                first_name = request.POST.get("first_name")
                last_name = request.POST.get("last_name")
                gender = request.POST.get("gender")

                guest = Guest(
                    first_name=first_name,
                    last_name=last_name,
                    type_document=type_document,
                    issue_document=city,
                    val_document=val_document,
                    gender=gender,
                )
                guest.save()

            gr = GuestRegistration(
                guest=guest, reason=reason, branchoffice=branchoffice[0].branchoffice, owner=request.user
            )
            gr.save()
            return HttpResponseRedirect("/register/guest_form/")
    else:
        try:
            guard = Guard.objects.get(staff=request.user.staff)
            branchoffice = GuardsToBranchoffice.objects.filter(guard=guard).filter(is_active=True)
            reg_without_exit = (
                GuestRegistration.objects.filter(branchoffice=branchoffice[0].branchoffice)
                .filter(time_out__isnull=True)
                .order_by("-time_entry")
            )
            form = GuestSimplifiedForm()
            return render(request, "guest_form.html", {"form": form, "rwe": len(reg_without_exit)})

        except Guard.DoesNotExist:
            messages.add_message(
                request, messages.WARNING, "Usted %s no tiene permisos para registrar personas" % request.user
            )
            reg_without_exit = GuestRegistration.objects.filter(time_out__isnull=True).order_by("-time_entry")

            form = GuestSimplifiedForm()
        return render(request, "guest_form.html", {"form": form, "rwe": len(reg_without_exit)})
Example #2
0
    def post(self, request):
        form = RegisterForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            user = Guest()
            user.email = data['email']
            user.set_password(data['password1'])
            user.first_name = data['first_name']
            user.last_name = data['last_name']
            user.save()

            confirmation_token = ConfirmationToken()
            confirmation_token.user = user
            confirmation_token.token = generate_unique_token()
            confirmation_token.expires = datetime.now() + timedelta(days=1)
            confirmation_token.save()

            user.send_email("Confirm your email",
                            "http://" + get_current_site(
                                    request).domain + "/auth/confirm/?token=" + confirmation_token.token)

            new_user = authenticate(username=data['email'], password=data['password1'])
            login(request, new_user)

            return redirect("index")

        data = dict(login_form=LoginForm(), register_form=form)

        return render(request, self.template_name, data)
Example #3
0
def booking(request):
    if request.method == 'POST':
        form = ReservationForm(request.POST)
        if form.is_valid():
            email = form.cleaned_data['email'].lower()
            email_liste = []
            for each in Guest.objects.all():
                if each.email is not None:
                    email_liste.append(each.email.lower())

            if email not in email_liste:
                guest = Guest(email=email,
                              first_name=form.cleaned_data['first_name'],
                              last_name=form.cleaned_data['last_name'])
                guest.save()
            else:
                guest = Guest.objects.all().get(email=email)
            success = make_reservation(Restaurant.objects.first(),
                                       guest,
                                       form.cleaned_data['start_date_time'],
                                       form.cleaned_data['number_of_people'],
                                       0,
                                       reminder=form.cleaned_data['reminder'])
            if success:
                send_confirmation(
                    guest,
                    Reservation.objects.all().get(id=success['reservation']))
                return render(request, 'reservations/success.html')
            else:
                return render(request, 'not_success.html')

    else:
        form = ReservationForm()
        return render(request, 'booking.html', {'form': form})
Example #4
0
    def post(self):
        email = self.request.get('email')

        error = check_email_valid(email)
        if not error and Guest.query(Guest.email == email).get():
            error = u"Данный Email уже существует"
        if error:
            invite = Invite.query(Invite.url == self.request.path[1:]).get()
            template_values = {
                'error': error,
                'title': invite.title,
                'url': invite.url,
            }
            template = JINJA_ENVIRONMENT.get_template('invite.html')
            self.response.write(template.render(template_values))
            return

        path = self.request.get('url')
        invite = Invite.query(Invite.url == path).get()
        if invite.count == invite.users_count:
            self.redirect('/')
            return
        invite.users_count += 1
        invite.put()

        token = hashlib.md5(u'%s-%s' % (datetime.now(), email)).hexdigest()
        guest = Guest(email=email,
                      token=token,
                      date=datetime.now(),
                      invite=invite)
        guest.put()
        self.response.set_cookie('token', token, max_age=3600)
        template = JINJA_ENVIRONMENT.get_template('sign.html')
        self.response.write(template.render())
Example #5
0
def walkin(request):
    form = WalkinForm(request.POST)
    if form.is_valid():
        guest = Guest(email='*****@*****.**',
                      first_name=form.cleaned_data['first_name'],
                      last_name=' ')
        guest.save()
        start_date = form.cleaned_data['start_date']
        start_time = datetime.strptime(str(form.cleaned_data['start_time']),
                                       "%H:%M").time()
        start_date_time = datetime.combine(start_date, start_time)
        success = make_reservation(Restaurant.objects.first(), guest,
                                   start_date_time,
                                   form.cleaned_data['number_of_people'], 1, 0)

        if success:
            return True
        else:
            return False
Example #6
0
def booking(request):
    form = ReservationForm(request.POST)
    if form.is_valid():
        email = form.cleaned_data['email'].lower()
        email_liste = []
        for each in Guest.objects.all():
            if each.email is not None:
                email_liste.append(each.email.lower())
        if email not in email_liste:
            guest = Guest(email=email,
                          first_name=form.cleaned_data['first_name'],
                          last_name=form.cleaned_data['last_name'])
            guest.save()
        else:
            guest = Guest.objects.all().get(email=email)

        start_date = form.cleaned_data['start_date']
        start_time = datetime.strptime(str(form.cleaned_data['start_time']),
                                       "%H:%M").time()
        start_date_time = datetime.combine(start_date, start_time)
        success = make_reservation(Restaurant.objects.first(),
                                   guest,
                                   start_date_time,
                                   form.cleaned_data['number_of_people'],
                                   0,
                                   reminder=form.cleaned_data['reminder'])
        if success:
            send_confirmation(
                guest,
                Reservation.objects.all().get(id=success['reservation']))
            return True
        else:
            return False

    else:
        form = ReservationForm()
        return render(request, 'newwalkin.html', {'form': form})
Example #7
0
    def post(self):
        email = self.request.get('email')
        pattern = re.compile("[^@]+@[^@]+\.[^@]+")
        if not pattern.match(email):
            self.redirect('/invite_view')
            return

        path = self.request.get('url')
        invite = Invite.query(Invite.url == path).get()
        if invite.count == invite.users_count:
            self.redirect('/')
            return
        invite.users_count += 1
        invite.put()

        token = hashlib.md5(u'%s-%s' % (datetime.now(), email)).hexdigest()
        guest = Guest(email=email,
                      token=token,
                      date=datetime.now(),
                      invite=invite)
        guest.put()
        self.response.set_cookie('token', token, max_age=3600)
        template = JINJA_ENVIRONMENT.get_template('sign.html')
        self.response.write(template.render())
Example #8
0
def guest_page(request):

    if request.method == 'POST':
        reservation_form = ReservationForm(request.POST)

        if reservation_form.is_valid():
            email = reservation_form.cleaned_data['email'].lower()
            email_liste = []
            for guestobj in Guest.objects.all():
                if guestobj.email is not None:
                    email_liste.append(guestobj.email.lower())

            if email not in email_liste:
                guest = Guest(
                    email=email,
                    first_name=reservation_form.cleaned_data['first_name'],
                    last_name=reservation_form.cleaned_data['last_name'])
                guest.save()
            else:
                guest = Guest.objects.all().get(email=email)

            if reservation_form.is_valid():
                start_date = reservation_form.cleaned_data['start_date']
                start_time = datetime.strptime(
                    str(reservation_form.cleaned_data['start_time']),
                    "%H:%M").time()
                start_date_time = datetime.combine(start_date, start_time)

                success = make_reservation(
                    Restaurant.objects.first(),
                    guest,
                    start_date_time,
                    reservation_form.cleaned_data['number_of_people'],
                    False,
                    reminder=reservation_form.cleaned_data['reminder'])

                if success:
                    send_confirmation(
                        guest,
                        Reservation.objects.all().get(
                            id=success['reservation']))
                    messages.success(request,
                                     'Reservasjonen din er registrert')
                    reservation_form = ReservationForm()
                    return render(request, 'guestpage.html',
                                  {'form': reservation_form})
                else:
                    messages.warning(request,
                                     'Noe gikk galt. Vennligst prøv igjen')
                    reservation_form = ReservationForm()
                    return render(request, 'guestpage.html',
                                  {'form': reservation_form})
        else:
            messages.error(request,
                           'Det er noe galt med utfyllingen av feltene')
            reservation_form = ReservationForm()
            return render(request, 'guestpage.html',
                          {'form': reservation_form})

    else:
        reservation_form = ReservationForm()
        return render(request, 'guestpage.html', {'form': reservation_form})
Example #9
0
def activate(request, code=None):
    if request.POST:
        gf = GuestFormCreate(request.POST)
        if gf.is_valid():
            g = Guest()
            g.uid = gf.cleaned_data['uid']
            g.mail = request.session['validated_mail']
            g.givenName = gf.cleaned_data['givenName']
            g.sn = gf.cleaned_data['sn']
            g.userPassword = ssha(gf.cleaned_data['userPassword']) # ssha the new password
            g.save()
            del request.session['validated_mail']
            messages.add_message(request, messages.SUCCESS, _('Account %(uid)s created.') % {'uid': g.uid})
            request.session['uid'] = g.uid
            return redirect('guest.views.me')
    else:
        try:
            obj = signing.loads(code)
        except signing.BadSignature:
            messages.add_message(request, messages.ERROR, _("The activation link is broken. Are you shure you've entered it correctly?"))
            logger.error('User entered broken activation link. Possible user copy/paste error.')
            return redirect('guest.views.home')
        if time.time() - obj['time'] > 60*60*settings.LINK_EXPIRY:
            messages.add_message(request, messages.ERROR, _('The activation link has expired. Please register again to recieve a new one.'))
            logger.error('User entered expired activation link. Possible server clock error. If not, consider increasing the LINK_EXPIRY setting.')
            return redirect('guest.views.home')
        else:
            if 'uid' in obj:
                g = get_object_or_404(Guest, uid=obj['uid'])
                g.mail = obj['mail']
                g.save()
                request.session['uid'] = g.uid
                messages.add_message(request, messages.SUCCESS, _('Mail updated.'))
                return redirect('guest.views.me')
            else:
                request.session['validated_mail'] = obj['mail']
                gf = GuestFormCreate()
    return render(request, 'guest/form.html', {
        'form': gf,
        'title': _('Activate account'),
        })
Example #10
0
    def seed(self):
        for i in range(10):
            first_name = names.get_first_name()
            last_name = names.get_full_name()

            guest = Guest()
            guest.role = "GUEST"
            guest.email = "*****@*****.**" % str(i)
            guest.set_password('password')
            guest.first_name = first_name
            guest.last_name = last_name
            guest.is_active = True
            guest.is_confirmed = True
            guest.is_staff = False
            guest.is_superuser = False

            guest.save()