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' })
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()
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 })
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)
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' })
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)