Esempio n. 1
0
def operators(t_id):
    office = data.Office.query.filter_by(id=t_id).first()
    if office is None:
        flash(get_lang(4), "danger")
        return redirect(url_for('root'))
    if current_user.role_id == 3 and data.Operators.query.filter_by(
            id=current_user.id).first() is None:
        flash(get_lang(0), "danger")
        return redirect(url_for('root'))
    page = request.args.get('page', 1, type=int)
    if page > int(data.Operators.query.count() / 10) + 1:
        flash(get_lang(4), 'danger')
        return redirect(url_for('manage.office', o_id=t_id))
    pagination = data.Operators.query.filter_by(office_id=t_id).paginate(
        page, per_page=10, error_out=False)
    return render_template('operators.html',
                           ptitle=str(office.name) + ' operators',
                           len=len,
                           offices=data.Office.query,
                           pagination=pagination,
                           usersp=pagination.items,
                           serial=data.Serial.query,
                           users=data.User.query,
                           tasks=data.Task.query,
                           operators=data.Operators.query,
                           navbar="#snb1",
                           dropdown="#dropdown-lvl" + str(t_id),
                           hash="#to" + str(t_id))
Esempio n. 2
0
def user_a():
    if current_user.role_id != 1:
        flash(get_lang(4), "danger")
        return redirect(url_for('core.root'))
    form = forms.User_a()
    if session.get('lang') == "AR":
        form = forms.User_a_ar()
    if form.validate_on_submit():
        if data.User.query.filter_by(name=form.name.data).first() is not None:
            flash(get_lang(5), "danger")
            return redirect(url_for('administrate.user_a'))
        db.session.add(
            data.User(form.name.data, form.password.data, form.role.data))
        db.session.commit()
        # Fix: multiple operators for office
        # adding user to Operators list
        if form.role.data == 3:
            db.session.add(
                data.Operators(
                    data.User.query.filter_by(name=form.name.data).first().id,
                    form.offices.data))
            db.session.commit()
        flash(get_lang(6), "info")
        return redirect(url_for('administrate.users'))
    return render_template('user_add.html',
                           form=form,
                           navbar='#snb3',
                           ptitle='Add user')
Esempio n. 3
0
def slideshow():
    ex_functions.mse()
    if current_user.role_id != 1:
        flash(get_lang(0), "danger")
        return redirect(url_for('core.root'))
    if data.Vid.query.first().enable == 1:
        flash(get_lang(31), 'danger')
        return redirect(url_for('cust_app.video'))
    page = request.args.get('page', 1, type=int)
    if page > int(data.Slides.query.count() / 10) + 1:
        flash(get_lang(4), 'danger')
        return redirect(url_for('cust_app.slideshow'))
    pagination = data.Slides.query.paginate(page, per_page=10, error_out=False)
    return render_template(
        "slideshow.html",
        len=len,
        navbar="#snb2",
        sli=data.Slides_c.query.first(),
        mmm=data.Slides.query,
        slides=pagination.items,
        pagination=pagination,
        sm=data.Slides.query.filter(data.Slides.ikey != 0).count(),
        ptitle="All slides",
        hash="#ss1",
        dropdown="#dropdown-lvl3",
        vtrue=data.Vid.query.first().enable,
        strue=data.Slides_c.query.first().status)
Esempio n. 4
0
def logout():
    if not current_user.is_authenticated:
        flash(get_lang(13), "danger")
        return redirect(url_for("core.root"))
    logout_user()
    flash(get_lang(14), "info")
    return redirect(url_for("core.root"))
Esempio n. 5
0
def task_d(t_id):
    task = data.Task.query.filter_by(id=t_id).first()
    if task is None:
        flash(get_lang(4), "danger")
        return redirect(url_for("core.root"))
    if current_user.role_id == 3 and oid is data.Operators.query.filter_by(
            id=current_user.id).first():
        flash(get_lang(17), "danger")
        return redirect(url_for('core.root'))
    if current_user.role_id == 3 and task.office_id != data.Operators.query.filter_by(
            id=current_user.id).first().office_id:
        flash(get_lang(17), "danger")
        return redirect(url_for('core.root'))
    if data.Serial.query.filter(
            and_(data.Serial.task_id == t_id,
                 data.Serial.number != 100)).count() > 0:
        flash(get_lang(46), "danger")
        return redirect(url_for("manage_app.task", o_id=t_id))
    evil = data.Serial.query.filter_by(task_id=t_id, number=100).first()
    if evil is not None:
        db.session.delete(evil)
    db.session.delete(data.Task.query.filter_by(id=t_id).first())
    db.session.commit()
    flash(get_lang(51), "info")
    return redirect(url_for("manage_app.offices", o_id=task.office_id))
Esempio n. 6
0
def task_a(o_id):
    form = forms.Task_a()
    if session.get('lang') == 'AR':
        form = forms.Task_a_ar()
    if data.Office.query.filter_by(id=o_id).first() is None:
        flash(get_lang(4), "danger")
        return redirect(url_for("core.root"))
    if current_user.role_id == 3 and data.Operators.query.filter_by(
            id=current_user.id).first() is None:
        flash(get_lang(17), "danger")
        return redirect(url_for('core.root'))
    if current_user.role_id == 3 and o_id != data.Operators.query.filter_by(
            id=current_user.id).first().office_id:
        flash(get_lang(17), "danger")
        return redirect(url_for('core.root'))
    if form.validate_on_submit():
        if data.Task.query.filter_by(name=form.name.data).first() is not None:
            flash(get_lang(43), "danger")
            return redirect(url_for("manage_app.task_a"))
        db.session.add(data.Task(form.name.data, o_id))
        db.session.commit()
        flash(get_lang(52), "info")
        return redirect(url_for("manage_app.offices", o_id=o_id))
    return render_template("task_add.html",
                           form=form,
                           offices=data.Office.query,
                           serial=data.Serial.query,
                           tasks=data.Task.query,
                           operators=data.Operators.query,
                           navbar="#snb1",
                           dropdown="#dropdown-lvl" + str(o_id),
                           hash="#t3" + str(o_id),
                           ptitle="Add new task")
Esempio n. 7
0
def slide_c():
    ex_functions.mse()
    if current_user.role_id != 1:
        flash(get_lang(0), "danger")
        return redirect(url_for('core.root'))
    if data.Vid.query.first().enable == 1:
        flash(get_lang(31), 'danger')
        return redirect(url_for('cust_app.video'))
    form = forms.Slide_c()
    if session.get('lang') == 'AR':
        form = forms.Slide_c_ar()
    sc = data.Slides_c.query.first()
    if form.validate_on_submit():
        sc.rotation = form.rotation.data
        sc.navigation = form.navigation.data
        sc.effect = form.effect.data
        sc.status = form.status.data
        db.session.add(sc)
        db.session.commit()
        flash(get_lang(33), "info")
        return redirect(url_for("cust_app.slide_c"))
    form.rotation.data = sc.rotation
    form.navigation.data = sc.navigation
    form.effect.data = sc.effect
    form.status.data = sc.status
    return render_template("slide_settings.html",
                           form=form,
                           navbar="#snb2",
                           hash="#ss2",
                           ptitle="Slideshow settings",
                           dropdown="#dropdown-lvl3",
                           vtrue=data.Vid.query.first().enable,
                           strue=data.Slides_c.query.first().status)
Esempio n. 8
0
def serial_rt(t_id):
    if data.Task.query.filter_by(id=t_id).first() is None:
        flash(get_lang(54), "danger")
        return redirect(url_for("manage_app.all_offices"))
    sr = data.Serial.query.filter_by(task_id=t_id)
    if current_user.role_id == 3 and data.Operators.query.filter_by(
            id=current_user.id).first() is None:
        flash(get_lang(17), "danger")
        return redirect(url_for('core.root'))
    if current_user.role_id == 3 and t_id != data.Operators.query.filter_by(
            id=current_user.id).first().office_id:
        flash(get_lang(17), "danger")
        return redirect(url_for('core.root'))
    if sr.first() is None:
        flash(get_lang(23), "danger")
        return redirect(url_for("manage_app.task", o_id=t_id))
    for f in sr:
        w = data.Waiting.query.filter_by(office_id=f.office_id,
                                         number=f.number).first()
        db.session.delete(f)
        if w is not None:
            db.session.delete(w)
    db.session.commit()
    flash(get_lang(24), "info")
    return redirect(url_for("manage_app.task", o_id=t_id))
Esempio n. 9
0
def user_d(u_id):
    if current_user.role_id != 1:
        flash(get_lang(0), "danger")
        return redirect(url_for('core.root'))
    u = data.User.query.filter_by(id=u_id).first()
    if u is None:
        flash(get_lang(7), "danger")
        return redirect(url_for("core.root"))
    if u.id == 1:
        flash(get_lang(8), "danger")
        return redirect(url_for("administrate.users"))
    # if data.Office.query.filter_by(operator_id=u.id).first() is not None:
    #     flash(get_lang(9),
    #           "danger")
    #       return redirect(url_for("administrate.users"))
    # Fix: multiple operators for office
    # checking if user is assigned operator
    # !! Removed checking on second though it seems useless since assinging became obligatory
    # if data.Operators.query.filter_by(id=u.id).first() is not None:
    #     flash(get_lang(9),
    #           "danger")
    #     return redirect(url_for("administrate.users"))
    # delete from operators if user is operator
    if u.role_id == 3:
        db.session.delete(data.Operators.query.filter_by(id=u.id).first())
    db.session.delete(u)
    db.session.commit()
    flash(get_lang(11), "info")
    return redirect(url_for('administrate.users'))
Esempio n. 10
0
def office_a():
    if current_user.role_id == 3:
        flash(get_lang(17), "danger")
        return redirect(url_for('core.root'))
    form = forms.Offices_a()
    if session.get('lang') == 'AR':
        form = forms.Offices_a_ar()
    if form.validate_on_submit():
        if data.Office.query.filter_by(
                name=form.name.data).first() is not None:
            flash(get_lang(42), "danger")
            return redirect(url_for("manage_app.all_offices"))
        db.session.add(data.Office(form.name.data, form.prefix.data.upper()))
        db.session.commit()
        flash(get_lang(45), "info")
        return redirect(url_for("manage_app.all_offices"))
    return render_template("office_add.html",
                           form=form,
                           ptitle="Adding new office",
                           offices=data.Office.query,
                           tasks=data.Task.query,
                           operators=data.Operators.query,
                           navbar="#snb1",
                           hash="#da3",
                           serial=data.Serial.query)
Esempio n. 11
0
 def page_not_found(error):
     if error == 413:
         flash(get_lang(55), "danger")
         if current_user.is_authenticated:
             return redirect(url_for('cust_app.multimedia', nn=1))
         return redirect(url_for('core.root'))
     flash(get_lang(56), "danger")
     return redirect(url_for('core.root'))
Esempio n. 12
0
def ticket():
    if os.name == 'nt':
        from win_printer import listpp
        lll = listpp()
    else:
        lll = listp()
    ex_functions.mse()
    if current_user.role_id != 1:
        flash(get_lang(0), 'danger')
        return redirect(url_for('core.root'))
    form = forms.Printer_f(lll)
    if session.get('lang') == "AR":
        form = forms.Printer_f_ar(lll)
    tc = data.Touch_store.query.first()
    pr = data.Printer.query.first()
    if form.validate_on_submit():
        if form.kind.data == 1:
            tc.n = True
            pr.value = form.value.data
            pr.active = False
            db.session.add(tc)
            db.session.add(pr)
        else:
            if form.printers.data == "00":
                flash(get_lang(19), 'danger')
                return redirect(url_for('cust_app.ticket'))
            f = form.printers.data
            pr.product = f
            if os.name != 'nt':
                f = f.split('_')
                pr.vendor = f[0]
                pr.product = f[1]
                pr.in_ep = int(f[2])
                pr.out_ep = int(f[3])
            tc.n = False
            pr.active = True
            pr.langu = form.langu.data
            pr.value = form.value.data
            db.session.add(tc)
            db.session.add(pr)
        db.session.commit()
        flash(get_lang(27), 'info')
        return redirect(url_for('cust_app.ticket'))
    if tc.n:
        form.kind.data = 1
    else:
        form.kind.data = 2
    form.printers.data = pr.vendor + '_' + pr.product
    form.printers.data += '_' + str(pr.in_ep) + '_' + str(pr.out_ep)
    form.langu.data = pr.langu
    form.value.data = pr.value
    return render_template('ticket.html',
                           navbar='#snb2',
                           ptitle='Tickets',
                           vtrue=data.Vid.query.first().enable,
                           strue=data.Slides_c.query.first().status,
                           form=form,
                           hash='#da7')
Esempio n. 13
0
def offices(o_id):
    ofc = data.Office.query.filter_by(id=o_id).first()
    if ofc is None:
        flash(get_lang(4), "danger")
        return redirect(url_for("manage_app.all_offices"))
    if current_user.role_id == 3 and data.Operators.query.filter_by(
            id=current_user.id).first() is None:
        flash(get_lang(17), "danger")
        return redirect(url_for('core.root'))
    form = forms.Offices_a(upd=ofc.prefix)
    if session.get('lang') == 'AR':
        form = forms.Offices_a_ar(upd=ofc.prefix)
    page = request.args.get('page', 1, type=int)
    if page > int(
            data.Serial.query.filter_by(office_id=o_id).count() / 10) + 1:
        flash(get_lang(4), 'danger')
        return redirect(url_for('manage_app.offices', o_id=o_id))
    pagination = data.Serial.query.filter_by(office_id=o_id).order_by(
        data.Serial.p).order_by(data.Serial.number.desc()).paginate(
            page, per_page=10, error_out=False)
    if form.validate_on_submit():
        mka = data.Office.query.filter_by(name=form.name.data)
        for f in mka:
            if f.id != o_id:
                flash(get_lang(42), "danger")
                return redirect(url_for("manage_app.offices", o_id=o_id))
        ofc.name = form.name.data
        ofc.prefix = form.prefix.data.upper()
        db.session.commit()
        flash(get_lang(44), "info")
        return redirect(url_for('manage_app.offices', o_id=o_id))
    form.name.data = ofc.name
    form.prefix.data = ofc.prefix.upper()
    return render_template('offices.html',
                           form=form,
                           officesp=pagination.items,
                           pagination=pagination,
                           ptitle="Office : " + ofc.prefix + str(ofc.name),
                           o_id=o_id,
                           ooid=ofc,
                           len=len,
                           serial=data.Serial.query,
                           offices=data.Office.query,
                           tasks=data.Task.query,
                           users=data.User.query,
                           operators=data.Operators.query,
                           navbar="#snb1",
                           dropdown="#dropdown-lvl" + str(o_id),
                           hash="#t1" + str(o_id))
Esempio n. 14
0
def user_da():
    if current_user.role_id != 1:
        flash(get_lang(0), "danger")
        return redirect(url_for('core.root'))
    for u in data.User.query:
        # Fix: multiple operators for office
        # ofc = data.Office.query.filter_by(operator_id=u.id).first()
        if u.role_id == 3:
            opt = data.Operators.query.filter_by(id=u.id).first()
            if opt:
                db.session.delete(opt)
        if u.id != 1:
            db.session.delete(u)
    db.session.commit()
    flash(get_lang(12), "info")
    return redirect(url_for('administrate.users'))
Esempio n. 15
0
def admin_u():
    if current_user.id != 1:
        flash(get_lang(1), 'danger')
        return redirect(url_for('core.root'))
    form = forms.U_admin()
    if session.get('lang') == "AR":
        form = forms.U_admin_ar()
    admin = data.User.query.filter_by(id=1).first()
    if form.validate_on_submit():
        admin.password = form.password.data
        db.session.commit()
        flash(get_lang(2), 'info')
        return redirect(url_for('administrate.logout'))
    return render_template('admin_u.html',
                           navbar='#snb3',
                           ptitle="Updating Admin Password",
                           form=form)
Esempio n. 16
0
def office_da():
    if current_user.role_id == 3:
        flash(get_lang(17), "danger")
        return redirect(url_for('core.root'))
    if data.Office.query.count() <= 0:
        flash(get_lang(53), "danger")
        return redirect(url_for("manage_app.all_offices"))
    if data.Serial.query.count() > 0:
        flash(get_lang(46), "danger")
        return redirect(url_for("manage_app.all_offices"))
    for f in data.Office.query:
        for t in data.Task.query.filter_by(office_id=f.id):
            db.session.delete(t)
        db.session.delete(f)
    db.session.commit()
    flash(get_lang(47), "info")
    return redirect(url_for("manage_app.all_offices"))
Esempio n. 17
0
def slide_a():
    ex_functions.mse()
    if current_user.role_id != 1:
        flash(get_lang(0), "danger")
        return redirect(url_for('core.root'))
    if data.Vid.query.first().enable == 1:
        flash(get_lang(31), 'danger')
        return redirect(url_for('cust_app.video'))
    form = forms.Slide_a()
    if session.get('lang') == 'AR':
        form = forms.Slide_a_ar()
    if form.validate_on_submit():
        if form.background.data == 00:
            bb = form.bgcolor.data
        else:
            bb = data.Media.query.filter_by(id=form.background.data).first()
            if bb is None:
                flash(get_lang(4), "danger")
                return redirect(url_for("cust_app.slide_a"))
            bb = bb.name
        ss = data.Slides()
        ss.title = form.title.data
        ss.hsize = form.hsize.data
        ss.hcolor = form.hcolor.data
        ss.hfont = form.hfont.data
        ss.hbg = form.hbg.data
        ss.subti = form.subti.data
        ss.tsize = form.tsize.data
        ss.tcolor = form.tcolor.data
        ss.tfont = form.tfont.data
        ss.tbg = form.tbg.data
        ss.bname = bb
        ss.ikey = form.background.data
        db.session.add(ss)
        db.session.commit()
        flash(get_lang(32), "info")
        return redirect(url_for("cust_app.slideshow"))
    return render_template("slide_add.html",
                           ptitle="Add Slide ",
                           form=form,
                           navbar="#snb2",
                           hash=1,
                           dropdown='#dropdown-lvl3',
                           vtrue=data.Vid.query.first().enable,
                           strue=data.Slides_c.query.first().status)
Esempio n. 18
0
def users():
    if current_user.role_id != 1:
        flash(get_lang(0), "danger")
        return redirect(url_for('root'))
    page = request.args.get('page', 1, type=int)
    if page > int(data.User.query.count() / 10) + 1:
        flash(get_lang(4), 'danger')
        return redirect(url_for('administrate.users'))
    pagination = data.User.query.paginate(page, per_page=10, error_out=False)
    return render_template('users.html',
                           ptitle='All users',
                           navbar='#snb3',
                           len=len,
                           offices=data.Office.query,
                           pagination=pagination,
                           usersp=pagination.items,
                           operators=data.Operators.query,
                           users=data.User.query)
Esempio n. 19
0
def customize():
    ex_functions.mse()
    if current_user.role_id != 1:
        flash(get_lang(0), "danger")
        return redirect(url_for('core.root'))
    return render_template("customize.html",
                           ptitle="Customization",
                           navbar="#snb2",
                           vtrue=data.Vid.query.first().enable,
                           strue=data.Slides_c.query.first().status)
Esempio n. 20
0
def video():
    ex_functions.mse()
    if current_user.role_id != 1:
        flash(get_lang(0), 'danger')
        return redirect(url_for('core.root'))
    if data.Slides_c.query.first().status == 1:
        flash(get_lang(28), 'danger')
        return redirect(url_for('cust_app.slide_c'))
    form = forms.Video()
    if session.get('lang') == "AR":
        form = forms.Video_ar()
    vdb = data.Vid.query.first()
    if form.validate_on_submit():
        if form.video.data == 00:
            vdb.enable = 2
            vdb.vkey = 00
        else:
            vdb.vkey = form.video.data
            vdb.enable = form.enable.data
            mname = data.Media.query.filter_by(id=form.video.data).first()
            vdb.vname = mname.name
            data.Display_store.query.first().vkey = form.video.data
            data.Media.query.filter_by(id=form.video.data).first().used = True
        vdb.ar = form.ar.data
        vdb.controls = form.controls.data
        vdb.mute = form.mute.data
        db.session.add(vdb)
        db.session.commit()
        flash(get_lang(29), 'info')
        return redirect(url_for('cust_app.video'))
    if vdb is not None:
        form.video.data = vdb.vkey
        form.enable.data = vdb.enable
        form.ar.data = vdb.ar
        form.controls.data = vdb.controls
        form.mute.data = vdb.mute
    return render_template('video.html',
                           ptitle='Video settings',
                           navbar='#snb2',
                           hash='#da5',
                           form=form,
                           vtrue=data.Vid.query.first().enable,
                           strue=data.Slides_c.query.first().status)
Esempio n. 21
0
def office_d(o_id):
    if current_user.role_id == 3:
        flash(get_lan(17), "danger")
        return redirect(url_for('core.root'))
    if data.Office.query.filter_by(id=o_id).first() is None:
        flash(get_lang(4), "danger")
        return redirect(url_for("manage_app.offices", o_id=o_id))
    if data.Serial.query.filter(
            and_(data.Serial.office_id == o_id,
                 data.Serial.number != 100)).count() > 0:
        flash(get_lang(46), "danger")
        return redirect(url_for("manage_app.offices", o_id=o_id))
    for t in data.Task.query.filter_by(office_id=o_id):
        if t is not None:
            db.session.delete(t)
    db.session.delete(data.Office.query.filter_by(id=o_id).first())
    db.session.commit()
    flash(get_lang(47), "info")
    return redirect(url_for("manage_app.all_offices"))
Esempio n. 22
0
def serial_ra():
    if data.Office.query.first() is None:
        flash(get_lang(54), "danger")
        return redirect(url_for("manage_app.all_offices"))
    if current_user.role_id == 3:
        flash(get_lang(17), "danger")
        return redirect(url_for('core.root'))
    sr = data.Serial.query
    if sr.first() is None:
        flash(get_lang(21), "danger")
        return redirect(url_for("manage_app.all_offices"))
    for f in sr:
        w = data.Waiting.query.filter_by(office_id=f.office_id,
                                         number=f.number).first()
        db.session.delete(f)
        if w is not None:
            db.session.delete(w)
    db.session.commit()
    flash(get_lang(22), "info")
    return redirect(url_for("manage_app.all_offices"))
Esempio n. 23
0
def multi_del(f_id):
    if current_user.role_id != 1:
        flash(get_lang(0), "danger")
        return redirect(url_for('core.root'))
    dire = r_path('static/multimedia/')
    if data.Media.query.filter_by(used=False).count() <= 0:
        flash(get_lang(39), "danger")
        return redirect(url_for('cust_app.multimedia', aa=1))
    if f_id == 00:
        for a in data.Media.query:
            if not a.used:
                if os.path.exists(dire + a.name):
                    os.remove(dire + a.name)
                db.session.delete(a)
        db.session.commit()
        flash(get_lang(40), "info")
        return redirect(url_for('cust_app.multimedia', aa=1))
    mf = data.Media.query.filter_by(id=f_id).first()
    if mf is not None:
        if mf.used:
            flash(get_lang(39), "danger")
            return redirect(url_for('cust_app.multimedia', aa=1))
        if os.path.exists(dire + mf.name):
            os.remove(dire + mf.name)
        db.session.delete(mf)
        db.session.commit()
        flash(get_lang(40), "info")
        return redirect(url_for('cust_app.multimedia', aa=1))
    else:
        flash(get_lang(39), "danger")
        return redirect(url_for('core.root'))
Esempio n. 24
0
def slide_r(f_id):
    ex_functions.mse()
    if current_user.role_id != 1:
        flash(get_lang(0), "danger")
        return redirect(url_for('core.root'))
    if data.Slides.query.count() <= 0:
        flash(get_lang(34), "danger")
        return redirect(url_for('cust_app.slideshow'))
    if data.Vid.query.first().enable == 1:
        flash(get_lang(31), 'danger')
        return redirect(url_for('cust_app.video'))
    if f_id == 00:
        for a in data.Slides.query:
            if a is not None:
                db.session.delete(a)
        db.session.commit()
        flash(get_lang(35), "info")
        return redirect(url_for('cust_app.slideshow'))
    mf = data.Slides.query.filter_by(id=f_id).first()
    if mf is not None:
        db.session.delete(mf)
        db.session.commit()
        flash(get_lang(35), "info")
        return redirect(url_for('cust_app.slideshow'))
    else:
        flash(get_lang(34), "danger")
        return redirect(url_for('core.root'))
Esempio n. 25
0
def all_offices():
    if current_user.role_id == 3:
        flash(get_lang(17), "danger")
        return redirect(url_for('core.root'))
    page = request.args.get('page', 1, type=int)
    if page > int(data.Serial.query.count() / 10) + 1:
        flash(get_lang(4), 'danger')
        return redirect(url_for('manage_app.all_offices'))
    pagination = data.Serial.query.order_by(
        data.Serial.p, data.Serial.timestamp.desc()).paginate(page,
                                                              per_page=10,
                                                              error_out=False)
    return render_template('all_offices.html',
                           officesp=pagination.items,
                           pagination=pagination,
                           len=len,
                           ptitle="All Offices",
                           serial=data.Serial.query,
                           offices=data.Office.query,
                           tasks=data.Task.query,
                           users=data.User.query,
                           operators=data.Operators.query,
                           navbar="#snb1",
                           hash="#da2")
Esempio n. 26
0
def csvd(t_name):
    if current_user.role_id != 1:
        flash(get_lang(0), 'danger')
        return redirect(url_for('core.root'))
    form = forms.CSV()
    if session.get('lang') == "AR":
        form = forms.CSV_ar()
    t_ids = ['User', 'Office', 'Task', 'Serial', 'Waiting', 'Roles']
    if t_name in t_ids:
        t_name = eval('data.' + t_name)
        fn = 'csvd.csv'
        ffn = r_path(fn)
        of = open(ffn, 'w+')
        outcsv = csv.writer(of)
        outcsv.writerow([
            column.name for column in t_name.__mapper__.columns
            if column.name != 'password_hash'
        ])
        [
            outcsv.writerow([
                getattr(curr, column.name)
                for column in t_name.__mapper__.columns
                if column.name != 'password_hash'
            ]) for curr in t_name.query.all()
        ]
        of.close()
        return send_file(ffn, mimetype='csv', as_attachment=True)
    elif t_name != '0':
        flash(get_lang(4), 'danger')
        return redirect(url_for('core.root'))
    if form.validate_on_submit():
        return redirect(url_for('administrate.csvd', t_name=form.table.data))
    return render_template('csvs.html',
                           navbar='#snb3',
                           ptitle='Export CSV',
                           form=form)
Esempio n. 27
0
def user_u(u_id):
    if current_user.role_id != 1 and current_user.id != u_id:
        flash(get_lang(0), "danger")
        return redirect(url_for('core.root'))
    form = forms.User_a()
    if session.get('lang') == "AR":
        form = forms.User_a_ar()
    u = data.User.query.filter_by(id=u_id).first()
    if u is None:
        flash(get_lang(7), "danger")
        return redirect(url_for("core.root"))
    if u.id == 1:
        flash(get_lang(8), "danger")
        return redirect(url_for("administrate.users"))
    if data.Office.query.filter_by(operator_id=u.id).first() is not None:
        flash(get_lang(9), "danger")
        return redirect(url_for("administrate.users"))
    if form.validate_on_submit():
        u.name = form.name.data
        u.password = form.password.data
        u.role_id = form.role.data
        db.session.commit()
        flash(get_lang(10), "info")
        return redirect(url_for('administrate.users'))
    form.name.data = u.name
    form.role.data = u.role_id
    # Fix: multiple operators for office
    # fetch office id if operator
    if u.role_id == 3:
        form.offices.data = data.Operators.query.filter_by(
            id=u.id).first().office_id
    return render_template('user_update.html',
                           form=form,
                           navbar='#snb3',
                           ptitle='Update user : ' + u.name,
                           u=u)
Esempio n. 28
0
def manage():
    ofc = data.Operators.query.filter_by(id=current_user.id).first()
    if current_user.role_id == 3 and ofc is None:
        flash(get_lang(17), "danger")
        return redirect(url_for('core.root'))
    if ofc is None:
        ofc = 0
    else:
        ofc = ofc.id
    return render_template("manage.html",
                           ptitle="Management",
                           navbar="#snb1",
                           ooid=ofc,
                           serial=data.Serial.query,
                           offices=data.Office.query,
                           operators=data.Operators.query,
                           tasks=data.Task.query)
Esempio n. 29
0
def task(o_id):
    form = forms.Task_a()
    if session.get('lang') == 'AR':
        form = forms.Task_a_ar()
    task = data.Task.query.filter_by(id=o_id).first()
    if task is None:
        flash(get_lang(4), "danger")
        return redirect(url_for("core.root"))
    if current_user.role_id == 3 and data.Operators.query.filter_by(
            id=current_user.id).first() is None:
        flash(get_lang(17), "danger")
        return redirect(url_for('core.root'))
    if current_user.role_id == 3 and task.office_id != data.Operators.query.filter_by(
            id=current_user.id).first().office_id:
        flash(get_lang(17), "danger")
        return redirect(url_for('core.root'))
    ofc = data.Office.query.filter_by(id=task.office_id).first()
    page = request.args.get('page', 1, type=int)
    if page > int(data.Serial.query.filter_by(task_id=o_id).count() / 10) + 1:
        flash(get_lang(4), 'danger')
        return redirect(url_for('manage_app.task', o_id=o_id))
    pagination = data.Serial.query.filter_by(task_id=o_id).order_by(
        data.Serial.timestamp.desc()).paginate(page,
                                               per_page=10,
                                               error_out=False)
    if form.validate_on_submit():
        mka = data.Task.query.filter_by(name=form.name.data)
        for f in mka:
            if f.id != o_id:
                flash(get_lang(43), "danger")
                return redirect(url_for("manage_app.task", o_id=o_id))
        task.name = form.name.data
        db.session.add(task)
        db.session.commit()
        flash(get_lang(50), "info")
        return redirect(url_for("manage_app.task", o_id=o_id))
    form.name.data = task.name
    return render_template('tasks.html',
                           form=form,
                           ptitle="Task : " + task.name,
                           tasksp=pagination.items,
                           pagination=pagination,
                           serial=data.Serial.query,
                           o_id=o_id,
                           len=len,
                           offices=data.Office.query,
                           tasks=data.Task.query,
                           users=data.User.query,
                           operators=data.Operators.query,
                           task=task,
                           navbar="#snb1",
                           dropdown="#dropdown-lvl" + str(task.office_id),
                           hash="#tt" + str(task.office_id) + str(o_id))
Esempio n. 30
0
def root(n=None):
    b = None
    form = forms.Login()
    if session.get('lang') == 'AR':
        form = forms.Login_ar()
    if n is not None and n == 'a':
        n = True
    elif n is not None and n == 'b':
        b = True
    elif n is None:
        n = False
    else:
        flash(get_lang(4), "danger")
        return redirect(url_for('core.root'))
    if data.User.query.first() is None:
        flash(get_lang(4), "danger")
        return redirect(url_for('core.root'))
    # Check if default password and account
    dpass = False
    if data.User.query.filter_by(id=1).first().verify_password('admin'):
        dpass = True
    if form.validate_on_submit():
        if current_user.is_authenticated:
            flash(get_lang(4), "danger")
            return redirect(url_for('core.root'))
        user = data.User.query.filter_by(name=form.name.data).first()
        if user is not None:
            if user.verify_password(form.password.data):
                if form.rm.data:
                    login_user(user, remember=True)
                else:
                    login_user(user)
                flash(get_lang(16), "info")
                if b:
                    s = str(session.get('next_url', '/'))
                    session['next_url'] = None
                    return redirect(s)
                else:
                    return redirect(url_for('manage_app.manage'))
            flash(get_lang(17), "danger")
            return redirect(url_for("core.root", n='a'))
        flash(get_lang(17), "danger")
        return redirect(url_for("core.root", n='a'))
    return render_template("index.html",
                           ptitle="Free Queue Manager",
                           form=form,
                           n=n,
                           dpass=dpass)