def dummy(): # Create a user if they do not exist. user = User.query.filter_by(email="*****@*****.**").first() if not user: user = User("*****@*****.**", "123456") user.save() for i in range(100): # Add events to the database event = Event(faker.lorem_ipsum.title(words_quantity=10), faker.name.location(), faker.date.date(), user.id) event.save() for j in range(500): # Add guests to the database guest = Guest(faker.name.first_name(), faker.name.last_name(), faker.name.company_name(), faker.email.address(user=None), user.id) guest.save() for ev in range(1000): # Add tickets to the event event = Event.query.filter_by(event_id=randint(1, Event.query.count() - 1)).first() guest = Guest.query.filter_by(guest_id=randint(1, Guest.query.count() - 1)).first() ticket = Ticket(event.event_id, guest.guest_id, faker.lorem_ipsum.words(quantity=15, as_list=False), faker.basic.number(at_least=0, at_most=1), faker.basic.number(at_least=0, at_most=1), faker.basic.number(at_least=0, at_most=1000)) db.session.add(ticket) try: db.session.commit() except IntegrityError: db.session.rollback()
def saveEvent(uid, eventType, time): event = Event( uid, eventType, time ) event.add(event)
def add_event_post(eventId): user = DB.find_one(collection="Profile", query={"email": current_user.email}) if user is None: flash('Please create your profile first!') return redirect(url_for('edit_profile')) author_id = user['_id'] timestamp = datetime.now() post_text = request.form['post_text'] newPost = Post(author_id, timestamp, post_text) newPostId = newPost.insert() Event.add_post_by_id(ObjectId(eventId), newPostId) return redirect(url_for('display_event', id=eventId))
def put(self, event_id): """ PUT Method for Event. Login required :param event_id: :return: JSON response """ event = Event.query.filter_by(id=event_id).first() if event is None: return self.response(404) params = self.get_form_values(Event.get_columns(), request.form) country = Country.query.filter_by(iso_code=str(params['country_id'].upper())).first() if country is None: return self.response(400, "The country_id doesn't exists") if params['title']: event.title = params['title'] if params['description']: event.description = params['description'] if params['category_id']: event.category_id = params['category_id'] if params['country_id']: event.country_id = country.id event.save() return self.response(200)
def before_request(self, name, event_id=None, *args, **kwargs): self.event = Event.load(event_id) self.validate_show(self.event) self.daily_plans = self.event.active_daily_plans self.split_recipes = self.event.daily_recipes_split_by_shopping self.ingredients = DailyPlan.load_ingredient_amounts_for_daily_plans( [dp.id for dp in self.daily_plans])
def before_request(self, name, hash_value): from app.helpers.general import unobscure event_id = unobscure(hash_value) self.event = Event.load(event_id) self.validate_show(self.event) if current_user in self.event.connected_users: return redirect(url_for("EventView:show", id=event_id))
def add_event(): event_date = request.form['date'] event_name = request.form['name'] event_guests = request.form['guests'] event_room = request.form['room'] event_description = request.form['description'] event_recurring = request.form['recurring'] new_event = Event(event_date, event_name, event_guests, event_room, event_description, event_recurring) add_new_event(new_event) return render_template('index.html', title="Bookings", events=events)
def post(self): """ POST Method for Event. Login required :return: JSON response """ try: self.validate_fields(Event.required_fields(), request.form) except ValueError: return self.response(400, 'Required fields: ' + ' '.join(Event.required_fields())) params = self.get_form_values(Event.get_columns(), request.form) country = Country.query.filter_by(iso_code=str(params['country_id'].upper())).first() if country is None: return self.response(400, "The country_id doesn't exists") if params['category_id']: category = EventCategory.query.filter_by(id=params['category_id']).first() if category is None: return self.response(400, "The category_id doesn't exists") new_event = Event( title=params['title'], description=params['description'], category_id=params['category_id'], country_id=country.id, ) new_event.save() return self.response(201)
def create_event(current_user): """ Create an event from the sent json data. :param current_user: Current User :return: """ if request.content_type == 'application/json': data = request.get_json().get("event") name = data.get('name') if data.get('name') is not None else None location = data.get('location') if data.get( 'location') is not None else None time = data.get('time') if data.get('time') is not None else None eval_link = data.get('eval_link') if data.get( 'eval_link') is not None else None if name and location and time: user_event = Event(name, location, time, current_user.id) user_event.event_eval_link = eval_link user_event.save() return response_for_created_event(user_event, 201) return response('failed', 'Missing some event data, nothing was changed', 400) return response('failed', 'Content-type must be json', 202)
def edit_event(current_user, event_id): """ Validate the event Id. Also check for the data in the json payload. If the data exists update the event with the new data. :param current_user: Current User :param event_id: Event Id :return: Http Json response """ if request.content_type == 'application/json': data = request.get_json().get("event") name = data.get('name') if data.get("name") is not None else "" location = data.get('location') if data.get( "location") is not None else "" time = data.get('time') if data.get("time") is not None else "" eval_link = data.get('eval_link') if data.get( "eval_link") is not None else "" updated_event = Event(name, location, time, current_user.id) updated_event.event_eval_link = eval_link if name or location or time or eval_link: try: int(event_id) except ValueError: return response('failed', 'Please provide a valid Event Id', 400) user_event = User.get_by_id( current_user.id).events.filter_by(event_id=event_id).first() if user_event: user_event.update(updated_event) return response_for_created_event(user_event, 201) return response( 'failed', 'The Event with Id ' + event_id + ' does not exist', 404) return response( 'failed', 'No attribute or value was specified, nothing was changed', 400) return response('failed', 'Content-type must be json', 202)
def before_request(self, name, event_id, **kwargs): self.event = Event.load(event_id) self.validate_edit(self.event)
from app.models.events import Event event1 = Event("03/04/2021", "duck's big birthday", 20, "room1", "big birthday bash", True) event2 = Event("30/05/2021", "bill and ben wedding", 150, "big ballroom", "wedding of the year", True) events = [event1, event2] def add_new_event(event): events.append(event)
def poll_create_event(poll): user = DB.find_one(collection="Profile", query={"email": current_user.email}) if user is None: flash('Please create your profile first!') return redirect(url_for('edit_profile')) my_poll = DB.find_one(collection="Poll", query={"_id": ObjectId(poll)}) if my_poll is None: flash('Please contact admin, DB issues!') return redirect(url_for('polls')) date1 = None largest = 0 for option in my_poll['options']: if 'voters' in option: if len(list(option['voters'])) > largest: largest = len(list(option['voters'])) date1 = option['date'] event_obj = Event(name=my_poll['name'], description=my_poll['description'], start=date1, end=None, host=user['_id'], invitees=[], pictureDir='events.jpg', private=True).json() form = EventForm() if form.validate_on_submit(): form.starttime.data = form.starttime.data.split(' ') time1 = form.starttime.data[0].split(':') if form.starttime.data[1] == 'PM': time1[0] = int(time1[0]) + 12 if time1[0] == 24: time1[0] = 0 time1 = time(int(time1[0]), int(time1[1])) form.endtime.data = form.endtime.data.split(' ') time2 = form.endtime.data[0].split(':') if form.endtime.data[1] == 'PM': time2[0] = int(time2[0]) + 12 if time2[0] == 24: time2[0] = 0 time2 = time(int(time2[0]), int(time2[1])) date1 = datetime((form.start.data).year, (form.start.data).month, (form.start.data).day, time1.hour, time1.minute) date2 = datetime((form.end.data).year, (form.end.data).month, (form.end.data).day, time2.hour, time2.minute) # check date and time if date1 < datetime.now(): flash('Start has to be today or later!') return render_template('poll-create-event.html', title="Create Your Event", form=form, poll=poll, event=event_obj) elif date2 < date1: flash('End cannot be earlier than Start!') return render_template('poll-create-event.html', title="Create Your Event", form=form, poll=poll, event=event_obj) elif date1 == date2: flash('Start and End cannot be the same!') return render_template('poll-create-event.html', title="Create Your Event", form=form, poll=poll, event=event_obj) if form.pictureDir.data is None: filename = "event.jpg" else: filename = photos.save(form.pictureDir.data, name='event/' + str(user['_id']) + '.') filename = filename.split('/')[1] form.name.data = form.name.data.strip() form.description.data = form.description.data.strip() if form.eventType.data == 'private': event_type = True else: event_type = False inviteesList = [] for voter in my_poll['voters']: voter_obj = DB.find_one(collection='Profile', query={'_id': voter}) voter_dict = {'email': voter_obj['email'], 'status': 'going'} inviteesList.append(voter_dict) updated_event = Event(name=form.name.data, description=form.description.data, start=date1, end=date2, host=user['_id'], invitees=inviteesList, pictureDir=filename, private=event_type) eventid = updated_event.insert(user['email'], user['_id']) for invitees in inviteesList: DB.update_one(collection="Profile", filter={"email": invitees['email']}, data={"$push": { "events": ObjectId(eventid) }}) return redirect(url_for('delete_poll', poll=poll)) return render_template('poll-create-event.html', title="Create Your Event", form=form, poll=poll, event=event_obj)
def create_events(): user = DB.find_one(collection="Profile", query={"email": current_user.email}) if user is None: flash('Please create your profile first!') return redirect(url_for('edit_profile')) form = EventForm() # if form.is_submitted(): if form.validate_on_submit(): form.starttime.data = form.starttime.data.split(' ') time1 = form.starttime.data[0].split(':') if form.starttime.data[1] == 'PM': time1[0] = int(time1[0]) + 12 if time1[0] == 24: time1[0] = 0 time1 = time(int(time1[0]), int(time1[1])) form.endtime.data = form.endtime.data.split(' ') time2 = form.endtime.data[0].split(':') if form.endtime.data[1] == 'PM': time2[0] = int(time2[0]) + 12 if time2[0] == 24: time2[0] = 0 time2 = time(int(time2[0]), int(time2[1])) date1 = datetime((form.start.data).year, (form.start.data).month, (form.start.data).day, time1.hour, time1.minute) date2 = datetime((form.end.data).year, (form.end.data).month, (form.end.data).day, time2.hour, time2.minute) # check date and time if date1 < datetime.now(): flash('Start has to be today or later!') return render_template('create-event.html', title="Create Your Event", form=form) elif date2 < date1: flash('End cannot be earlier than Start!') return render_template('create-event.html', title="Create Your Event", form=form) elif date1 == date2: flash('Start and End cannot be the same!') return render_template('create-event.html', title="Create Your Event", form=form) if form.pictureDir.data is None: filename = "event.jpg" else: filename = photos.save(form.pictureDir.data, name='event/' + str(user['_id']) + '.') filename = filename.split('/')[1] form.name.data = form.name.data.strip() form.description.data = form.description.data.strip() if form.eventType.data == 'private': event = Event(name=form.name.data, description=form.description.data, start=date1, end=date2, host=user['_id'], invitees=[], pictureDir=filename, private=True) else: event = Event(name=form.name.data, description=form.description.data, start=date1, end=date2, host=user['_id'], invitees=[], pictureDir=filename, private=False) event.insert(current_user.email, user['_id']) flash('Create event successful') return redirect(url_for('view_events')) return render_template('create-event.html', title="Create Your Event", form=form)
def saveEvent(uid, eventType, time): event = Event(uid if uid else "00000000", eventType, time) event.add(event) return event