コード例 #1
0
ファイル: actors.py プロジェクト: equalitie/RVD-webapp
def gather_form_data():
    actor_dict = defaultdict(
        lambda: None,
        {value: field
         for value, field in request.form.iteritems()})
    organisation_ids = request.form.getlist('organisations')
    actor_dict['organisations'] = [
        get_name_from_id(x, organisation_factory()) for x in organisation_ids
    ]
    locations = request.form.getlist('locations')
    actor_dict['locations'] = [
        get_name_from_id(x, location_factory()) for x in locations
    ]
    professions = request.form.getlist('professions')
    actor_dict['professions'] = [
        get_name_from_id(x, profession_factory()) for x in professions
    ]
    actor_dict['gender'] = actor_dict['gender']
    actor_dict['is_activist'] = actor_dict['is_activist']
    actor_dict['birth_date'] = datetime.datetime.strptime(
        actor_dict['birth_date'], "%Y-%m-%d").date()
    actor_dict['owner_id'] = current_user.id

    actor_instance = Actor(**actor_dict)
    session.add(actor_instance)
    session.flush()

    return actor_instance
コード例 #2
0
ファイル: release_types.py プロジェクト: equalitie/RVD-webapp
def gather_form_data():
    release_type_dict = defaultdict(
        lambda: None,
        {value: field
         for value, field in request.form.iteritems()})
    release_type_instance = ReleaseType(**release_type_dict)
    session.add(release_type_instance)
    session.flush()

    return release_type_instance
コード例 #3
0
ファイル: event_types.py プロジェクト: equalitie/RVD-webapp
def gather_form_data():
    event_type_dict = defaultdict(
        lambda: None,
        {value: field
         for value, field in request.form.iteritems()})
    event_type_instance = EventType(**event_type_dict)
    session.add(event_type_instance)
    session.flush()

    return event_type_instance
コード例 #4
0
def gather_form_data():
    profession_dict = defaultdict(
        lambda: None,
        {value: field
         for value, field in request.form.iteritems()})
    profession_instance = Profession(**profession_dict)
    session.add(profession_instance)
    session.flush()

    return profession_instance
コード例 #5
0
def gather_form_data():
    international_authority_dict = defaultdict(
        lambda: None,
        {value: field
         for value, field in request.form.iteritems()})
    international_authority_instance = InternationalAuthority(
        **international_authority_dict)
    session.add(international_authority_instance)
    session.flush()

    return international_authority_instance
コード例 #6
0
def gather_form_data():
    organisation_dict = defaultdict(lambda: None, {value: field for value, field in request.form.iteritems()})

    locations = request.form.getlist('locations')
    locs = location_factory()
    organisation_dict['locations'] = [get_name_from_id(x, locs) for x in locations]

    organisation_instance = Organisation(**organisation_dict)
    session.add(organisation_instance)
    session.flush()

    return organisation_instance
コード例 #7
0
ファイル: events.py プロジェクト: equalitie/RVD-webapp
def delete_event(event_id):
    try:
        if current_user.is_admin:
            event = session.query(Event).get(event_id)
        else:
            event = session.query(Event).filter(
                and_(Event.id == event_id,
                     Event.owner_id == current_user.id)).one()
    except NoResultFound:
        return redirect('/events/all')
    session.delete(event)
    session.flush()
    return redirect('/events/all?success=1')
コード例 #8
0
def gather_form_data():
    source_dict = defaultdict(
        lambda: None,
        {value: field
         for value, field in request.form.iteritems()})

    organisation_ids = request.form.getlist('organisations')
    source_dict['organisations'] = [
        get_name_from_id(x, organisation_factory()) for x in organisation_ids
    ]

    source_instance = Source(**source_dict)
    session.add(source_instance)
    session.flush()

    return source_instance
コード例 #9
0
ファイル: prisons.py プロジェクト: equalitie/RVD-webapp
def gather_form_data():
    prison_dict = defaultdict(
        lambda: None,
        {value: field
         for value, field in request.form.iteritems()})

    locations = request.form.getlist('locations')
    locs = location_factory()
    prison_dict['locations'] = [get_name_from_id(x, locs) for x in locations]

    prison_types = request.form.getlist('prison_types')
    pt = prison_type_factory()
    prison_dict['prison_types'] = [
        get_name_from_id(x, pt) for x in prison_types
    ]

    prison_instance = Prison(**prison_dict)
    session.add(prison_instance)
    session.flush()

    return prison_instance
コード例 #10
0
ファイル: users.py プロジェクト: equalitie/RVD-webapp
def gather_form_data():
    user_dict = defaultdict(
        lambda: None,
        {value: field
         for value, field in request.form.iteritems()})

    user_dict['password_salt'] = bcrypt.gensalt()
    user_dict['password'] = bcrypt.hashpw(str(request.form.get('password')),
                                          str(user_dict['password_salt']))

    organisation = request.form.getlist('organisation')
    if organisation:
        orgs = user_org_factory()
        user_dict['organisation'] = get_name_from_id(organisation[0], orgs)
    else:
        user_dict['organisation'] = None

    user_instance = User(**user_dict)
    session.add(user_instance)
    session.flush()

    return user_instance
コード例 #11
0
def delete_international_authority(international_authority_id):
    intl_auth = session.query(InternationalAuthority).get(
        international_authority_id)
    session.delete(intl_auth)
    session.flush()
    return redirect('/international_authorities/all?success=1')
コード例 #12
0
ファイル: prison_type.py プロジェクト: equalitie/RVD-webapp
def delete_prison_type(prison_type_id):
    prison_type = session.query(PrisonType).get(prison_type_id)
    session.delete(prison_type)
    session.flush()
    return redirect('/prison_types/all?success=1')
コード例 #13
0
def delete_profession(profession_id):
    profession = session.query(Profession).get(profession_id)
    session.delete(profession)
    session.flush()
    return redirect('/professions/all?success=1')
コード例 #14
0
def delete_source(source_id):
    source = session.query(Source).get(source_id)
    session.delete(source)
    session.flush()
    return redirect('/sources/all?success=1')
コード例 #15
0
ファイル: event_types.py プロジェクト: equalitie/RVD-webapp
def delete_event_type(event_type_id):
    event_type = session.query(EventType).get(event_type_id)
    session.delete(event_type)
    session.flush()
    return redirect('/event_types/all?success=1')
コード例 #16
0
ファイル: release_types.py プロジェクト: equalitie/RVD-webapp
def delete_release_type(release_type_id):
    release_type = session.query(ReleaseType).get(release_type_id)
    session.delete(release_type)
    session.flush()
    return redirect('/release_types/all?success=1')
コード例 #17
0
ファイル: users.py プロジェクト: equalitie/RVD-webapp
def delete_user(user_id):
    user = session.query(User).get(user_id)
    session.delete(user)
    session.flush()
    return redirect('/users/all?success=1')
コード例 #18
0
ファイル: events.py プロジェクト: equalitie/RVD-webapp
def gather_form_data(event=None):
    event_dict = defaultdict(
        lambda: None, {
            value: field if field else None
            for value, field in request.form.iteritems()
        })

    uploaded_docs = request.files.getlist("documents")
    event_dict['documents'] = []
    if uploaded_docs:
        for uploaded_file in uploaded_docs:
            filename = secure_filename(uploaded_file.filename)
            if not filename == '':
                uploaded_file.save(os.path.join(DOC_FOLDER, filename))
                doc = Document()
                doc.filename = filename
                session.add(doc)
                session.commit()
                event_dict['documents'].append(doc)

    location_ids = request.form.getlist('locations')
    event_dict['locations'] = [
        get_name_from_id(x, location_factory()) for x in location_ids
    ]

    prison_ids = request.form.getlist('prisons')
    event_dict['prisons'] = [
        get_name_from_id(x, prison_factory()) for x in prison_ids
    ]

    release_types_ids = request.form.getlist('release_types')
    event_dict['release_types'] = [
        get_name_from_id(x, release_type_factory()) for x in release_types_ids
    ]

    sources = request.form.get('sources')
    sources_list = list(set([x.strip() for x in sources.split(",")]))
    event_dict['sources'] = find_things_by_name(sources_list, Source)

    witnesses = request.form.get('witnesses')
    witnesses_list = list(set([x.strip() for x in witnesses.split(",")]))
    event_dict['witnesses'] = find_things_by_name(witnesses_list, Actor)

    victims = request.form.get('victims')
    victims_list = list(set([x.strip() for x in victims.split(",")]))
    event_dict['victims'] = find_things_by_name(victims_list, Actor)

    perpetrators = request.form.get('perpetrators')
    perpetrators_list = list(set([x.strip() for x in perpetrators.split(",")]))
    event_dict['perpetrators'] = find_things_by_name(perpetrators_list, Actor)

    event_types = request.form.getlist('event_types')
    event_dict['event_types'] = [
        get_name_from_id(x, event_type_factory()) for x in event_types
    ]
    if event.report_id:
        report = session.query(Report).get(event.report_id)
        report.text = request.form.get('report')
        event_dict['report'] = report
    else:
        event_dict['report'] = Report(text=request.form.get('report'))

    event_dict['owner_id'] = current_user.id
    #event_instance = Event(**event_dict)
    #event_instance.id = event.id if event else None

    if event is not None:
        for key, value in event_dict.iteritems():
            setattr(event, key, value)
        session.merge(event)
    else:
        session.add(event_instance)
    session.flush()

    return event
コード例 #19
0
def delete_location(location_id):
    location = session.query(Location).get(location_id)
    session.delete(location)
    session.flush()
    return redirect('/locations/all?success=1')
コード例 #20
0
def delete_organisation(organisation_id):
    organisation = session.query(Organisation).get(organisation_id)
    session.delete(organisation)
    session.flush()
    return redirect('/organisations/all?success=1')