示例#1
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
        })
示例#2
0
def generate_qr(request, id):
    try:
        permission = Permission.objects.get(id=id)
        event = permission.event
        description = event.description
        allowed_rooms = event.rooms
        company = event.company
        start_date = event.start_date
        end_date = event.end_date
        name = permission.user_id.name

    except Permission.DoesNotExist:
        return error_happened(request, 'Invalid code for QR generation')
    else:
        return render(
            request, 'end_user/generate_qr.html', {
                'generating_qr': True,
                'qr_id': id,
                'allowed_rooms': allowed_rooms,
                'event': event,
                'company': company,
                'start_date': start_date,
                'end_date': end_date,
                'year': datetime.now().year,
                'title': 'QR Generated',
                'name': name,
                'description': description,
            })
示例#3
0
def list_events(request):
    logged_user = request.user.username
    # TODO implement paginator, it comes in handy here
    events = Company.objects.get(
        name=logged_user).event_set.all().order_by('-start_date')
    if events.exists():
        return render(request, 'event/list.html', {
            'events': events,
            'year': datetime.now().year,
            'title': 'Your events'
        })
    return error_happened(request, 'You have no events to list')
示例#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 permission_details(request, permission_id):

    try:
        permission = Permission.objects.get(pk=permission_id)
    except Permission.DoesNotExist:
        return error_happened(request, 'Invalid code')

    qr_user = permission.user_id
    event = permission.event

    return render(
        request, 'end_user/details.html', {
            'year': datetime.now().year,
            'title': 'Details',
            'qr_user': qr_user,
            'event': event
        })
示例#6
0
def event_details(request, event_id):

    logged_user = request.user.username
    company = Company.objects.get(name=logged_user)

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

    permissions = Permission.objects.filter(event=event)

    attendees = []
    for permission in permissions:
        attendee = permission.user_id
        attendees.append(attendee)

    return render(
        request, 'event/details.html', {
            'year': datetime.now().year,
            'title': 'Details',
            'event': event,
            'attendees': attendees
        })