def new_event_post(): """ View function to handle creating a new EventPost post GET Request: Returns HTML template to render the Event form POST Request: Expects a properly validated Event form to create a EventPosts object """ form = EventForm() users = [] for user in Users.query.order_by(Users.last_name): users.append(user.name) tags = choices.TAGS if flask_request.method == 'POST' and form.validate_on_submit(): post_id = create_event_post( event_date=form.event_date.data, event_location=form.event_location.data, event_leader=form.event_leader.data.title(), start_time=form.start_time.data, end_time=form.end_time.data, sponsor=form.sponsor.data, author=current_user.id, title=form.title.data, content=form.content.data, tags=flask_request.form.getlist('tags')) return redirect(url_for('main.view_post', post_id=post_id)) return render_template('new_event_post.html', form=form, users=users, tags=tags)
def new_event(equipment_id, date_input, timeslot): """Display the event creation page & process data from the creation form.""" form = EventForm() if request.method == 'POST': if form.validate_on_submit(): event = Event( title=form.title.data, color=form.color.data, date=form.date.data, timeslot=form.timeslot.data, user= current_user, #User(id= 3, username= "******", password= "******"), equipment=form.equipment.data) db.session.add(event) db.session.commit() flash('Event Created.') print(form.errors) return redirect(url_for('main.home')) else: context = { "timeslot_input": timeslot, "date_input": date_input, "min_date": datetime.now(), 'max_date': datetime.now() + timedelta(days=25), } form.date.default = date_input form.timeslot.default = timeslot form.equipment.default = [equipment_id] print(form.errors) return render_template('new_event.html', form=form)
def addeventsubmit(): # Define form form = EventForm() # Process form if form.validate_on_submit(): # Get data title = form.title.data description = form.description.data address = form.address.data user_id = current_user.get_id() start_time = datetime.combine(form.start_date.data, form.start_time.data) end_time = datetime.combine(form.end_date.data, form.end_time.data) travel_method = form.travel_method.data # Create event esi.addevent(title=title, description=description, user_id=user_id, address=address, start_time=start_time, end_time=end_time, travel_method=travel_method) # Redirect to event list return redirect(url_for('main.eventlist')) else: # Flash all form errors for field, errormessages in form.errors.items(): for errormessage in errormessages: flash(errormessage, category="error") # Redirect to event list return redirect(url_for('main.addevent'))
def index(): form = EventForm() if form.validate_on_submit(): employees = form.employees_count.data salary = form.average_salary.data / (21 * 8) time = form.event_duration.data count = int(employees * salary / time) return render_template('index.html', cost=count) return render_template('index.html', form=form)
def add_events(): event_form = EventForm() if event_form.validate_on_submit(): event = Event(start=event_form.start.data, end=event_form.end.data, name=event_form.name.data, price=event_form.price.data, latitude=event_form.locationLatitude.data, longitude=event_form.locationLongitude.data) db.session.add(event) db.session.commit() event.save_list_of_categories(event_form.Categories.data.split(',')) flash('Event Added.') return render_template('add_events.html', event_form=event_form)
def event_register(): form = EventForm() form.set_choices() if form.validate_on_submit(): event = Event(name=form.name.data, date=form.date.data, \ place=form.place.data, type_id=form.type_id.data) event.description = form.description.data db.session.add(event) db.session.commit() flash(_('Succesfully athlete added')) return redirect(url_for('main.events')) return render_template('event_register_edit.html', form=form, title=_('Register event'))
def index(): form = EventForm() if form.validate_on_submit(): language = guess_language(form.event.data) if language == 'UNKNOWN' or len(language) > 5: language = '' event = Event(body=form.event.data, author=current_user, language=language, date=form.date.data) db.session.add(event) db.session.commit() flash(_('Your event is now live!')) return redirect(url_for('main.index')) page = request.args.get('page', 1, type=int) events = current_user.followed_events().paginate( page, current_app.config['EVENTS_PER_PAGE'], False) next_url = url_for('main.index', page=events.next_num) \ if events.has_next else None prev_url = url_for('main.index', page=events.prev_num) \ if events.has_prev else None return render_template('index.html', title=_('Home'), form=form, events=events.items, next_url=next_url, prev_url=prev_url)
def event(id): event = Event.query.get_or_404(id) form = EventForm() form.set_choices() if form.validate_on_submit(): print('save') event.name = form.name.data event.date = form.date.data event.place = form.place.data event.description = form.description.data event.type_id = form.type_id.data db.session.commit() flash(_('Your changes have been saved.')) return redirect(url_for('main.events')) elif request.method == 'GET': form.name.data = event.name form.date.data = event.date form.place.data = event.place form.description.data = event.description form.type_id.data = event.type_id return render_template('event_register_edit.html', title=_('Edit event'), form=form)
def admin_events(selected_event_id=None, api_message=None): events = api_client.get_limited_events() event_types = api_client.get_event_types() speakers = api_client.get_speakers() venues = api_client.get_venues() session['events'] = events form = EventForm() temp_event = None errors = reject_reasons = [] form.set_events_form(events, event_types, speakers, venues) if form.validate_on_submit(): if form.image_filename.data: filename = form.image_filename.data.filename else: filename = form.existing_image_filename.data reject_reasons = json.loads(form.reject_reasons_json.data) if form.reject_reason.data: reject_reasons.append( { 'reason': form.reject_reason.data, 'created_by': session['user']['id'] } ) event = { 'event_id': form.events.data, 'event_type_id': form.event_type.data, 'title': form.title.data, 'sub_title': form.sub_title.data, 'description': form.description.data, 'image_filename': filename, 'fee': int(form.fee.data) if form.fee.data else 0, 'conc_fee': int(form.conc_fee.data) if form.conc_fee.data else 0, 'multi_day_fee': int(form.multi_day_fee.data) if form.multi_day_fee.data else 0, 'multi_day_conc_fee': int(form.multi_day_conc_fee.data) if form.multi_day_conc_fee.data else 0, 'venue_id': form.venue.data, 'event_dates': form.event_dates.data, 'start_time': form.start_time.data, 'end_time': form.end_time.data, 'event_state': form.submit_type.data, 'reject_reasons': reject_reasons, 'remote_access': form.remote_access.data, 'remote_pw': form.remote_pw.data, 'show_banner_text': form.show_banner_text.data } adjusted_event = event.copy() from html import escape adjusted_event['description'] = escape(event['description']) adjusted_event['event_dates'] = json.loads(str(event['event_dates'])) file_request = request.files.get('image_filename') if file_request: file_data = file_request.read() file_data_encoded = base64.b64encode(file_data) file_data_encoded = base64.b64encode(file_data_encoded).decode('utf-8') _file_size = size_from_b64(str(file_data_encoded)) if _file_size > current_app.config['MAX_IMAGE_SIZE']: _file_size_mb = round(_file_size/(1024*1024), 1) _max_size_mb = current_app.config['MAX_IMAGE_SIZE']/(1024*1024) errors.append("Image {} file size ({} mb) is larger than max ({} mb)".format( file_request.filename, _file_size_mb, _max_size_mb)) else: adjusted_event['image_data'] = file_data_encoded if not errors: # remove empty values for key, value in event.items(): if value != 0 and not value: del adjusted_event[key] try: message = None if event.get('event_id'): response = api_client.update_event(event['event_id'], adjusted_event) message = 'event updated' if event['event_state'] != "approved" and not form.cache_switch.data: Cache.set_review_entity('get_events_in_future', event.get('event_id')) else: Cache.delete_review_entity('get_events_in_future', event.get('event_id')) update_cache( func=api_client.get_events_in_future_from_db, decorator=only_show_approved_events, approved_only=True) else: # do not need to update the cache here as an event is never in approved state when first created response = api_client.add_event(adjusted_event) if 'error' in session: raise HTTPError(response, message=session.pop('error')) return redirect(url_for('main.admin_events', selected_event_id=response.get('id'), api_message=message)) except HTTPError as e: current_app.logger.error(e) temp_event = json.dumps(event) if "message" in e.message: errors = e.message['message'] else: errors = json.dumps(e.message) return render_template( 'views/admin/events.html', form=form, images_url=current_app.config['IMAGES_URL'], selected_event_id=selected_event_id, message=api_message, temp_event=temp_event, errors=json.dumps(errors) )
def admin_events(selected_event_id=None, api_message=None): events = api_client.get_limited_events() event_types = api_client.get_event_types() speakers = api_client.get_speakers() venues = api_client.get_venues() session['events'] = events form = EventForm() temp_event = None errors = reject_reasons = [] form.set_events_form(events, event_types, speakers, venues) if form.validate_on_submit(): if form.image_filename.data: filename = form.image_filename.data.filename else: filename = form.existing_image_filename.data reject_reasons = json.loads(form.reject_reasons_json.data) if form.reject_reason.data: reject_reasons.append({ 'reason': form.reject_reason.data, 'created_by': session['user']['id'] }) event = { 'event_id': form.events.data, 'event_type_id': form.event_type.data, 'title': form.title.data, 'sub_title': form.sub_title.data, 'description': form.description.data, 'image_filename': filename, 'fee': int(form.fee.data) if form.fee.data else 0, 'conc_fee': int(form.conc_fee.data) if form.conc_fee.data else 0, 'multi_day_fee': int(form.multi_day_fee.data) if form.multi_day_fee.data else 0, 'multi_day_conc_fee': int(form.multi_day_conc_fee.data) if form.multi_day_conc_fee.data else 0, 'venue_id': form.venue.data, 'event_dates': form.event_dates.data, 'start_time': form.start_time.data, 'end_time': form.end_time.data, 'event_state': form.submit_type.data, 'reject_reasons': reject_reasons } adjusted_event = event.copy() from cgi import escape adjusted_event['description'] = escape(event['description']) adjusted_event['event_dates'] = json.loads(str(event['event_dates'])) file_request = request.files.get('image_filename') if file_request: # filename = secure_filename(file_request.filename) file_data = file_request.read() file_data_encoded = base64.b64encode(file_data) adjusted_event['image_data'] = file_data_encoded # remove empty values for key, value in event.iteritems(): if not value: del adjusted_event[key] try: message = None if event.get('event_id'): response = api_client.update_event(event['event_id'], adjusted_event) message = 'event updated' else: response = api_client.add_event(adjusted_event) return redirect( url_for('main.admin_events', selected_event_id=response['id'], api_message=message)) except HTTPError as e: current_app.logger.error(e) temp_event = json.dumps(event) errors = json.dumps(e.message) return render_template('views/admin/events.html', form=form, images_url=current_app.config['IMAGES_URL'], selected_event_id=selected_event_id, message=api_message, temp_event=temp_event, errors=errors)
def addevent(): # Define form form = EventForm() # Render template with form return render_template('eventform.html', form=form)