示例#1
0
def create_event(request):
    if request.method == 'POST':

        logged_user = request.user.username
        form = EventCreation(request.POST, logged_user=logged_user)
        if form.is_valid():
            data = form.cleaned_data
            company = Company.objects.get(name=logged_user)

            event = Event.objects.create(name=data['name'],
                                         company=company,
                                         start_date=data['start_date'],
                                         end_date=data['end_date'],
                                         event_id=generate_token(),
                                         description=data['description'])
            for room in data['allowed_rooms']:
                event.rooms.add(room)

            return success_happened(
                request, 'Succesfully created the event %s' % data['name'])

    else:
        form = EventCreation(logged_user=request.user.username)

    return render(
        request, 'event/create.html', {
            'creating_event': True,
            'form': form,
            'year': datetime.now().year,
            'title': 'Create an event'
        })
示例#2
0
def company_registration(request):

    if request.method == 'GET':
        form = CompanyForm()
        return render(request, 'company/company_registration.html', {
            'title': 'Company registration',
            'form': form
        })

    if request.method == 'POST':
        form = CompanyForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            Company.objects.create(email=data['email'],
                                   telephone=data['telephone'],
                                   name=data['name'],
                                   address=data['address'])
            User.objects.create_user(username=data['name'],
                                     password=data['password'],
                                     email=data['email'])
            send_validation_email(data['email'], request)
            return success_happened(
                request, 'Company {company} successfuly created'.format(
                    company=data['name']))
        return render(request, 'company/company_registration.html', {
            'title': 'Company registration',
            'form': form
        })

    return Http404()
示例#3
0
def add_attendee(request, event_id):
    if request.POST:
        logged_user = request.user.username
        form = AttendeeRegistration(request.POST)
        if form.is_valid():

            data = form.cleaned_data
            user_id = data['user_id']
            name = data['name']
            last_name = data['last_name']
            email = data['email']
            event_id = data['event_id']

            company = Company.objects.get(name=logged_user)
            # TODO check if ID exists
            event = Event.objects.get(event_id=event_id)
            if event.company != company:
                return error_happened(request, 'Invalid event')
            if event.end_date < date.today():
                return error_happened(request, 'Event has already finished')

            # TODO what if id is already registered but with a different email or name?

            if not EndUser.objects.filter(id=user_id).exists():
                user = EndUser.objects.create(id=user_id,
                                              name=name,
                                              last_name=last_name,
                                              email=email)
                user.save()
            else:
                user = EndUser.objects.get(id=user_id)

            if not Permission.objects.filter(user_id=user,
                                             event=event).exists():
                token_id = generate_token()
                permission = Permission.objects.create(user_id=user,
                                                       event=event,
                                                       id=token_id)
            else:
                return error_happened(
                    request,
                    '%s %s is already registered in event' % (name, last_name))

            send_qr_email(email, event, token_id, request)
            return success_happened(
                request, 'Succesfully added %s %s to %s' %
                (name, last_name, event.name))

    else:
        form = AttendeeRegistration(initial={'event_id': event_id})
        event = Event.objects.get(event_id=event_id)

    return render(
        request, 'event/add_attendee.html', {
            'form': form,
            'year': datetime.now().year,
            'title': 'Adding Attendee to %s' % event.name
        })
示例#4
0
def delete_event(request, event_id):

    logged_user = request.user.username

    try:
        company = Company.objects.get(name=logged_user)
        event = Event.objects.get(event_id=event_id, company=company)
    except Event.DoesNotExist:
        return error_happened(request, 'Invalid event')

    event.delete()

    return success_happened(request,
                            'Succesfully deleted the event %s' % event.name)
示例#5
0
def edit_event(request, event_id):

    event = Event.objects.get(event_id=event_id)

    if request.method == 'POST':

        logged_user = request.user.username
        form = EventCreation(request.POST, logged_user=logged_user)
        if form.is_valid():
            data = form.cleaned_data
            company = Company.objects.get(name=logged_user)
            event.name = data['name']
            event.company = company
            event.start_date = data['start_date']
            event.end_date = data['end_date']
            event.description = data['description']
            event.save()
            event.rooms.clear()
            for room in data['allowed_rooms']:
                event.rooms.add(room)

            return success_happened(
                request, 'Succesfully updated the event %s' % data['name'])

    else:
        form = EventCreation(logged_user=request.user.username,
                             initial={
                                 'name': event.name,
                                 'start_date': event.start_date,
                                 'end_date': event.end_date,
                                 'description': event.description,
                                 'allowed_rooms': event.rooms.all
                             })

    return render(
        request, 'event/create.html', {
            'creating_event': True,
            'editing_event': True,
            'form': form,
            'year': datetime.now().year,
            'title': 'Edit an event'
        })
示例#6
0
def user_registration(request):

    form = AttendeeRegistration(request.POST)

    if form.is_valid():
        data = form.cleaned_data
        user_id = data['user_id']
        name = data['name']
        last_name = data['last_name']
        email = data['email']
        event_id = data['event_id']

        if not Event.objects.filter(event_id=event_id).exists():
            return HttpResponse('Evento inválido')
        else:
            event = Event.objects.get(event_id=event_id)

        # TODO what if id is already registered but with a different email or name?

        if not EndUser.objects.filter(id=user_id).exists():
            user = EndUser.objects.create(id=user_id,
                                          name=name,
                                          last_name=last_name,
                                          email=email)
            user.save()
        else:
            user = EndUser.objects.get(id=user_id)

        if not Permission.objects.filter(user_id=user, event=event).exists():
            token_id = generate_token()
            permission = Permission.objects.create(user_id=user,
                                                   event=event,
                                                   id=token_id)
        else:
            return HttpResponse(False)

        send_qr_email(email, event, token_id, request)
        return success_happened(request,
                                'Please check %s to get your QR code!' % email)

    else:
        return HttpResponse(False)