Example #1
0
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()
Example #2
0
 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()
Example #3
0
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,
    }
Example #4
0
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,
    }
Example #5
0
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()