def generate_users(meeting_id, number_of_copies=27): app = flask.current_app user_generator = database.find("person", meeting_id=str(meeting_id)) session = database.get_session() for user in user_generator: for i in xrange(int(number_of_copies)): person_row = database.new('person') person_row.update(user) session.save(person_row) session.commit()
def __init__(self, data): session = database.get_session() country_row = database.new('country') if data: country_row.update(data) country_schema = CountrySchema.from_flat(data) country_row.update(country_schema.flatten()) session.save(country_row) self.id = country_row.id session.commit()
def edit(country_id=None): app = flask.current_app session = database.get_session() if country_id: country_row = database.get_or_404("country", country_id) country = Country.from_flat(country_row) else: country_row = database.new("country") country = None if flask.request.method == "POST": form_data = dict(CountrySchema.from_defaults().flatten()) form_data.update(flask.request.form.to_dict()) country_schema = CountrySchema.from_flat(form_data) if country_schema.validate(): if country_row is None: country_row = database.new('country') country_row.update(country_schema.flatten()) session.save(country_row) session.commit() flask.flash('Country saved.', 'success') view_url = flask.url_for("country.home") return flask.redirect(view_url) else: flask.flash(u"Errors in country information", "error") else: if country_row is None: country_schema = CountrySchema() else: country_schema = CountrySchema.from_flat(country_row) return { "mk": sugar.MarkupGenerator( app.jinja_env.get_template("widgets/widgets_edit.html") ), "country_schema": country_schema, "country": country, }
def edit(resolution_id=None): if resolution_id is None: resolution_row = None else: resolution_row = database.get_or_404('resolution', resolution_id) meetings = [schema.Meeting.from_flat(m) for m in database.get_all('meeting')] session = database.get_session() if flask.request.method == "POST": form_data = dict(schema.ResolutionSchema.from_defaults().flatten()) form_data.update(flask.request.form.to_dict()) resolution_schema = schema.ResolutionSchema() resolution_schema.set_meetings(meetings) resolution_schema.set_flat(form_data) if resolution_schema.validate(): if resolution_row is None: resolution_row = database.new('resolution') resolution_row.update(resolution_schema.flatten()) session.save(resolution_row) session.commit() flask.flash('Resolution saved', 'success') if resolution_id: url = flask.url_for('resolution.view', resolution_id=resolution_id) else: url = flask.url_for('resolution.home') return flask.redirect(url) else: flask.flash(u"Errors in person information", "error") else: resolution_schema = schema.ResolutionSchema() resolution_schema.set_meetings(meetings) if resolution_row: resolution_schema.set_flat(resolution_row) else: resolution_schema = resolution_schema.from_defaults() resolution_schema.set_meetings(meetings) return { 'mk': sugar.MarkupGenerator( flask.current_app.jinja_env.get_template('widgets/widgets_edit.html') ), 'resolution_id': resolution_id, 'resolution_schema': resolution_schema, }
def activity(meeting_id, subject, what, what_id): session = database.get_session() email = flask.session.get("logged_in_email", "") try: staff_member = [i.id for i in database.find("staff", email=email)][0] except IndexError: staff_member = None activity_schema = ActivitySchema.from_flat({ "meeting_id": meeting_id, "staff_id": staff_member, "subject": subject, "date": datetime.now(), "what": what, "what_id": what_id, }) if activity_schema.validate(): activity_row = database.new('activity') activity_row.update(activity_schema.flatten()) session.save(activity_row) session.commit()