def new_event(): if request.method == 'GET': return render_template("new.html") else: #done this way and not with wtforms to preserve cool data binding in JS r = request.form img = request.files['img'] name = r.get("name") event_type = r.get("type") periodicity = r.get("periodicity") if periodicity != 'Recurring': date = r.get("date") date = datetime.strptime(date, '%Y-%m-%d') else: date = None period = r.get("period") location = r.get("location") starting_time = r.get("starting") link = r.get("link") organizer = r.get("organizer") organizer_web = r.get("web") description = r.get("description") #check for errors in the selects if event_type not in EVENT_TYPES or periodicity not in PERIODICITIES: return render_template("new.html") #commit to the database event = Event(name=name, event_type=event_type, recurrence=periodicity, periodicity=period, location=location, starting_time=starting_time, link=link, organizer=organizer, organizer_web=organizer_web, description=description, img=img.read(), user_id=current_user.get_id()) if date: event.date = date db.session.add(event) db.session.commit() return redirect(url_for('event', id=event.id))
event_type = session.query(EventType).filter( EventType.code == event_item.get('type')).first() locations_list = event_item.get('location').split(', ') locations = session.query(Location).filter( Location.code.in_(locations_list)).all() categories_list = event_item.get('category').split(', ') categories = session.query(EventCategory).filter( EventCategory.code.in_(categories_list)).all() date_time_template = '{} {}'.format(event_item.get('date'), event_item.get('time')) date_time = datetime.datetime.strptime(date_time_template, '%d.%m.%Y %H:%M') event = Event() event.title = event_item.get('title') event.description = event_item.get('description') event.date = date_time.date() event.time = date_time.time() event.address = event_item.get('address') event.seats = event_item.get('seats') event.type = event_type event.locations = locations event.categories = categories session.add(event) session.commit()