Beispiel #1
0
def entry():
    db = get_db()
    q = Query()
    value = request.args.get('value', '')
    query_filters = request.args.get('filter', '').split(' ')

    value = Markup(value).unescape()  # can use regexp

    search_args = dict(regex=value, flags=re.IGNORECASE)

    result = db.search((q.anarana.search(**search_args))
                       | (q.fanampinanarana.search(**search_args))
                       | (q.anarana_feno.search(**search_args))
                       | (q.id == integer(value))
                       | (q.groupe == integer(value))
                       | (q.finday.test(lambda s: value in s)))

    ft = Filter(result)

    for qf in query_filters:
        ft(qf)

    if len(ft.preachers) == 1:
        return redirect(url('main.preacher', id=ft.preachers[0]['id']))

    all_ft = [filter_name[_] for _ in list(ft.all_filters)]
    on_ft = [filter_name[_] for _ in ft.filtered_by]

    def is_active(ft):
        """
        helper function for color.
        """

        return '' if ft in on_ft else '-outline'

    def add_f(f_to_add):
        f_to_add = reverse_filter_name[f_to_add]
        f = ' '.join(ft.filtered_by + [f_to_add])

        return url('main.search', value=value, filter=f)

    def remove_f(f_to_remove):
        on_ft.remove(f_to_remove)
        f = ' '.join([reverse_filter_name[_] for _ in on_ft])
        on_ft.append(f_to_remove)

        return url('main.search', value=value, filter=f)

    return dict(
        value=value,
        on_ft=on_ft,
        all_ft=all_ft,
        add_f=add_f,
        remove_f=remove_f,
        hide_search=True,
        is_active=is_active,
        preacher=ft.preachers,
        all=db.all(),
    )
Beispiel #2
0
    def decorated_function(*args, **kwargs):
        if request.method == 'POST':
            try:  # Search form
                value = request.form['search']
                return redirect(url('main.search', value=value))
            except KeyError:
                pass

        return f(*args, **kwargs)
Beispiel #3
0
def entry():
    user_login_handler = UserLoginHandler(UserLoginForm)

    pushed = user_login_handler.push()

    if pushed:
        return redirect(url('main.request'))

    return {
        'form': user_login_handler.form,
    }
Beispiel #4
0
def entry(id):
    db = get_db()
    q = Query()
    name = request.form.get('name', None)

    preacher = db.get(q.id == id)

    pattern = [
        f"{preacher['anarana']} {preacher['fanampinanarana']}",
        preacher['anarana'],
        preacher['fanampinanarana'],
    ]

    if preacher['anarana_feno'] != '':
        pattern.append(preacher['anarana_feno'])

    if name in pattern:
        db.remove(q.id == id)
        return redirect(url('home'))

    flash('Tontosa ny fanafoanana ny mpitory', 'success')

    return redirect(url('main.preacher', id=id))
Beispiel #5
0
def entry(id):
    MONTH = str(app.config['MONTH'])
    db = get_db()
    preacher = db.get(q.id == id)

    if preacher is None:
        abort(404)

    report = sort_month(preacher['tatitra'])

    has_report = returned(MONTH)(preacher)

    report_handler = ReportHandler(ReportForm, preacher, has_report)
    pushed = report_handler.push()

    if pushed:
        flash("Tafiditra soaman'tsara ny tatitra", 'success')
        return redirect(url('main.preacher', id=id))

    months = auxiliary_check(id)

    # growth widget
    growth = [
        growth_data('zavatra_napetraka', 'Zavatra napetraka', [preacher]),
        growth_data('video', 'Video', [preacher]),
        growth_data('ora', 'Ora', [preacher]),
        growth_data('fitsidihana', 'Fitsidihana', [preacher]),
        growth_data('fampianarana', 'Fampianarana', [preacher]),
    ]
    growth_six = [
        growth_data_six('zavatra_napetraka', 'Zavatra napetraka', [preacher]),
        growth_data_six('video', 'Video', [preacher]),
        growth_data_six('ora', 'Ora', [preacher]),
        growth_data_six('fitsidihana', 'Fitsidihana', [preacher]),
        growth_data_six('fampianarana', 'Fampianarana', [preacher]),
    ]

    return dict(
        pr=preacher,
        report=report,
        months=months,
        growth=growth,
        growth_six=growth_six,
        hour_chart=hour_chart([preacher]),
        has_report=has_report,
        is_auxiliary=is_auxiliary()(preacher),
        all_table=all_table([preacher]),
        form=report_handler.form,
    )
Beispiel #6
0
def entry():
    new_preacher_handler = NewPreacherHandler()
    pushed = new_preacher_handler.push()

    if pushed:
        id = new_preacher_handler.form.id.data

        flash("Tafiditra soaman'tsara ny mpitory", 'success')

        return redirect(url('main.preacher', id=id))

    return dict(
        title='Mpitory vaovao',
        form=new_preacher_handler.form,
        hide_search=request.args.get('hide_search', False),
    )
Beispiel #7
0
def entry(id):
    db = get_db()
    q = Query()

    preacher = db.get(q.id == id)

    form = EditPreacherForm(last_id=preacher['id'],
                            id=preacher['id'],
                            last_name=preacher['anarana'],
                            first_name=preacher['fanampinanarana'],
                            phone1=preacher['finday'][0],
                            phone2=preacher['finday'][1],
                            phone3=preacher['finday'][2],
                            address=preacher['adiresy'],
                            gender=preacher['lahy_sa_vavy'],
                            birth=preacher['teraka'],
                            baptism=preacher['batisa'],
                            group=preacher['groupe'],
                            promo=preacher['tombotsoa'],
                            regular_pionner=preacher['maharitra'])

    if form.validate_on_submit():
        data = {
            'id': form.id.data,
            'anarana': form.last_name.data,
            'fanampinanarana': form.first_name.data,
            'finday': [form.phone1.data, form.phone2.data, form.phone3.data],
            'adiresy': form.address.data,
            'lahy_sa_vavy': form.gender.data,
            'teraka': form.birth.data,
            'batisa': form.baptism.data,
            'groupe': form.group.data,
            'tombotsoa': form.promo.data,
            'maharitra': form.regular_pionner.data,
            'tatitra': preacher['tatitra'],
        }

        db.update(data, q.id == id)

        flash('Tontosa ny fanavaozana ny mpitory', 'success')

        return redirect(url('main.preacher', id=form.id.data))

    return dict(
        title='Fanovana',
        form=form,
    )
Beispiel #8
0
    def decorated_function(*args, **kwargs):
        if request.method == 'POST':
            try:  # Search form
                value = request.form['search']
                return redirect(url('main.search', value=value))
            except KeyError:
                pass

            try:  # Month form
                if request.form['month']:
                    y = request.form['month'].split('-')[0]
                    m = request.form['month'].split('-')[1]

                    app.config['MONTH'].__init__(f'{m}_{y}')
            except KeyError:
                pass

        return f(*args, **kwargs)
Beispiel #9
0
def entry(id):
    mdb = get_db('mpanampy')
    service_year = get_service_year()

    for service_month in service_year:
        month = str(service_month)
        preacher = getsert(month)['mpitory']

        if request.form.get(month) in (None, 'off', False):
            if id in preacher:
                preacher.remove(id)
                mdb.update(set('mpitory', preacher), q.volana == month)

        else:
            if id not in preacher:
                preacher.append(id)
                mdb.update(set('mpitory', preacher), q.volana == month)

    flash('Tontosa ny fampidirana mpisavalalana mpanampy', 'success')

    return redirect(url('main.preacher', id=id))
Beispiel #10
0
def create():
    user = api.users.get_current_user()

    count = user.companies.count()
    if count == 0:
        name = 'My Company'
    else:
        name = 'Company #%d' % (count + 1)
    company = api.companies.create(user, name)

    count = company.accounts.count()
    if count == 0:
        name = 'First Account'
    else:
        name = 'Account #%d' % (count + 1)
    type = Account.TYPE_SAVINGS_ACCOUNT
    # TODO: get users default currency
    # TODO: ask for type of account and currency?
    # TODO: instead of asking, guess and then warn the user
    # about it before/when he/she does the first transaction?
    currency = Currencies.COP.code
    account = api.accounts.create(user, company, name, type, currency)

    return redirect(url('accounts.view', account=account.key()))
Beispiel #11
0
 def wrapped(*args, **kwargs):
     if not session.get('userId', None):
         return redirect(url('admin.login'))
     return func(*args, **kwargs)
Beispiel #12
0
def entry():
    if request.method == 'POST':
        if request.form['username'] == request.form['password'] == 'admin':
            return redirect(url('admin.home'))

    return {}
Beispiel #13
0
    def remove_f(f_to_remove):
        on_ft.remove(f_to_remove)
        f = ' '.join([reverse_filter_name[_] for _ in on_ft])
        on_ft.append(f_to_remove)

        return url('main.search', value=value, filter=f)
Beispiel #14
0
    def add_f(f_to_add):
        f_to_add = reverse_filter_name[f_to_add]
        f = ' '.join(ft.filtered_by + [f_to_add])

        return url('main.search', value=value, filter=f)