├── .gitignore ├── LICENSE.txt ├── README.md ├── app ├── README.md ├── __init__.py ├── commands │ ├── __init__.py │ └── init_db.py ├── controllers │ ├── __init__.py │ ├── apis.py │ ├── controller1.py │ └── controller2.py ├── index.html ├── local_settings.py ├── models │ ├── __init__.py │ └── user_models.py ├── settings.py ├── static │ ├── bootstrap │ │ ├── css │ │ │ ├── bootstrap.css │ │ │ └── bootstrap.min.css.map │ │ └── js │ │ │ ├── bootstrap.min.js │ │ │ ├── html5shiv.min.js │ │ │ ├── jquery.min.js │ │ │ └── respond.min.js │ ├── css │ │ ├── flag-icon-css │ │ │ ├── .editorconfig │ │ │ ├── Gruntfile.coffee │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── assets │ │ │ │ ├── docs.css │ │ │ │ ├── docs.js │ │ │ │ └── docs.less │ │ │ ├── bower.json │ │ │ ├── composer.json │ │ │ ├── css │ │ │ │ ├── flag-icon.css │ │ │ │ └── flag-icon.min.css │ │ │ ├── flags │ │ │ │ ├── 1x1 │ │ │ │ │ ├── ad.svg │ │ │ │ │ ├── ae.svg │ │ │ │ │ ├── af.svg │ │ │ │ │ ├── ag.svg │ │ │ │ │ ├── ai.svg │ │ │ │ │ ├── al.svg │ │ │ │ │ ├── am.svg │ │ │ │ │ ├── ao.svg │ │ │ │ │ ├── aq.svg │ │ │ │ │ ├── ar.svg │ │ │ │ │ ├── as.svg │ │ │ │ │ ├── at.svg │ │ │ │ │ ├── au.svg │ │ │ │ │ ├── aw.svg │ │ │ │ │ ├── ax.svg │ │ │ │ │ ├── az.svg │ │ │ │ │ ├── ba.svg │ │ │ │ │ ├── bb.svg │ │ │ │ │ ├── bd.svg │ │ │ │ │ ├── be.svg │ │ │ │ │ ├── bf.svg │ │ │ │ │ ├── bg.svg │ │ │ │ │ ├── bh.svg │ │ │ │ │ ├── bi.svg │ │ │ │ │ ├── bj.svg │ │ │ │ │ ├── bl.svg │ │ │ │ │ ├── bm.svg │ │ │ │ │ ├── bn.svg │ │ │ │ │ ├── bo.svg │ │ │ │ │ ├── bq.svg │ │ │ │ │ ├── br.svg │ │ │ │ │ ├── bs.svg │ │ │ │ │ ├── bt.svg │ │ │ │ │ ├── bv.svg │ │ │ │ │ ├── bw.svg │ │ │ │ │ ├── by.svg │ │ │ │ │ ├── bz.svg │ │ │ │ │ ├── ca.svg │ │ │ │ │ ├── cc.svg │ │ │ │ │ ├── cd.svg │ │ │ │ │ ├── cf.svg │ │ │ │ │ ├── cg.svg │ │ │ │ │ ├── ch.svg │ │ │ │ │ ├── ci.svg │ │ │ │ │ ├── ck.svg │ │ │ │ │ ├── cl.svg │ │ │ │ │ ├── cm.svg │ │ │ │ │ ├── cn.svg │ │ │ │ │ ├── co.svg │ │ │ │ │ ├── cr.svg │ │ │ │ │ ├── cu.svg │ │ │ │ │ ├── cv.svg │ │ │ │ │ ├── cw.svg │ │ │ │ │ ├── cx.svg │ │ │ │ │ ├── cy.svg │ │ │ │ │ ├── cz.svg │ │ │ │ │ ├── de.svg │ │ │ │ │ ├── dj.svg │ │ │ │ │ ├── dk.svg │ │ │ │ │ ├── dm.svg │ │ │ │ │ ├── do.svg │ │ │ │ │ ├── dz.svg │ │ │ │ │ ├── ec.svg │ │ │ │ │ ├── ee.svg │ │ │ │ │ ├── eg.svg │ │ │ │ │ ├── eh.svg │ │ │ │ │ ├── er.svg │ │ │ │ │ ├── es-ct.svg │ │ │ │ │ ├── es.svg │ │ │ │ │ ├── et.svg │ │ │ │ │ ├── eu.svg │ │ │ │ │ ├── fi.svg │ │ │ │ │ ├── fj.svg │ │ │ │ │ ├── fk.svg │ │ │ │ │ ├── fm.svg │ │ │ │ │ ├── fo.svg │ │ │ │ │ ├── fr.svg │ │ │ │ │ ├── ga.svg │ │ │ │ │ ├── gb-eng.svg │ │ │ │ │ ├── gb-nir.svg │ │ │ │ │ ├── gb-sct.svg │ │ │ │ │ ├── gb-wls.svg │ │ │ │ │ ├── gb.svg │ │ │ │ │ ├── gd.svg │ │ │ │ │ ├── ge.svg │ │ │ │ │ ├── gf.svg │ │ │ │ │ ├── gg.svg │ │ │ │ │ ├── gh.svg │ │ │ │ │ ├── gi.svg │ │ │ │ │ ├── gl.svg │ │ │ │ │ ├── gm.svg │ │ │ │ │ ├── gn.svg │ │ │ │ │ ├── gp.svg │ │ │ │ │ ├── gq.svg │ │ │ │ │ ├── gr.svg │ │ │ │ │ ├── gs.svg │ │ │ │ │ ├── gt.svg │ │ │ │ │ ├── gu.svg │ │ │ │ │ ├── gw.svg │ │ │ │ │ ├── gy.svg │ │ │ │ │ ├── hk.svg │ │ │ │ │ ├── hm.svg │ │ │ │ │ ├── hn.svg │ │ │ │ │ ├── hr.svg │ │ │ │ │ ├── ht.svg │ │ │ │ │ ├── hu.svg │ │ │ │ │ ├── id.svg │ │ │ │ │ ├── ie.svg │ │ │ │ │ ├── il.svg │ │ │ │ │ ├── im.svg │ │ │ │ │ ├── in.svg │ │ │ │ │ ├── io.svg │ │ │ │ │ ├── iq.svg │ │ │ │ │ ├── ir.svg │ │ │ │ │ ├── is.svg │ │ │ │ │ ├── it.svg │ │ │ │ │ ├── je.svg │ │ │ │ │ ├── jm.svg │ │ │ │ │ ├── jo.svg │ │ │ │ │ ├── jp.svg │ │ │ │ │ ├── ke.svg │ │ │ │ │ ├── kg.svg │ │ │ │ │ ├── kh.svg │ │ │ │ │ ├── ki.svg │ │ │ │ │ ├── km.svg │ │ │ │ │ ├── kn.svg │ │ │ │ │ ├── kp.svg │ │ │ │ │ ├── kr.svg │ │ │ │ │ ├── kw.svg │ │ │ │ │ ├── ky.svg │ │ │ │ │ ├── kz.svg │ │ │ │ │ ├── la.svg │ │ │ │ │ ├── lb.svg │ │ │ │ │ ├── lc.svg │ │ │ │ │ ├── li.svg │ │ │ │ │ ├── lk.svg │ │ │ │ │ ├── lr.svg │ │ │ │ │ ├── ls.svg │ │ │ │ │ ├── lt.svg │ │ │ │ │ ├── lu.svg │ │ │ │ │ ├── lv.svg │ │ │ │ │ ├── ly.svg │ │ │ │ │ ├── ma.svg │ │ │ │ │ ├── mc.svg │ │ │ │ │ ├── md.svg │ │ │ │ │ ├── me.svg │ │ │ │ │ ├── mf.svg │ │ │ │ │ ├── mg.svg │ │ │ │ │ ├── mh.svg │ │ │ │ │ ├── mk.svg │ │ │ │ │ ├── ml.svg │ │ │ │ │ ├── mm.svg │ │ │ │ │ ├── mn.svg │ │ │ │ │ ├── mo.svg │ │ │ │ │ ├── mp.svg │ │ │ │ │ ├── mq.svg │ │ │ │ │ ├── mr.svg │ │ │ │ │ ├── ms.svg │ │ │ │ │ ├── mt.svg │ │ │ │ │ ├── mu.svg │ │ │ │ │ ├── mv.svg │ │ │ │ │ ├── mw.svg │ │ │ │ │ ├── mx.svg │ │ │ │ │ ├── my.svg │ │ │ │ │ ├── mz.svg │ │ │ │ │ ├── na.svg │ │ │ │ │ ├── nc.svg │ │ │ │ │ ├── ne.svg │ │ │ │ │ ├── nf.svg │ │ │ │ │ ├── ng.svg │ │ │ │ │ ├── ni.svg │ │ │ │ │ ├── nl.svg │ │ │ │ │ ├── no.svg │ │ │ │ │ ├── np.svg │ │ │ │ │ ├── nr.svg │ │ │ │ │ ├── nu.svg │ │ │ │ │ ├── nz.svg │ │ │ │ │ ├── om.svg │ │ │ │ │ ├── pa.svg │ │ │ │ │ ├── pe.svg │ │ │ │ │ ├── pf.svg │ │ │ │ │ ├── pg.svg │ │ │ │ │ ├── ph.svg │ │ │ │ │ ├── pk.svg │ │ │ │ │ ├── pl.svg │ │ │ │ │ ├── pm.svg │ │ │ │ │ ├── pn.svg │ │ │ │ │ ├── pr.svg │ │ │ │ │ ├── ps.svg │ │ │ │ │ ├── pt.svg │ │ │ │ │ ├── pw.svg │ │ │ │ │ ├── py.svg │ │ │ │ │ ├── qa.svg │ │ │ │ │ ├── re.svg │ │ │ │ │ ├── ro.svg │ │ │ │ │ ├── rs.svg │ │ │ │ │ ├── ru.svg │ │ │ │ │ ├── rw.svg │ │ │ │ │ ├── sa.svg │ │ │ │ │ ├── sb.svg │ │ │ │ │ ├── sc.svg │ │ │ │ │ ├── sd.svg │ │ │ │ │ ├── se.svg │ │ │ │ │ ├── sg.svg │ │ │ │ │ ├── sh.svg │ │ │ │ │ ├── si.svg │ │ │ │ │ ├── sj.svg │ │ │ │ │ ├── sk.svg │ │ │ │ │ ├── sl.svg │ │ │ │ │ ├── sm.svg │ │ │ │ │ ├── sn.svg │ │ │ │ │ ├── so.svg │ │ │ │ │ ├── sr.svg │ │ │ │ │ ├── ss.svg │ │ │ │ │ ├── st.svg │ │ │ │ │ ├── sv.svg │ │ │ │ │ ├── sx.svg │ │ │ │ │ ├── sy.svg │ │ │ │ │ ├── sz.svg │ │ │ │ │ ├── tc.svg │ │ │ │ │ ├── td.svg │ │ │ │ │ ├── tf.svg │ │ │ │ │ ├── tg.svg │ │ │ │ │ ├── th.svg │ │ │ │ │ ├── tj.svg │ │ │ │ │ ├── tk.svg │ │ │ │ │ ├── tl.svg │ │ │ │ │ ├── tm.svg │ │ │ │ │ ├── tn.svg │ │ │ │ │ ├── to.svg │ │ │ │ │ ├── tr.svg │ │ │ │ │ ├── tt.svg │ │ │ │ │ ├── tv.svg │ │ │ │ │ ├── tw.svg │ │ │ │ │ ├── tz.svg │ │ │ │ │ ├── ua.svg │ │ │ │ │ ├── ug.svg │ │ │ │ │ ├── um.svg │ │ │ │ │ ├── un.svg │ │ │ │ │ ├── us.svg │ │ │ │ │ ├── uy.svg │ │ │ │ │ ├── uz.svg │ │ │ │ │ ├── va.svg │ │ │ │ │ ├── vc.svg │ │ │ │ │ ├── ve.svg │ │ │ │ │ ├── vg.svg │ │ │ │ │ ├── vi.svg │ │ │ │ │ ├── vn.svg │ │ │ │ │ ├── vu.svg │ │ │ │ │ ├── wf.svg │ │ │ │ │ ├── ws.svg │ │ │ │ │ ├── ye.svg │ │ │ │ │ ├── yt.svg │ │ │ │ │ ├── za.svg │ │ │ │ │ ├── zm.svg │ │ │ │ │ └── zw.svg │ │ │ │ └── 4x3 │ │ │ │ │ ├── ad.svg │ │ │ │ │ ├── ae.svg │ │ │ │ │ ├── af.svg │ │ │ │ │ ├── ag.svg │ │ │ │ │ ├── ai.svg │ │ │ │ │ ├── al.svg │ │ │ │ │ ├── am.svg │ │ │ │ │ ├── ao.svg │ │ │ │ │ ├── aq.svg │ │ │ │ │ ├── ar.svg │ │ │ │ │ ├── as.svg │ │ │ │ │ ├── at.svg │ │ │ │ │ ├── au.svg │ │ │ │ │ ├── aw.svg │ │ │ │ │ ├── ax.svg │ │ │ │ │ ├── az.svg │ │ │ │ │ ├── ba.svg │ │ │ │ │ ├── bb.svg │ │ │ │ │ ├── bd.svg │ │ │ │ │ ├── be.svg │ │ │ │ │ ├── bf.svg │ │ │ │ │ ├── bg.svg │ │ │ │ │ ├── bh.svg │ │ │ │ │ ├── bi.svg │ │ │ │ │ ├── bj.svg │ │ │ │ │ ├── bl.svg │ │ │ │ │ ├── bm.svg │ │ │ │ │ ├── bn.svg │ │ │ │ │ ├── bo.svg │ │ │ │ │ ├── bq.svg │ │ │ │ │ ├── br.svg │ │ │ │ │ ├── bs.svg │ │ │ │ │ ├── bt.svg │ │ │ │ │ ├── bv.svg │ │ │ │ │ ├── bw.svg │ │ │ │ │ ├── by.svg │ │ │ │ │ ├── bz.svg │ │ │ │ │ ├── ca.svg │ │ │ │ │ ├── cc.svg │ │ │ │ │ ├── cd.svg │ │ │ │ │ ├── cf.svg │ │ │ │ │ ├── cg.svg │ │ │ │ │ ├── ch.svg │ │ │ │ │ ├── ci.svg │ │ │ │ │ ├── ck.svg │ │ │ │ │ ├── cl.svg │ │ │ │ │ ├── cm.svg │ │ │ │ │ ├── cn.svg │ │ │ │ │ ├── co.svg │ │ │ │ │ ├── cr.svg │ │ │ │ │ ├── cu.svg │ │ │ │ │ ├── cv.svg │ │ │ │ │ ├── cw.svg │ │ │ │ │ ├── cx.svg │ │ │ │ │ ├── cy.svg │ │ │ │ │ ├── cz.svg │ │ │ │ │ ├── de.svg │ │ │ │ │ ├── dj.svg │ │ │ │ │ ├── dk.svg │ │ │ │ │ ├── dm.svg │ │ │ │ │ ├── do.svg │ │ │ │ │ ├── dz.svg │ │ │ │ │ ├── ec.svg │ │ │ │ │ ├── ee.svg │ │ │ │ │ ├── eg.svg │ │ │ │ │ ├── eh.svg │ │ │ │ │ ├── er.svg │ │ │ │ │ ├── es-ct.svg │ │ │ │ │ ├── es.svg │ │ │ │ │ ├── et.svg │ │ │ │ │ ├── eu.svg │ │ │ │ │ ├── fi.svg │ │ │ │ │ ├── fj.svg │ │ │ │ │ ├── fk.svg │ │ │ │ │ ├── fm.svg │ │ │ │ │ ├── fo.svg │ │ │ │ │ ├── fr.svg │ │ │ │ │ ├── ga.svg │ │ │ │ │ ├── gb-eng.svg │ │ │ │ │ ├── gb-nir.svg │ │ │ │ │ ├── gb-sct.svg │ │ │ │ │ ├── gb-wls.svg │ │ │ │ │ ├── gb.svg │ │ │ │ │ ├── gd.svg │ │ │ │ │ ├── ge.svg │ │ │ │ │ ├── gf.svg │ │ │ │ │ ├── gg.svg │ │ │ │ │ ├── gh.svg │ │ │ │ │ ├── gi.svg │ │ │ │ │ ├── gl.svg │ │ │ │ │ ├── gm.svg │ │ │ │ │ ├── gn.svg │ │ │ │ │ ├── gp.svg │ │ │ │ │ ├── gq.svg │ │ │ │ │ ├── gr.svg │ │ │ │ │ ├── gs.svg │ │ │ │ │ ├── gt.svg │ │ │ │ │ ├── gu.svg │ │ │ │ │ ├── gw.svg │ │ │ │ │ ├── gy.svg │ │ │ │ │ ├── hk.svg │ │ │ │ │ ├── hm.svg │ │ │ │ │ ├── hn.svg │ │ │ │ │ ├── hr.svg │ │ │ │ │ ├── ht.svg │ │ │ │ │ ├── hu.svg │ │ │ │ │ ├── id.svg │ │ │ │ │ ├── ie.svg │ │ │ │ │ ├── il.svg │ │ │ │ │ ├── im.svg │ │ │ │ │ ├── in.svg │ │ │ │ │ ├── io.svg │ │ │ │ │ ├── iq.svg │ │ │ │ │ ├── ir.svg │ │ │ │ │ ├── is.svg │ │ │ │ │ ├── it.svg │ │ │ │ │ ├── je.svg │ │ │ │ │ ├── jm.svg │ │ │ │ │ ├── jo.svg │ │ │ │ │ ├── jp.svg │ │ │ │ │ ├── ke.svg │ │ │ │ │ ├── kg.svg │ │ │ │ │ ├── kh.svg │ │ │ │ │ ├── ki.svg │ │ │ │ │ ├── km.svg │ │ │ │ │ ├── kn.svg │ │ │ │ │ ├── kp.svg │ │ │ │ │ ├── kr.svg │ │ │ │ │ ├── kw.svg │ │ │ │ │ ├── ky.svg │ │ │ │ │ ├── kz.svg │ │ │ │ │ ├── la.svg │ │ │ │ │ ├── lb.svg │ │ │ │ │ ├── lc.svg │ │ │ │ │ ├── li.svg │ │ │ │ │ ├── lk.svg │ │ │ │ │ ├── lr.svg │ │ │ │ │ ├── ls.svg │ │ │ │ │ ├── lt.svg │ │ │ │ │ ├── lu.svg │ │ │ │ │ ├── lv.svg │ │ │ │ │ ├── ly.svg │ │ │ │ │ ├── ma.svg │ │ │ │ │ ├── mc.svg │ │ │ │ │ ├── md.svg │ │ │ │ │ ├── me.svg │ │ │ │ │ ├── mf.svg │ │ │ │ │ ├── mg.svg │ │ │ │ │ ├── mh.svg │ │ │ │ │ ├── mk.svg │ │ │ │ │ ├── ml.svg │ │ │ │ │ ├── mm.svg │ │ │ │ │ ├── mn.svg │ │ │ │ │ ├── mo.svg │ │ │ │ │ ├── mp.svg │ │ │ │ │ ├── mq.svg │ │ │ │ │ ├── mr.svg │ │ │ │ │ ├── ms.svg │ │ │ │ │ ├── mt.svg │ │ │ │ │ ├── mu.svg │ │ │ │ │ ├── mv.svg │ │ │ │ │ ├── mw.svg │ │ │ │ │ ├── mx.svg │ │ │ │ │ ├── my.svg │ │ │ │ │ ├── mz.svg │ │ │ │ │ ├── na.svg │ │ │ │ │ ├── nc.svg │ │ │ │ │ ├── ne.svg │ │ │ │ │ ├── nf.svg │ │ │ │ │ ├── ng.svg │ │ │ │ │ ├── ni.svg │ │ │ │ │ ├── nl.svg │ │ │ │ │ ├── no.svg │ │ │ │ │ ├── np.svg │ │ │ │ │ ├── nr.svg │ │ │ │ │ ├── nu.svg │ │ │ │ │ ├── nz.svg │ │ │ │ │ ├── om.svg │ │ │ │ │ ├── pa.svg │ │ │ │ │ ├── pe.svg │ │ │ │ │ ├── pf.svg │ │ │ │ │ ├── pg.svg │ │ │ │ │ ├── ph.svg │ │ │ │ │ ├── pk.svg │ │ │ │ │ ├── pl.svg │ │ │ │ │ ├── pm.svg │ │ │ │ │ ├── pn.svg │ │ │ │ │ ├── pr.svg │ │ │ │ │ ├── ps.svg │ │ │ │ │ ├── pt.svg │ │ │ │ │ ├── pw.svg │ │ │ │ │ ├── py.svg │ │ │ │ │ ├── qa.svg │ │ │ │ │ ├── re.svg │ │ │ │ │ ├── ro.svg │ │ │ │ │ ├── rs.svg │ │ │ │ │ ├── ru.svg │ │ │ │ │ ├── rw.svg │ │ │ │ │ ├── sa.svg │ │ │ │ │ ├── sb.svg │ │ │ │ │ ├── sc.svg │ │ │ │ │ ├── sd.svg │ │ │ │ │ ├── se.svg │ │ │ │ │ ├── sg.svg │ │ │ │ │ ├── sh.svg │ │ │ │ │ ├── si.svg │ │ │ │ │ ├── sj.svg │ │ │ │ │ ├── sk.svg │ │ │ │ │ ├── sl.svg │ │ │ │ │ ├── sm.svg │ │ │ │ │ ├── sn.svg │ │ │ │ │ ├── so.svg │ │ │ │ │ ├── sr.svg │ │ │ │ │ ├── ss.svg │ │ │ │ │ ├── st.svg │ │ │ │ │ ├── sv.svg │ │ │ │ │ ├── sx.svg │ │ │ │ │ ├── sy.svg │ │ │ │ │ ├── sz.svg │ │ │ │ │ ├── tc.svg │ │ │ │ │ ├── td.svg │ │ │ │ │ ├── tf.svg │ │ │ │ │ ├── tg.svg │ │ │ │ │ ├── th.svg │ │ │ │ │ ├── tj.svg │ │ │ │ │ ├── tk.svg │ │ │ │ │ ├── tl.svg │ │ │ │ │ ├── tm.svg │ │ │ │ │ ├── tn.svg │ │ │ │ │ ├── to.svg │ │ │ │ │ ├── tr.svg │ │ │ │ │ ├── tt.svg │ │ │ │ │ ├── tv.svg │ │ │ │ │ ├── tw.svg │ │ │ │ │ ├── tz.svg │ │ │ │ │ ├── ua.svg │ │ │ │ │ ├── ug.svg │ │ │ │ │ ├── um.svg │ │ │ │ │ ├── un.svg │ │ │ │ │ ├── us.svg │ │ │ │ │ ├── uy.svg │ │ │ │ │ ├── uz.svg │ │ │ │ │ ├── va.svg │ │ │ │ │ ├── vc.svg │ │ │ │ │ ├── ve.svg │ │ │ │ │ ├── vg.svg │ │ │ │ │ ├── vi.svg │ │ │ │ │ ├── vn.svg │ │ │ │ │ ├── vu.svg │ │ │ │ │ ├── wf.svg │ │ │ │ │ ├── ws.svg │ │ │ │ │ ├── ye.svg │ │ │ │ │ ├── yt.svg │ │ │ │ │ ├── za.svg │ │ │ │ │ ├── zm.svg │ │ │ │ │ └── zw.svg │ │ │ ├── index.html │ │ │ ├── less │ │ │ │ ├── flag-icon-base.less │ │ │ │ ├── flag-icon-list.less │ │ │ │ ├── flag-icon-more.less │ │ │ │ ├── flag-icon.less │ │ │ │ └── variables.less │ │ │ ├── package.json │ │ │ ├── sass │ │ │ │ ├── _flag-icon-base.scss │ │ │ │ ├── _flag-icon-list.scss │ │ │ │ ├── _flag-icon-more.scss │ │ │ │ ├── _variables.scss │ │ │ │ └── flag-icon.scss │ │ │ ├── svgo.yaml │ │ │ └── yarn.lock │ │ ├── font-awesome │ │ │ ├── .npmignore │ │ │ ├── HELP-US-OUT.txt │ │ │ ├── README.md │ │ │ ├── css │ │ │ │ ├── font-awesome.css │ │ │ │ ├── font-awesome.css.map │ │ │ │ └── font-awesome.min.css │ │ │ ├── fonts │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ ├── less │ │ │ │ ├── animated.less │ │ │ │ ├── bordered-pulled.less │ │ │ │ ├── core.less │ │ │ │ ├── fixed-width.less │ │ │ │ ├── font-awesome.less │ │ │ │ ├── icons.less │ │ │ │ ├── larger.less │ │ │ │ ├── list.less │ │ │ │ ├── mixins.less │ │ │ │ ├── path.less │ │ │ │ ├── rotated-flipped.less │ │ │ │ ├── screen-reader.less │ │ │ │ ├── stacked.less │ │ │ │ └── variables.less │ │ │ ├── package.json │ │ │ └── scss │ │ │ │ ├── _animated.scss │ │ │ │ ├── _bordered-pulled.scss │ │ │ │ ├── _core.scss │ │ │ │ ├── _fixed-width.scss │ │ │ │ ├── _icons.scss │ │ │ │ ├── _larger.scss │ │ │ │ ├── _list.scss │ │ │ │ ├── _mixins.scss │ │ │ │ ├── _path.scss │ │ │ │ ├── _rotated-flipped.scss │ │ │ │ ├── _screen-reader.scss │ │ │ │ ├── _stacked.scss │ │ │ │ ├── _variables.scss │ │ │ │ └── font-awesome.scss │ │ ├── simple-line-icons │ │ │ ├── .npmignore │ │ │ ├── CODE_OF_CONDUCT.md │ │ │ ├── CONTRIBUTING.md │ │ │ ├── History.md │ │ │ ├── LICENSE.md │ │ │ ├── README.md │ │ │ ├── bower.json │ │ │ ├── css │ │ │ │ └── simple-line-icons.css │ │ │ ├── fonts │ │ │ │ ├── Simple-Line-Icons.eot │ │ │ │ ├── Simple-Line-Icons.svg │ │ │ │ ├── Simple-Line-Icons.ttf │ │ │ │ ├── Simple-Line-Icons.woff │ │ │ │ └── Simple-Line-Icons.woff2 │ │ │ ├── less │ │ │ │ └── simple-line-icons.less │ │ │ ├── package.json │ │ │ └── scss │ │ │ │ └── simple-line-icons.scss │ │ ├── style.css │ │ ├── style.css.map │ │ ├── style.min.css │ │ └── style.min.css.map │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── entypo.eot │ │ ├── entypo.svg │ │ ├── entypo.ttf │ │ ├── entypo.woff │ │ ├── et-line.eot │ │ ├── et-line.svg │ │ ├── et-line.ttf │ │ ├── et-line.woff │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ ├── fontawesome-webfont.woff2 │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ ├── glyphicons-halflings-regular.woff2 │ │ ├── ionicons.eot │ │ ├── ionicons.svg │ │ ├── ionicons.ttf │ │ └── ionicons.woff │ ├── images │ │ ├── .directory │ │ ├── brand │ │ │ ├── logo.svg │ │ │ └── sygnet.svg │ │ ├── favicon.ico │ │ ├── favicon.png │ │ ├── logo-symbol.png │ │ ├── logo.png │ │ └── screenshot.png │ └── js │ │ ├── @coreui │ │ ├── coreui │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── dist │ │ │ │ ├── css │ │ │ │ │ ├── bootstrap.css │ │ │ │ │ ├── bootstrap.css.map │ │ │ │ │ ├── bootstrap.min.css │ │ │ │ │ ├── bootstrap.min.css.map │ │ │ │ │ ├── coreui-standalone.css │ │ │ │ │ ├── coreui-standalone.css.map │ │ │ │ │ ├── coreui-standalone.min.css │ │ │ │ │ ├── coreui-standalone.min.css.map │ │ │ │ │ ├── coreui.css │ │ │ │ │ ├── coreui.css.map │ │ │ │ │ ├── coreui.min.css │ │ │ │ │ └── coreui.min.css.map │ │ │ │ └── js │ │ │ │ │ ├── coreui.js │ │ │ │ │ ├── coreui.js.map │ │ │ │ │ ├── coreui.min.js │ │ │ │ │ └── coreui.min.js.map │ │ │ ├── js │ │ │ │ └── src │ │ │ │ │ ├── ajax-load.js │ │ │ │ │ ├── aside-menu.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── sidebar.js │ │ │ │ │ ├── toggle-classes.js │ │ │ │ │ └── utilities │ │ │ │ │ ├── get-style.js │ │ │ │ │ ├── hex-to-rgb.js │ │ │ │ │ ├── hex-to-rgba.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── rgb-to-hex.js │ │ │ ├── package.json │ │ │ └── scss │ │ │ │ ├── _animate.scss │ │ │ │ ├── _aside.scss │ │ │ │ ├── _avatars.scss │ │ │ │ ├── _badge.scss │ │ │ │ ├── _bootstrap-variables.scss │ │ │ │ ├── _brand-card.scss │ │ │ │ ├── _brands-buttons.scss │ │ │ │ ├── _breadcrumb-menu.scss │ │ │ │ ├── _breadcrumb.scss │ │ │ │ ├── _buttons.scss │ │ │ │ ├── _callout.scss │ │ │ │ ├── _card.scss │ │ │ │ ├── _charts.scss │ │ │ │ ├── _deprecated.scss │ │ │ │ ├── _dropdown-menu-right.scss │ │ │ │ ├── _dropdown.scss │ │ │ │ ├── _footer.scss │ │ │ │ ├── _grid.scss │ │ │ │ ├── _input-group.scss │ │ │ │ ├── _layout.scss │ │ │ │ ├── _list-group.scss │ │ │ │ ├── _loading.scss │ │ │ │ ├── _mixins.scss │ │ │ │ ├── _modal.scss │ │ │ │ ├── _nav.scss │ │ │ │ ├── _navbar.scss │ │ │ │ ├── _others.scss │ │ │ │ ├── _progress-group.scss │ │ │ │ ├── _progress.scss │ │ │ │ ├── _rtl.scss │ │ │ │ ├── _sidebar.scss │ │ │ │ ├── _switches.scss │ │ │ │ ├── _tables.scss │ │ │ │ ├── _utilities.scss │ │ │ │ ├── _variables.scss │ │ │ │ ├── _vendors.scss │ │ │ │ ├── _widgets.scss │ │ │ │ ├── bootstrap.scss │ │ │ │ ├── coreui-standalone.scss │ │ │ │ ├── coreui.scss │ │ │ │ ├── mixins │ │ │ │ ├── _avatar.scss │ │ │ │ ├── _borders.scss │ │ │ │ ├── _buttons.scss │ │ │ │ ├── _card-accent.scss │ │ │ │ ├── _list-group.scss │ │ │ │ └── _sidebar-width.scss │ │ │ │ ├── utilities │ │ │ │ ├── _background.scss │ │ │ │ ├── _borders.scss │ │ │ │ ├── _display.scss │ │ │ │ └── _typography.scss │ │ │ │ └── vendors │ │ │ │ └── _perfect-scrollbar.scss │ │ └── plugin-chartjs-custom-tooltips │ │ │ ├── js │ │ │ └── custom-tooltips.js │ │ │ └── package.json │ │ ├── bootstrap │ │ └── bootstrap.js │ │ ├── charts.js │ │ ├── charts.js.map │ │ ├── colors.js │ │ ├── colors.js.map │ │ ├── coreui │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ │ ├── css │ │ │ │ ├── bootstrap.css │ │ │ │ ├── bootstrap.css.map │ │ │ │ ├── bootstrap.min.css │ │ │ │ ├── bootstrap.min.css.map │ │ │ │ ├── coreui-standalone.css │ │ │ │ ├── coreui-standalone.css.map │ │ │ │ ├── coreui-standalone.min.css │ │ │ │ ├── coreui-standalone.min.css.map │ │ │ │ ├── coreui.css │ │ │ │ ├── coreui.css.map │ │ │ │ ├── coreui.min.css │ │ │ │ └── coreui.min.css.map │ │ │ └── js │ │ │ │ ├── coreui.js │ │ │ │ ├── coreui.js.map │ │ │ │ ├── coreui.min.js │ │ │ │ └── coreui.min.js.map │ │ ├── js │ │ │ └── src │ │ │ │ ├── ajax-load.js │ │ │ │ ├── aside-menu.js │ │ │ │ ├── index.js │ │ │ │ ├── sidebar.js │ │ │ │ ├── toggle-classes.js │ │ │ │ └── utilities │ │ │ │ ├── get-style.js │ │ │ │ ├── hex-to-rgb.js │ │ │ │ ├── hex-to-rgba.js │ │ │ │ ├── index.js │ │ │ │ └── rgb-to-hex.js │ │ ├── package.json │ │ └── scss │ │ │ ├── _animate.scss │ │ │ ├── _aside.scss │ │ │ ├── _avatars.scss │ │ │ ├── _badge.scss │ │ │ ├── _bootstrap-variables.scss │ │ │ ├── _brand-card.scss │ │ │ ├── _brands-buttons.scss │ │ │ ├── _breadcrumb-menu.scss │ │ │ ├── _breadcrumb.scss │ │ │ ├── _buttons.scss │ │ │ ├── _callout.scss │ │ │ ├── _card.scss │ │ │ ├── _charts.scss │ │ │ ├── _deprecated.scss │ │ │ ├── _dropdown-menu-right.scss │ │ │ ├── _dropdown.scss │ │ │ ├── _footer.scss │ │ │ ├── _grid.scss │ │ │ ├── _input-group.scss │ │ │ ├── _layout.scss │ │ │ ├── _list-group.scss │ │ │ ├── _loading.scss │ │ │ ├── _mixins.scss │ │ │ ├── _modal.scss │ │ │ ├── _nav.scss │ │ │ ├── _navbar.scss │ │ │ ├── _others.scss │ │ │ ├── _progress-group.scss │ │ │ ├── _progress.scss │ │ │ ├── _rtl.scss │ │ │ ├── _sidebar.scss │ │ │ ├── _switches.scss │ │ │ ├── _tables.scss │ │ │ ├── _utilities.scss │ │ │ ├── _variables.scss │ │ │ ├── _vendors.scss │ │ │ ├── _widgets.scss │ │ │ ├── bootstrap.scss │ │ │ ├── coreui-standalone.scss │ │ │ ├── coreui.scss │ │ │ ├── mixins │ │ │ ├── _avatar.scss │ │ │ ├── _borders.scss │ │ │ ├── _buttons.scss │ │ │ ├── _card-accent.scss │ │ │ ├── _list-group.scss │ │ │ └── _sidebar-width.scss │ │ │ ├── utilities │ │ │ ├── _background.scss │ │ │ ├── _borders.scss │ │ │ ├── _display.scss │ │ │ └── _typography.scss │ │ │ └── vendors │ │ │ └── _perfect-scrollbar.scss │ │ ├── export-data.js │ │ ├── export-data.js.map │ │ ├── exporting.js │ │ ├── exporting.js.map │ │ ├── highcharts.js │ │ ├── highcharts.js.map │ │ ├── jquery-3.6.4.min.js │ │ ├── main.js │ │ ├── main.js.map │ │ ├── pace-progress │ │ ├── .hsdoc │ │ ├── .npmignore │ │ ├── Gruntfile.coffee │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── docs │ │ │ ├── intro.md │ │ │ ├── resources │ │ │ │ ├── barber-pole-orange.css │ │ │ │ ├── flash-white.css │ │ │ │ └── templates │ │ │ │ │ ├── index.jade │ │ │ │ │ └── page.jade │ │ │ └── welcome │ │ │ │ └── index.html │ │ ├── install.json │ │ ├── pace.coffee │ │ ├── pace.js │ │ ├── pace.min.js │ │ ├── package.json │ │ ├── templates │ │ │ ├── pace-theme-barber-shop.tmpl.css │ │ │ ├── pace-theme-big-counter.tmpl.css │ │ │ ├── pace-theme-bounce.tmpl.css │ │ │ ├── pace-theme-center-atom.tmpl.css │ │ │ ├── pace-theme-center-circle.tmpl.css │ │ │ ├── pace-theme-center-radar.tmpl.css │ │ │ ├── pace-theme-center-simple.tmpl.css │ │ │ ├── pace-theme-corner-indicator.tmpl.css │ │ │ ├── pace-theme-fill-left.tmpl.css │ │ │ ├── pace-theme-flash.tmpl.css │ │ │ ├── pace-theme-flat-top.tmpl.css │ │ │ ├── pace-theme-loading-bar.tmpl.css │ │ │ ├── pace-theme-mac-osx.tmpl.css │ │ │ └── pace-theme-minimal.tmpl.css │ │ ├── tests │ │ │ └── demo.html │ │ └── themes │ │ │ ├── black │ │ │ ├── pace-theme-barber-shop.css │ │ │ ├── pace-theme-big-counter.css │ │ │ ├── pace-theme-bounce.css │ │ │ ├── pace-theme-center-atom.css │ │ │ ├── pace-theme-center-circle.css │ │ │ ├── pace-theme-center-radar.css │ │ │ ├── pace-theme-center-simple.css │ │ │ ├── pace-theme-corner-indicator.css │ │ │ ├── pace-theme-fill-left.css │ │ │ ├── pace-theme-flash.css │ │ │ ├── pace-theme-flat-top.css │ │ │ ├── pace-theme-loading-bar.css │ │ │ ├── pace-theme-mac-osx.css │ │ │ └── pace-theme-minimal.css │ │ │ ├── blue │ │ │ ├── pace-theme-barber-shop.css │ │ │ ├── pace-theme-big-counter.css │ │ │ ├── pace-theme-bounce.css │ │ │ ├── pace-theme-center-atom.css │ │ │ ├── pace-theme-center-circle.css │ │ │ ├── pace-theme-center-radar.css │ │ │ ├── pace-theme-center-simple.css │ │ │ ├── pace-theme-corner-indicator.css │ │ │ ├── pace-theme-fill-left.css │ │ │ ├── pace-theme-flash.css │ │ │ ├── pace-theme-flat-top.css │ │ │ ├── pace-theme-loading-bar.css │ │ │ ├── pace-theme-mac-osx.css │ │ │ └── pace-theme-minimal.css │ │ │ ├── green │ │ │ ├── pace-theme-barber-shop.css │ │ │ ├── pace-theme-big-counter.css │ │ │ ├── pace-theme-bounce.css │ │ │ ├── pace-theme-center-atom.css │ │ │ ├── pace-theme-center-circle.css │ │ │ ├── pace-theme-center-radar.css │ │ │ ├── pace-theme-center-simple.css │ │ │ ├── pace-theme-corner-indicator.css │ │ │ ├── pace-theme-fill-left.css │ │ │ ├── pace-theme-flash.css │ │ │ ├── pace-theme-flat-top.css │ │ │ ├── pace-theme-loading-bar.css │ │ │ ├── pace-theme-mac-osx.css │ │ │ └── pace-theme-minimal.css │ │ │ ├── orange │ │ │ ├── pace-theme-barber-shop.css │ │ │ ├── pace-theme-big-counter.css │ │ │ ├── pace-theme-bounce.css │ │ │ ├── pace-theme-center-atom.css │ │ │ ├── pace-theme-center-circle.css │ │ │ ├── pace-theme-center-radar.css │ │ │ ├── pace-theme-center-simple.css │ │ │ ├── pace-theme-corner-indicator.css │ │ │ ├── pace-theme-fill-left.css │ │ │ ├── pace-theme-flash.css │ │ │ ├── pace-theme-flat-top.css │ │ │ ├── pace-theme-loading-bar.css │ │ │ ├── pace-theme-mac-osx.css │ │ │ └── pace-theme-minimal.css │ │ │ ├── pink │ │ │ ├── pace-theme-barber-shop.css │ │ │ ├── pace-theme-big-counter.css │ │ │ ├── pace-theme-bounce.css │ │ │ ├── pace-theme-center-atom.css │ │ │ ├── pace-theme-center-circle.css │ │ │ ├── pace-theme-center-radar.css │ │ │ ├── pace-theme-center-simple.css │ │ │ ├── pace-theme-corner-indicator.css │ │ │ ├── pace-theme-fill-left.css │ │ │ ├── pace-theme-flash.css │ │ │ ├── pace-theme-flat-top.css │ │ │ ├── pace-theme-loading-bar.css │ │ │ ├── pace-theme-mac-osx.css │ │ │ └── pace-theme-minimal.css │ │ │ ├── purple │ │ │ ├── pace-theme-barber-shop.css │ │ │ ├── pace-theme-big-counter.css │ │ │ ├── pace-theme-bounce.css │ │ │ ├── pace-theme-center-atom.css │ │ │ ├── pace-theme-center-circle.css │ │ │ ├── pace-theme-center-radar.css │ │ │ ├── pace-theme-center-simple.css │ │ │ ├── pace-theme-corner-indicator.css │ │ │ ├── pace-theme-fill-left.css │ │ │ ├── pace-theme-flash.css │ │ │ ├── pace-theme-flat-top.css │ │ │ ├── pace-theme-loading-bar.css │ │ │ ├── pace-theme-mac-osx.css │ │ │ └── pace-theme-minimal.css │ │ │ ├── red │ │ │ ├── pace-theme-barber-shop.css │ │ │ ├── pace-theme-big-counter.css │ │ │ ├── pace-theme-bounce.css │ │ │ ├── pace-theme-center-atom.css │ │ │ ├── pace-theme-center-circle.css │ │ │ ├── pace-theme-center-radar.css │ │ │ ├── pace-theme-center-simple.css │ │ │ ├── pace-theme-corner-indicator.css │ │ │ ├── pace-theme-fill-left.css │ │ │ ├── pace-theme-flash.css │ │ │ ├── pace-theme-flat-top.css │ │ │ ├── pace-theme-loading-bar.css │ │ │ ├── pace-theme-mac-osx.css │ │ │ └── pace-theme-minimal.css │ │ │ ├── silver │ │ │ ├── pace-theme-barber-shop.css │ │ │ ├── pace-theme-big-counter.css │ │ │ ├── pace-theme-bounce.css │ │ │ ├── pace-theme-center-atom.css │ │ │ ├── pace-theme-center-circle.css │ │ │ ├── pace-theme-center-radar.css │ │ │ ├── pace-theme-center-simple.css │ │ │ ├── pace-theme-corner-indicator.css │ │ │ ├── pace-theme-fill-left.css │ │ │ ├── pace-theme-flash.css │ │ │ ├── pace-theme-flat-top.css │ │ │ ├── pace-theme-loading-bar.css │ │ │ ├── pace-theme-mac-osx.css │ │ │ └── pace-theme-minimal.css │ │ │ ├── white │ │ │ ├── pace-theme-barber-shop.css │ │ │ ├── pace-theme-big-counter.css │ │ │ ├── pace-theme-bounce.css │ │ │ ├── pace-theme-center-atom.css │ │ │ ├── pace-theme-center-circle.css │ │ │ ├── pace-theme-center-radar.css │ │ │ ├── pace-theme-center-simple.css │ │ │ ├── pace-theme-corner-indicator.css │ │ │ ├── pace-theme-fill-left.css │ │ │ ├── pace-theme-flash.css │ │ │ ├── pace-theme-flat-top.css │ │ │ ├── pace-theme-loading-bar.css │ │ │ ├── pace-theme-mac-osx.css │ │ │ └── pace-theme-minimal.css │ │ │ └── yellow │ │ │ ├── pace-theme-barber-shop.css │ │ │ ├── pace-theme-big-counter.css │ │ │ ├── pace-theme-bounce.css │ │ │ ├── pace-theme-center-atom.css │ │ │ ├── pace-theme-center-circle.css │ │ │ ├── pace-theme-center-radar.css │ │ │ ├── pace-theme-center-simple.css │ │ │ ├── pace-theme-corner-indicator.css │ │ │ ├── pace-theme-fill-left.css │ │ │ ├── pace-theme-flash.css │ │ │ ├── pace-theme-flat-top.css │ │ │ ├── pace-theme-loading-bar.css │ │ │ ├── pace-theme-mac-osx.css │ │ │ └── pace-theme-minimal.css │ │ ├── perfect-scrollbar │ │ ├── LICENSE │ │ ├── README.md │ │ ├── css │ │ │ └── perfect-scrollbar.css │ │ ├── dist │ │ │ ├── perfect-scrollbar.common.js │ │ │ ├── perfect-scrollbar.esm.js │ │ │ ├── perfect-scrollbar.js │ │ │ └── perfect-scrollbar.min.js │ │ ├── package.json │ │ ├── src │ │ │ ├── handlers │ │ │ │ ├── click-rail.js │ │ │ │ ├── drag-thumb.js │ │ │ │ ├── keyboard.js │ │ │ │ ├── mouse-wheel.js │ │ │ │ └── touch.js │ │ │ ├── index.js │ │ │ ├── process-scroll-diff.js │ │ │ └── update-geometry.js │ │ └── types │ │ │ └── perfect-scrollbar.d.ts │ │ ├── popovers.js │ │ ├── popovers.js.map │ │ ├── popper.js │ │ ├── .eslintignore │ │ ├── .eslintrc.js │ │ ├── README.md │ │ ├── dist │ │ │ ├── esm │ │ │ │ ├── popper-utils.js │ │ │ │ ├── popper-utils.js.map │ │ │ │ ├── popper-utils.min.js │ │ │ │ ├── popper-utils.min.js.map │ │ │ │ ├── popper.js │ │ │ │ ├── popper.js.map │ │ │ │ ├── popper.min.js │ │ │ │ └── popper.min.js.map │ │ │ ├── popper-utils.js │ │ │ ├── popper-utils.js.map │ │ │ ├── popper-utils.min.js │ │ │ ├── popper-utils.min.js.map │ │ │ ├── popper.js │ │ │ ├── popper.js.map │ │ │ ├── popper.min.js │ │ │ ├── popper.min.js.map │ │ │ └── umd │ │ │ │ ├── popper-utils.js │ │ │ │ ├── popper-utils.js.map │ │ │ │ ├── popper-utils.min.js │ │ │ │ ├── popper-utils.min.js.map │ │ │ │ ├── popper.js │ │ │ │ ├── popper.js.map │ │ │ │ ├── popper.min.js │ │ │ │ └── popper.min.js.map │ │ ├── index.d.ts │ │ └── package.json │ │ ├── popper.min.js │ │ ├── tooltips.js │ │ ├── tooltips.js.map │ │ ├── widgets.js │ │ └── widgets.js.map └── templates │ ├── README.md │ ├── common │ ├── dark_base.html │ ├── form_macros.html │ └── page_base.html │ ├── dark_layout.html │ ├── flask_user │ ├── change_password.html │ ├── flask_user_base.html │ ├── forgot_password.html │ ├── login.html │ ├── member_base.html │ ├── public_base.html │ └── register.html │ ├── layout.html │ └── views │ ├── admin │ ├── edit_user.html │ ├── manage_user_roles.html │ └── users.html │ ├── controller1 │ ├── member_base.html │ └── user_profile_page.html │ └── controller2 │ └── example.html ├── fabfile.py ├── manage.py ├── requirements.txt ├── runserver.sh ├── tests ├── .coveragerc ├── README.md ├── __init__.py ├── conftest.py └── test_page_urls.py ├── tox.ini └── unicorn.py /app/README.md: -------------------------------------------------------------------------------- 1 | # app directory 2 | 3 | This directory contains the Flask application code. 4 | 5 | The code has been organized into the following sub-directories: 6 | 7 | # Sub-directories 8 | commands # Commands made available to manage.py 9 | models # Database Models and their Forms 10 | static # Static asset files that will be mapped to the "/static/" URL 11 | templates # Jinja2 HTML template files 12 | views # View functions 13 | 14 | -------------------------------------------------------------------------------- /app/commands/__init__.py: -------------------------------------------------------------------------------- 1 | # __init__.py is a special Python file that allows a directory to become 2 | # a Python package so it can be accessed using the 'import' statement. 3 | 4 | from .init_db import InitDbCommand -------------------------------------------------------------------------------- /app/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | # __init__.py is a special Python file that allows a directory to become 2 | # a Python package so it can be accessed using the 'import' statement. 3 | -------------------------------------------------------------------------------- /app/controllers/apis.py: -------------------------------------------------------------------------------- 1 | # Copyright 2018 Twin Tech Labs. All rights reserved 2 | 3 | from flask import Blueprint, redirect, render_template 4 | from flask import request, url_for, flash, send_from_directory, jsonify, render_template_string 5 | from flask_user import current_user, login_required, roles_accepted 6 | 7 | from app import db 8 | from app.models.user_models import UserProfileForm 9 | import uuid, json, os 10 | import datetime 11 | 12 | # When using a Flask app factory we must use a blueprint to avoid needing 'app' for '@app.route' 13 | api_blueprint = Blueprint('api', __name__, template_folder='templates') 14 | 15 | @api_blueprint.route('/sample_api_request', methods=['GET']) 16 | def sample_page(): 17 | 18 | ret = {"sample return": 10} 19 | return(jsonify(ret), 200) 20 | -------------------------------------------------------------------------------- /app/controllers/controller2.py: -------------------------------------------------------------------------------- 1 | # Copyright 2020 Twin Tech Labs. All rights reserved 2 | 3 | from flask import Blueprint, redirect, render_template 4 | from flask import request, url_for, flash, send_from_directory, jsonify, render_template_string 5 | from flask_user import current_user, login_required, roles_accepted 6 | 7 | from app import db 8 | from app.models.user_models import UserProfileForm 9 | import uuid, json, os 10 | import datetime 11 | 12 | # When using a Flask app factory we must use a blueprint to avoid needing 'app' for '@app.route' 13 | controller2_blueprint = Blueprint('controller2', __name__, template_folder='templates') 14 | 15 | @controller2_blueprint.route('/example', methods=['GET']) 16 | def sample_page(): 17 | 18 | return render_template('views/controller2/example.html') 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/models/__init__.py: -------------------------------------------------------------------------------- 1 | # __init__.py is a special Python file that allows a directory to become 2 | # a Python package so it can be accessed using the 'import' statement. 3 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | indent_style = space 7 | indent_size = 2 8 | end_of_line = lf 9 | charset = utf-8 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/assets/docs.js: -------------------------------------------------------------------------------- 1 | window.onload = function () { 2 | $('.all-flags .flag-icon-background').click(function(event){ 3 | var flag = $(event.currentTarget).attr('title'); 4 | var w = 640; 5 | var h = 480; 6 | var left = (screen.width / 2) - (w / 2); 7 | var top = (screen.height / 2) - (h / 2); 8 | 9 | if (flag) { 10 | window.open('flags/4x3/' + flag + '.svg', 'flag-4x3', 'width=' + w + ', height=' + h + ', top=' + top + ', left=' + left); 11 | } 12 | }); 13 | } 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "flag-icon-css", 3 | "main": [ 4 | "css/flag-icon.min.css", 5 | "less/flag-icon.less", 6 | "sass/_flag-icon.scss" 7 | ], 8 | "ignore": [ 9 | "**/.*", 10 | "assets", 11 | "Gruntfile.coffee", 12 | "index.html", 13 | "LICENSE", 14 | "package.json" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "components/flag-icon-css", 3 | "type": "component", 4 | "description": "CSS for vector based country flags", 5 | "license": "MIT", 6 | "authors":[ 7 | { 8 | "name": "Panayiotis Lipiridis (Lipis)", 9 | "email": "lipiridis@gmail.com" 10 | } 11 | ], 12 | "extra":{ 13 | "component":{ 14 | "name": "flag-icon-css", 15 | "files":[ 16 | "less/**", 17 | "css/**", 18 | "flags/**" 19 | ] 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ae.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/am.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/at.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ax.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/az.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/bb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/bd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/be.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/bf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/bg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/bh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/bj.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/bl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/bq.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/bs.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/bv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/bw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/cd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/cf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/cg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ci.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/cl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/cn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/co.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/cr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/cu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/cw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/cz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/de.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/dj.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/dk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/dz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ee.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/es-ct.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/fi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/fo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/fr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ga.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/gb-eng.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/gb-sct.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/gf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/gg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/gh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/gl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/gm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/gn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/gp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/gy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/hu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/id.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ie.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/is.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/it.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/jm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/jo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/jp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/kw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/la.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/lc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/lt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/lu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/lv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ly.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ma.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/mc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/mf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/mg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/mk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ml.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/mq.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/mr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/mu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/mv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/nc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ne.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ng.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/nl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/no.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/pl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/pm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/pr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ps.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/pw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/qa.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/re.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ro.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ru.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/sc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/sd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/sj.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/sl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/sn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/so.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/sr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ss.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/sy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/td.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/th.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/tk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/tl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/to.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/tr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/tt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/tz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ua.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/vc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/vn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/wf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/ye.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/1x1/yt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ae.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/am.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/at.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ax.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/az.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/bb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/bd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/be.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/bf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/bg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/bh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/bj.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/bl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/bq.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/bs.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/bv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/bw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/cd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/cf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/cg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ci.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/cl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/co.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/cr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/cu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/cw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/cz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/de.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/dj.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/dk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/dz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ee.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/es-ct.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/fi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/fo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/fr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ga.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/gb-eng.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/gb-sct.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/gf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/gg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/gh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/gl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/gm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/gn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/gp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/gy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/hu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/id.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ie.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/is.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/it.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/jm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/jp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/kw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/la.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/lc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/lt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/lu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/lv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ly.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ma.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/mc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/mf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/mg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/mk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ml.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/mq.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/mr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/mu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/mv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/nc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ne.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ng.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/nl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/no.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/pl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/pm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/pr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ps.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/pw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/qa.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/re.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ro.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ru.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/sc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/sd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/se.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/sj.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/sl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/sn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/so.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/sr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ss.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/sy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/td.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/th.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/tk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/tl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/to.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/tr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/tt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/tz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ua.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/vc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/vn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/wf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/ye.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/flags/4x3/yt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/less/flag-icon-base.less: -------------------------------------------------------------------------------- 1 | .flag-icon-background { 2 | background-size: contain; 3 | background-position: 50%; 4 | background-repeat: no-repeat; 5 | } 6 | 7 | .flag-icon { 8 | .flag-icon-background; 9 | position: relative; 10 | display: inline-block; 11 | width: unit((4 / 3), em); 12 | line-height: 1em; 13 | &:before { 14 | content: "\00a0"; 15 | } 16 | &.flag-icon-squared { 17 | width: 1em; 18 | } 19 | } 20 | 21 | .flag-icon(@country) { 22 | .flag-icon-@{country} { 23 | background-image: ~"url(@{flag-icon-css-path}@{flag-icon-rect-path}/@{country}.svg)"; 24 | &.flag-icon-squared { 25 | background-image: ~"url(@{flag-icon-css-path}@{flag-icon-square-path}/@{country}.svg)"; 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/less/flag-icon-more.less: -------------------------------------------------------------------------------- 1 | .flag-icon(es-ct); 2 | .flag-icon(eu); 3 | .flag-icon(gb-eng); 4 | .flag-icon(gb-nir); 5 | .flag-icon(gb-sct); 6 | .flag-icon(gb-wls); 7 | .flag-icon(un); 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/less/flag-icon.less: -------------------------------------------------------------------------------- 1 | @import 'variables'; 2 | @import 'flag-icon-base'; 3 | @import 'flag-icon-list'; 4 | @import 'flag-icon-more'; 5 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/less/variables.less: -------------------------------------------------------------------------------- 1 | @flag-icon-css-path: '../flags'; 2 | @flag-icon-rect-path: '/4x3'; 3 | @flag-icon-square-path: '/1x1'; 4 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/sass/_flag-icon-base.scss: -------------------------------------------------------------------------------- 1 | .flag-icon-background { 2 | background-size: contain; 3 | background-position: 50%; 4 | background-repeat: no-repeat; 5 | } 6 | 7 | .flag-icon { 8 | @extend .flag-icon-background; 9 | position: relative; 10 | display: inline-block; 11 | width: (4 / 3) * 1em; 12 | line-height: 1em; 13 | &:before { 14 | content: '\00a0'; 15 | } 16 | &.flag-icon-squared { 17 | width: 1em; 18 | } 19 | } 20 | 21 | @mixin flag-icon($country) { 22 | .flag-icon-#{$country} { 23 | background-image: url(#{$flag-icon-css-path}#{$flag-icon-rect-path}/#{$country}.svg); 24 | &.flag-icon-squared { 25 | background-image: url(#{$flag-icon-css-path}#{$flag-icon-square-path}/#{$country}.svg); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/sass/_flag-icon-more.scss: -------------------------------------------------------------------------------- 1 | @include flag-icon(es-ct); 2 | @include flag-icon(eu); 3 | @include flag-icon(gb-eng); 4 | @include flag-icon(gb-nir); 5 | @include flag-icon(gb-sct); 6 | @include flag-icon(gb-wls); 7 | @include flag-icon(un); 8 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/sass/_variables.scss: -------------------------------------------------------------------------------- 1 | $flag-icon-css-path: '../flags' !default; 2 | $flag-icon-rect-path: '/4x3' !default; 3 | $flag-icon-square-path: '/1x1' !default; 4 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/sass/flag-icon.scss: -------------------------------------------------------------------------------- 1 | @import "variables"; 2 | @import "flag-icon-base"; 3 | @import "flag-icon-list"; 4 | @import "flag-icon-more"; 5 | -------------------------------------------------------------------------------- /app/static/css/flag-icon-css/svgo.yaml: -------------------------------------------------------------------------------- 1 | plugins: 2 | - cleanupIDs: false 3 | - collapseGroups: true 4 | - removeDesc: true 5 | - removeScriptElement: true 6 | - removeStyleElement: true 7 | - removeTitle: true 8 | - removeUselessDefs: true 9 | - removeViewBox: true 10 | - sortAttrs: true 11 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/.npmignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.egg-info 3 | *.db 4 | *.db.old 5 | *.swp 6 | *.db-journal 7 | 8 | .coverage 9 | .DS_Store 10 | .installed.cfg 11 | _gh_pages/* 12 | 13 | .idea/* 14 | .svn/* 15 | src/website/static/* 16 | src/website/media/* 17 | 18 | bin 19 | cfcache 20 | develop-eggs 21 | dist 22 | downloads 23 | eggs 24 | parts 25 | tmp 26 | .sass-cache 27 | node_modules 28 | 29 | src/website/settingslocal.py 30 | stunnel.log 31 | 32 | .ruby-version 33 | 34 | # don't need these in the npm package. 35 | src/ 36 | _config.yml 37 | bower.json 38 | component.json 39 | composer.json 40 | CONTRIBUTING.md 41 | Gemfile 42 | Gemfile.lock 43 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/HELP-US-OUT.txt: -------------------------------------------------------------------------------- 1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, 2 | Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, 3 | comprehensive icon sets or copy and paste your own. 4 | 5 | Please. Check it out. 6 | 7 | -Dave Gandy 8 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/css/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /app/static/css/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/css/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /app/static/css/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/css/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /app/static/css/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/css/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /app/static/css/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/css/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /app/static/css/font-awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix} { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .@{fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "animated.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | @import "screen-reader.less"; 19 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), 9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/less/screen-reader.less: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { .sr-only(); } 5 | .sr-only-focusable { .sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .#{$fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/scss/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { @include sr-only(); } 5 | .sr-only-focusable { @include sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /app/static/css/font-awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "animated"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | @import "screen-reader"; 19 | -------------------------------------------------------------------------------- /app/static/css/simple-line-icons/.npmignore: -------------------------------------------------------------------------------- 1 | .* 2 | !.gitignore 3 | *.log 4 | *~ 5 | *# -------------------------------------------------------------------------------- /app/static/css/simple-line-icons/History.md: -------------------------------------------------------------------------------- 1 | 2.4.0 / 2016-09-18 2 | ================== 3 | 4 | * Add social-steam icon 5 | * Rename vkontakte to social-vkontakte icon 6 | 7 | 2.3.3 / 2016-09-17 8 | ================== 9 | 10 | * Add event icon, fix #57 11 | * Add vkontakte icon, fix #56 12 | 13 | 2.3.2 / 2016-06-13 14 | ================== 15 | 16 | * Add exclamation icon, fix #50 17 | * Use woff2, ttf, woff, svg order. 18 | 19 | 2.3.1 / 2016-05-04 20 | ================== 21 | 22 | * CSS, use woff before ttf 23 | * CSS, google instead of gplus 24 | * Gitignore, ignore .files 25 | * CSS, add organization, update readme 26 | * Add organization icon, fix #45 27 | -------------------------------------------------------------------------------- /app/static/css/simple-line-icons/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "simple-line-icons", 3 | "version": "2.4.1", 4 | "authors": [ 5 | "Sabbir Ahmed " 6 | ], 7 | "description": "Simple Line Icons Bower Package", 8 | "keywords": [ 9 | "fonts", 10 | "simple", 11 | "simple-line", 12 | "icon" 13 | ], 14 | "main": [ 15 | "css/simple-line-icons.css", 16 | "scss/simple-line-icons.scss", 17 | "less/simple-line-icons.less" 18 | ], 19 | "license": "MIT", 20 | "homepage": "https://github.com/thesabbir/simple-line-icons", 21 | "ignore": [ 22 | "**/.*", 23 | "node_modules", 24 | "bower_components", 25 | "test", 26 | "tests" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /app/static/css/simple-line-icons/fonts/Simple-Line-Icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/css/simple-line-icons/fonts/Simple-Line-Icons.eot -------------------------------------------------------------------------------- /app/static/css/simple-line-icons/fonts/Simple-Line-Icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/css/simple-line-icons/fonts/Simple-Line-Icons.ttf -------------------------------------------------------------------------------- /app/static/css/simple-line-icons/fonts/Simple-Line-Icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/css/simple-line-icons/fonts/Simple-Line-Icons.woff -------------------------------------------------------------------------------- /app/static/css/simple-line-icons/fonts/Simple-Line-Icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/css/simple-line-icons/fonts/Simple-Line-Icons.woff2 -------------------------------------------------------------------------------- /app/static/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /app/static/fonts/entypo.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/entypo.eot -------------------------------------------------------------------------------- /app/static/fonts/entypo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/entypo.ttf -------------------------------------------------------------------------------- /app/static/fonts/entypo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/entypo.woff -------------------------------------------------------------------------------- /app/static/fonts/et-line.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/et-line.eot -------------------------------------------------------------------------------- /app/static/fonts/et-line.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/et-line.ttf -------------------------------------------------------------------------------- /app/static/fonts/et-line.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/et-line.woff -------------------------------------------------------------------------------- /app/static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /app/static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /app/static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /app/static/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /app/static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /app/static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /app/static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /app/static/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /app/static/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/ionicons.eot -------------------------------------------------------------------------------- /app/static/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/ionicons.ttf -------------------------------------------------------------------------------- /app/static/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/fonts/ionicons.woff -------------------------------------------------------------------------------- /app/static/images/.directory: -------------------------------------------------------------------------------- 1 | [Dolphin] 2 | PreviewsShown=true 3 | Timestamp=2018,4,6,13,3,31 4 | Version=4 5 | -------------------------------------------------------------------------------- /app/static/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/images/favicon.ico -------------------------------------------------------------------------------- /app/static/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/images/favicon.png -------------------------------------------------------------------------------- /app/static/images/logo-symbol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/images/logo-symbol.png -------------------------------------------------------------------------------- /app/static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/images/logo.png -------------------------------------------------------------------------------- /app/static/images/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twintechlabs/flaskdash/175d50d1e3d72ecc7681d291fa2e8a865b004c8b/app/static/images/screenshot.png -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/js/src/utilities/get-style.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * CoreUI Utilities (v1.0.0): get-style.js 4 | * Licensed under MIT (https://coreui.io/license) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | 8 | const GetStyle = (property, element = document.body) => { 9 | const style = window.getComputedStyle(element, null).getPropertyValue(property).replace(/^\s/, '') 10 | 11 | return style 12 | } 13 | 14 | export default GetStyle 15 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/js/src/utilities/hex-to-rgb.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * CoreUI Utilities (v2.0.0-beta.2): hex-to-rgb.js 4 | * Licensed under MIT (https://coreui.io/license) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | 8 | /* eslint-disable no-magic-numbers */ 9 | const HexToRgb = (color) => { 10 | const hex = color.replace('#', '') 11 | const r = parseInt(hex.substring(0, 2), 16) 12 | const g = parseInt(hex.substring(2, 4), 16) 13 | const b = parseInt(hex.substring(4, 6), 16) 14 | 15 | const result = `rgba(${r}, ${g}, ${b}` 16 | return result 17 | } 18 | 19 | export default HexToRgb 20 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/js/src/utilities/hex-to-rgba.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * CoreUI Utilities (v2.0.0-beta.2): hex-to-rgba.js 4 | * Licensed under MIT (https://coreui.io/license) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | 8 | /* eslint-disable no-magic-numbers */ 9 | const HexToRgba = (color, opacity = 100) => { 10 | const hex = color.replace('#', '') 11 | const r = parseInt(hex.substring(0, 2), 16) 12 | const g = parseInt(hex.substring(2, 4), 16) 13 | const b = parseInt(hex.substring(4, 6), 16) 14 | 15 | const result = `rgba(${r}, ${g}, ${b}, ${opacity / 100}` 16 | return result 17 | } 18 | 19 | export default HexToRgba 20 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/js/src/utilities/index.js: -------------------------------------------------------------------------------- 1 | import GetStyle from './get-style' 2 | import HexToRgb from './hex-to-rgb' 3 | import HexToRgba from './hex-to-rgba' 4 | import RgbToHex from './rgb-to-hex' 5 | 6 | export { 7 | GetStyle, 8 | HexToRgb, 9 | HexToRgba, 10 | RgbToHex 11 | } 12 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_animate.scss: -------------------------------------------------------------------------------- 1 | // scss-lint:disable all 2 | .animated { 3 | animation-duration: 1s; 4 | // animation-fill-mode: both; 5 | } 6 | 7 | .animated.infinite { 8 | animation-iteration-count: infinite; 9 | } 10 | 11 | .animated.hinge { 12 | animation-duration: 2s; 13 | } 14 | 15 | @keyframes fadeIn { 16 | from { 17 | opacity: 0; 18 | } 19 | 20 | to { 21 | opacity: 1; 22 | } 23 | } 24 | 25 | .fadeIn { 26 | animation-name: fadeIn; 27 | } 28 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_badge.scss: -------------------------------------------------------------------------------- 1 | .badge-pill { 2 | border-radius: $badge-pill-border-radius; 3 | } 4 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_breadcrumb.scss: -------------------------------------------------------------------------------- 1 | .breadcrumb { 2 | position: relative; 3 | @include border-radius($breadcrumb-border-radius); 4 | @include borders($breadcrumb-borders); 5 | } 6 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_buttons.scss: -------------------------------------------------------------------------------- 1 | button { 2 | cursor: pointer; 3 | } 4 | 5 | .btn-transparent { 6 | color: #fff; 7 | background-color: transparent; 8 | border-color: transparent; 9 | } 10 | 11 | .btn { 12 | [class^="icon-"], 13 | [class*=" icon-"] { 14 | display: inline-block; 15 | margin-top: -2px; 16 | vertical-align: middle; 17 | } 18 | } 19 | 20 | .btn-pill { 21 | border-radius: 50em; 22 | } 23 | 24 | .btn-square { 25 | border-radius: 0; 26 | } 27 | 28 | @each $color, $value in $theme-colors { 29 | .btn-ghost-#{$color} { 30 | @include button-ghost-variant($value); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_dropdown-menu-right.scss: -------------------------------------------------------------------------------- 1 | // Temp fix for reactstrap 2 | .app-header { 3 | .navbar-nav { 4 | .dropdown-menu-right { 5 | right: auto; 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_footer.scss: -------------------------------------------------------------------------------- 1 | .app-footer { 2 | display: flex; 3 | flex-wrap: wrap; 4 | align-items: center; 5 | padding: 0 $spacer; 6 | color: $footer-color; 7 | background: $footer-bg; 8 | @include borders($footer-borders); 9 | } 10 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_grid.scss: -------------------------------------------------------------------------------- 1 | .row.row-equal { 2 | padding-right: ($grid-gutter-width / 4); 3 | padding-left: ($grid-gutter-width / 4); 4 | margin-right: ($grid-gutter-width / -2); 5 | margin-left: ($grid-gutter-width / -2); 6 | 7 | [class*="col-"] { 8 | padding-right: ($grid-gutter-width / 4); 9 | padding-left: ($grid-gutter-width / 4); 10 | } 11 | } 12 | 13 | .main .container-fluid { 14 | padding: 0 30px; 15 | } 16 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_input-group.scss: -------------------------------------------------------------------------------- 1 | .input-group-prepend, 2 | .input-group-append { 3 | white-space: nowrap; 4 | vertical-align: middle; // Match the inputs 5 | } 6 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | @import "mixins/avatar"; 2 | @import "mixins/buttons"; 3 | @import "mixins/borders"; 4 | @import "mixins/card-accent"; 5 | @import "mixins/list-group"; 6 | @import "mixins/sidebar-width"; 7 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_modal.scss: -------------------------------------------------------------------------------- 1 | @each $color, $value in $theme-colors { 2 | .modal-#{$color} { 3 | 4 | .modal-content { 5 | border-color: $value; 6 | } 7 | 8 | .modal-header { 9 | color: #fff; 10 | background-color: $value; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_others.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable selector-no-qualifying-type 2 | hr.transparent { 3 | border-top: 1px solid transparent; 4 | } 5 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_progress.scss: -------------------------------------------------------------------------------- 1 | .progress-xs { 2 | height: 4px; 3 | } 4 | 5 | .progress-sm { 6 | height: 8px; 7 | } 8 | 9 | // White progress bar 10 | .progress-white { 11 | background-color: rgba(255, 255, 255, .2); 12 | .progress-bar { 13 | background-color: #fff; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_rtl.scss: -------------------------------------------------------------------------------- 1 | // 2 | // RTL Support 3 | // 4 | *[dir="rtl"] { 5 | direction: rtl; 6 | unicode-bidi: embed; 7 | 8 | body { 9 | text-align: right; 10 | } 11 | 12 | 13 | // Dropdown 14 | .dropdown-item { 15 | text-align: right; 16 | 17 | i { 18 | margin-right: -10px; 19 | margin-left: 10px; 20 | } 21 | 22 | .badge { 23 | right: auto; 24 | left: 10px; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_tables.scss: -------------------------------------------------------------------------------- 1 | .table-outline { 2 | border: 1px solid $table-border-color; 3 | 4 | td { 5 | vertical-align: middle; 6 | } 7 | } 8 | 9 | .table-align-middle { 10 | 11 | td { 12 | vertical-align: middle; 13 | } 14 | } 15 | 16 | .table-clear { 17 | td { 18 | border: 0; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_utilities.scss: -------------------------------------------------------------------------------- 1 | @import "utilities/background"; 2 | @import "utilities/borders"; 3 | @import "utilities/display"; 4 | @import "utilities/typography"; 5 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_vendors.scss: -------------------------------------------------------------------------------- 1 | @import "vendors/perfect-scrollbar"; 2 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/_widgets.scss: -------------------------------------------------------------------------------- 1 | // ... 2 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/bootstrap.scss: -------------------------------------------------------------------------------- 1 | // Override Boostrap variables 2 | @import "bootstrap-variables"; 3 | // Import Bootstrap source files 4 | @import "node_modules/bootstrap/scss/bootstrap"; 5 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/mixins/_avatar.scss: -------------------------------------------------------------------------------- 1 | @mixin avatar($width, $status-width) { 2 | position: relative; 3 | display: inline-block; 4 | width: $width; 5 | 6 | .img-avatar { 7 | width: $width; 8 | height: $width; 9 | } 10 | 11 | .avatar-status { 12 | position: absolute; 13 | right: 0; 14 | bottom: 0; 15 | display: block; 16 | width: $status-width; 17 | height: $status-width; 18 | border: 1px solid #fff; 19 | border-radius: 50em; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/mixins/_card-accent.scss: -------------------------------------------------------------------------------- 1 | @mixin card-accent-variant($color) { 2 | border-top-color: $color; 3 | border-top-width: 2px; 4 | } 5 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/mixins/_list-group.scss: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | @mixin list-group-item-accent-variant($state, $color) { 4 | .list-group-item-accent-#{$state} { 5 | border-left: 4px solid $color; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/mixins/_sidebar-width.scss: -------------------------------------------------------------------------------- 1 | @mixin sidebar-width($borders, $width) { 2 | $sidebar-width: $width; 3 | 4 | @each $border in $borders { 5 | $direction: nth($border, 1); 6 | @if $direction == "all" { 7 | $size: map-get(map-get($borders, $direction), size); 8 | $sidebar-width: ($sidebar-width - (2 * $size)); 9 | } @else if $direction == "right" { 10 | $size: map-get(map-get($borders, $direction), size); 11 | $sidebar-width: $sidebar-width - $size; 12 | } @else if $direction == "left" { 13 | $size: map-get(map-get($borders, $direction), size); 14 | $sidebar-width: $sidebar-width - $size; 15 | } 16 | width: $sidebar-width; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/static/js/@coreui/coreui/scss/utilities/_background.scss: -------------------------------------------------------------------------------- 1 | .bg-primary, 2 | .bg-success, 3 | .bg-info, 4 | .bg-warning, 5 | .bg-danger, 6 | .bg-dark { 7 | color: #fff; 8 | } 9 | 10 | @each $color, $value in $brands-colors { 11 | @include bg-variant(".bg-#{$color}", $value); 12 | } 13 | 14 | @each $color, $value in $colors { 15 | @include bg-variant(".bg-#{$color}", $value); 16 | } 17 | 18 | @each $color, $value in $grays { 19 | @include bg-variant(".bg-gray-#{$color}", $value); 20 | } 21 | 22 | .bg-box { 23 | display: flex; 24 | align-items: center; 25 | justify-content: center; 26 | width: ($spacer * 2.5); 27 | height: ($spacer * 2.5); 28 | } 29 | -------------------------------------------------------------------------------- /app/static/js/coreui/js/src/utilities/get-style.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * CoreUI Utilities (v1.0.0): get-style.js 4 | * Licensed under MIT (https://coreui.io/license) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | 8 | const GetStyle = (property, element = document.body) => { 9 | const style = window.getComputedStyle(element, null).getPropertyValue(property).replace(/^\s/, '') 10 | 11 | return style 12 | } 13 | 14 | export default GetStyle 15 | -------------------------------------------------------------------------------- /app/static/js/coreui/js/src/utilities/hex-to-rgb.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * CoreUI Utilities (v2.0.0-beta.2): hex-to-rgb.js 4 | * Licensed under MIT (https://coreui.io/license) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | 8 | /* eslint-disable no-magic-numbers */ 9 | const HexToRgb = (color) => { 10 | const hex = color.replace('#', '') 11 | const r = parseInt(hex.substring(0, 2), 16) 12 | const g = parseInt(hex.substring(2, 4), 16) 13 | const b = parseInt(hex.substring(4, 6), 16) 14 | 15 | const result = `rgba(${r}, ${g}, ${b}` 16 | return result 17 | } 18 | 19 | export default HexToRgb 20 | -------------------------------------------------------------------------------- /app/static/js/coreui/js/src/utilities/hex-to-rgba.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * CoreUI Utilities (v2.0.0-beta.2): hex-to-rgba.js 4 | * Licensed under MIT (https://coreui.io/license) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | 8 | /* eslint-disable no-magic-numbers */ 9 | const HexToRgba = (color, opacity = 100) => { 10 | const hex = color.replace('#', '') 11 | const r = parseInt(hex.substring(0, 2), 16) 12 | const g = parseInt(hex.substring(2, 4), 16) 13 | const b = parseInt(hex.substring(4, 6), 16) 14 | 15 | const result = `rgba(${r}, ${g}, ${b}, ${opacity / 100}` 16 | return result 17 | } 18 | 19 | export default HexToRgba 20 | -------------------------------------------------------------------------------- /app/static/js/coreui/js/src/utilities/index.js: -------------------------------------------------------------------------------- 1 | import GetStyle from './get-style' 2 | import HexToRgb from './hex-to-rgb' 3 | import HexToRgba from './hex-to-rgba' 4 | import RgbToHex from './rgb-to-hex' 5 | 6 | export { 7 | GetStyle, 8 | HexToRgb, 9 | HexToRgba, 10 | RgbToHex 11 | } 12 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_animate.scss: -------------------------------------------------------------------------------- 1 | // scss-lint:disable all 2 | .animated { 3 | animation-duration: 1s; 4 | // animation-fill-mode: both; 5 | } 6 | 7 | .animated.infinite { 8 | animation-iteration-count: infinite; 9 | } 10 | 11 | .animated.hinge { 12 | animation-duration: 2s; 13 | } 14 | 15 | @keyframes fadeIn { 16 | from { 17 | opacity: 0; 18 | } 19 | 20 | to { 21 | opacity: 1; 22 | } 23 | } 24 | 25 | .fadeIn { 26 | animation-name: fadeIn; 27 | } 28 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_badge.scss: -------------------------------------------------------------------------------- 1 | .badge-pill { 2 | border-radius: $badge-pill-border-radius; 3 | } 4 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_breadcrumb-menu.scss: -------------------------------------------------------------------------------- 1 | .breadcrumb-menu { 2 | margin-left: auto; 3 | 4 | &::before { 5 | display: none; 6 | } 7 | 8 | .btn-group { 9 | vertical-align: top; 10 | } 11 | 12 | .btn { 13 | padding: 0 $input-btn-padding-x; 14 | color: $text-muted; 15 | vertical-align: top; 16 | border: 0; 17 | 18 | &:hover, 19 | &.active { 20 | color: $body-color; 21 | background: transparent; 22 | } 23 | } 24 | 25 | .open { 26 | .btn { 27 | color: $body-color; 28 | background: transparent; 29 | } 30 | } 31 | 32 | .dropdown-menu { 33 | min-width: 180px; 34 | line-height: $line-height-base; 35 | } 36 | } 37 | 38 | // Right-to-Left Support 39 | *[dir="rtl"] { 40 | .breadcrumb-menu { 41 | margin-right: auto; 42 | margin-left: initial; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_breadcrumb.scss: -------------------------------------------------------------------------------- 1 | .breadcrumb { 2 | position: relative; 3 | @include border-radius($breadcrumb-border-radius); 4 | @include borders($breadcrumb-borders); 5 | } 6 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_buttons.scss: -------------------------------------------------------------------------------- 1 | button { 2 | cursor: pointer; 3 | } 4 | 5 | .btn-transparent { 6 | color: #fff; 7 | background-color: transparent; 8 | border-color: transparent; 9 | } 10 | 11 | .btn { 12 | [class^="icon-"], 13 | [class*=" icon-"] { 14 | display: inline-block; 15 | margin-top: -2px; 16 | vertical-align: middle; 17 | } 18 | } 19 | 20 | .btn-pill { 21 | border-radius: 50em; 22 | } 23 | 24 | .btn-square { 25 | border-radius: 0; 26 | } 27 | 28 | @each $color, $value in $theme-colors { 29 | .btn-ghost-#{$color} { 30 | @include button-ghost-variant($value); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_dropdown-menu-right.scss: -------------------------------------------------------------------------------- 1 | // Temp fix for reactstrap 2 | .app-header { 3 | .navbar-nav { 4 | .dropdown-menu-right { 5 | right: auto; 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_footer.scss: -------------------------------------------------------------------------------- 1 | .app-footer { 2 | display: flex; 3 | flex-wrap: wrap; 4 | align-items: center; 5 | padding: 0 $spacer; 6 | color: $footer-color; 7 | background: $footer-bg; 8 | @include borders($footer-borders); 9 | } 10 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_grid.scss: -------------------------------------------------------------------------------- 1 | .row.row-equal { 2 | padding-right: ($grid-gutter-width / 4); 3 | padding-left: ($grid-gutter-width / 4); 4 | margin-right: ($grid-gutter-width / -2); 5 | margin-left: ($grid-gutter-width / -2); 6 | 7 | [class*="col-"] { 8 | padding-right: ($grid-gutter-width / 4); 9 | padding-left: ($grid-gutter-width / 4); 10 | } 11 | } 12 | 13 | .main .container-fluid { 14 | padding: 0 30px; 15 | } 16 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_input-group.scss: -------------------------------------------------------------------------------- 1 | .input-group-prepend, 2 | .input-group-append { 3 | white-space: nowrap; 4 | vertical-align: middle; // Match the inputs 5 | } 6 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | @import "mixins/avatar"; 2 | @import "mixins/buttons"; 3 | @import "mixins/borders"; 4 | @import "mixins/card-accent"; 5 | @import "mixins/list-group"; 6 | @import "mixins/sidebar-width"; 7 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_modal.scss: -------------------------------------------------------------------------------- 1 | @each $color, $value in $theme-colors { 2 | .modal-#{$color} { 3 | 4 | .modal-content { 5 | border-color: $value; 6 | } 7 | 8 | .modal-header { 9 | color: #fff; 10 | background-color: $value; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_others.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable selector-no-qualifying-type 2 | hr.transparent { 3 | border-top: 1px solid transparent; 4 | } 5 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_progress-group.scss: -------------------------------------------------------------------------------- 1 | .progress-group { 2 | display: flex; 3 | flex-flow: row wrap; 4 | margin-bottom: $spacer; 5 | } 6 | 7 | .progress-group-prepend { 8 | flex: 0 0 100px; 9 | align-self: center; 10 | } 11 | 12 | .progress-group-icon { 13 | margin: 0 $spacer 0 ($spacer * .25); 14 | font-size: $font-size-lg; 15 | } 16 | 17 | .progress-group-text { 18 | font-size: $font-size-sm; 19 | color: $gray-600; 20 | } 21 | 22 | .progress-group-header { 23 | display: flex; 24 | flex-basis: 100%; 25 | align-items: flex-end; 26 | margin-bottom: ($spacer * .25); 27 | } 28 | 29 | .progress-group-bars { 30 | flex-grow: 1; 31 | align-self: center; 32 | 33 | .progress:not(:last-child) { 34 | margin-bottom: 2px; 35 | } 36 | } 37 | 38 | .progress-group-header + .progress-group-bars { 39 | flex-basis: 100%; 40 | } 41 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_progress.scss: -------------------------------------------------------------------------------- 1 | .progress-xs { 2 | height: 4px; 3 | } 4 | 5 | .progress-sm { 6 | height: 8px; 7 | } 8 | 9 | // White progress bar 10 | .progress-white { 11 | background-color: rgba(255, 255, 255, .2); 12 | .progress-bar { 13 | background-color: #fff; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_rtl.scss: -------------------------------------------------------------------------------- 1 | // 2 | // RTL Support 3 | // 4 | *[dir="rtl"] { 5 | direction: rtl; 6 | unicode-bidi: embed; 7 | 8 | body { 9 | text-align: right; 10 | } 11 | 12 | 13 | // Dropdown 14 | .dropdown-item { 15 | text-align: right; 16 | 17 | i { 18 | margin-right: -10px; 19 | margin-left: 10px; 20 | } 21 | 22 | .badge { 23 | right: auto; 24 | left: 10px; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_tables.scss: -------------------------------------------------------------------------------- 1 | .table-outline { 2 | border: 1px solid $table-border-color; 3 | 4 | td { 5 | vertical-align: middle; 6 | } 7 | } 8 | 9 | .table-align-middle { 10 | 11 | td { 12 | vertical-align: middle; 13 | } 14 | } 15 | 16 | .table-clear { 17 | td { 18 | border: 0; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_utilities.scss: -------------------------------------------------------------------------------- 1 | @import "utilities/background"; 2 | @import "utilities/borders"; 3 | @import "utilities/display"; 4 | @import "utilities/typography"; 5 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_vendors.scss: -------------------------------------------------------------------------------- 1 | @import "vendors/perfect-scrollbar"; 2 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/_widgets.scss: -------------------------------------------------------------------------------- 1 | // ... 2 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/bootstrap.scss: -------------------------------------------------------------------------------- 1 | // Override Boostrap variables 2 | @import "bootstrap-variables"; 3 | // Import Bootstrap source files 4 | @import "node_modules/bootstrap/scss/bootstrap"; 5 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/mixins/_avatar.scss: -------------------------------------------------------------------------------- 1 | @mixin avatar($width, $status-width) { 2 | position: relative; 3 | display: inline-block; 4 | width: $width; 5 | 6 | .img-avatar { 7 | width: $width; 8 | height: $width; 9 | } 10 | 11 | .avatar-status { 12 | position: absolute; 13 | right: 0; 14 | bottom: 0; 15 | display: block; 16 | width: $status-width; 17 | height: $status-width; 18 | border: 1px solid #fff; 19 | border-radius: 50em; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/mixins/_card-accent.scss: -------------------------------------------------------------------------------- 1 | @mixin card-accent-variant($color) { 2 | border-top-color: $color; 3 | border-top-width: 2px; 4 | } 5 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/mixins/_list-group.scss: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | @mixin list-group-item-accent-variant($state, $color) { 4 | .list-group-item-accent-#{$state} { 5 | border-left: 4px solid $color; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/mixins/_sidebar-width.scss: -------------------------------------------------------------------------------- 1 | @mixin sidebar-width($borders, $width) { 2 | $sidebar-width: $width; 3 | 4 | @each $border in $borders { 5 | $direction: nth($border, 1); 6 | @if $direction == "all" { 7 | $size: map-get(map-get($borders, $direction), size); 8 | $sidebar-width: ($sidebar-width - (2 * $size)); 9 | } @else if $direction == "right" { 10 | $size: map-get(map-get($borders, $direction), size); 11 | $sidebar-width: $sidebar-width - $size; 12 | } @else if $direction == "left" { 13 | $size: map-get(map-get($borders, $direction), size); 14 | $sidebar-width: $sidebar-width - $size; 15 | } 16 | width: $sidebar-width; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/static/js/coreui/scss/utilities/_background.scss: -------------------------------------------------------------------------------- 1 | .bg-primary, 2 | .bg-success, 3 | .bg-info, 4 | .bg-warning, 5 | .bg-danger, 6 | .bg-dark { 7 | color: #fff; 8 | } 9 | 10 | @each $color, $value in $brands-colors { 11 | @include bg-variant(".bg-#{$color}", $value); 12 | } 13 | 14 | @each $color, $value in $colors { 15 | @include bg-variant(".bg-#{$color}", $value); 16 | } 17 | 18 | @each $color, $value in $grays { 19 | @include bg-variant(".bg-gray-#{$color}", $value); 20 | } 21 | 22 | .bg-box { 23 | display: flex; 24 | align-items: center; 25 | justify-content: center; 26 | width: ($spacer * 2.5); 27 | height: ($spacer * 2.5); 28 | } 29 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/.hsdoc: -------------------------------------------------------------------------------- 1 | title: "Pace" 2 | source: "pace.coffee" 3 | assets: "{templates/*,themes/*,docs/welcome/*,docs/lib/*,docs/resources/*.css,*.js}" 4 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PACE", 3 | "main": "pace.js", 4 | "version": "1.0.2", 5 | "homepage": "http://github.hubspot.com/pace/docs/welcome", 6 | "authors": [ 7 | "Zack Bloom ", 8 | "Adam Schwartz " 9 | ], 10 | "description": "Automatic page load progress bar", 11 | "keywords": [ 12 | "loading", 13 | "load", 14 | "pageload", 15 | "progress", 16 | "activity", 17 | "ajax", 18 | "spinner", 19 | "progress", 20 | "bar", 21 | "automatic", 22 | "client-side" 23 | ], 24 | "license": "MIT", 25 | "ignore": [ 26 | ".*", 27 | "Gruntfile.coffee", 28 | "bower_components", 29 | "docs", 30 | "node_modules", 31 | "package.json", 32 | "templates", 33 | "tests" 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/docs/resources/templates/index.jade: -------------------------------------------------------------------------------- 1 | extends index 2 | 3 | append early-head 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/docs/resources/templates/page.jade: -------------------------------------------------------------------------------- 1 | extends index 2 | 3 | append early-head 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/templates/pace-theme-fill-left.tmpl.css: -------------------------------------------------------------------------------- 1 | .pace { 2 | -webkit-pointer-events: none; 3 | pointer-events: none; 4 | -webkit-user-select: none; 5 | -moz-user-select: none; 6 | user-select: none; 7 | } 8 | 9 | .pace-inactive { 10 | display: none; 11 | } 12 | 13 | .pace .pace-progress { 14 | background-color: `Color(args.color).clearer(0.8).rgbString() || "rgba(0, 0, 0, 0.2)"`; 15 | position: fixed; 16 | z-index: -1; 17 | top: 0; 18 | right: 100%; 19 | bottom: 0; 20 | width: 100%; 21 | } 22 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/templates/pace-theme-minimal.tmpl.css: -------------------------------------------------------------------------------- 1 | .pace { 2 | -webkit-pointer-events: none; 3 | pointer-events: none; 4 | 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background: `args.color || "#29d"`; 16 | position: fixed; 17 | z-index: 2000; 18 | top: 0; 19 | right: 100%; 20 | width: 100%; 21 | height: 2px; 22 | } 23 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/black/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(0, 0, 0, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | right: 100%; 20 | bottom: 0; 21 | width: 100%; 22 | } 23 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/black/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | 6 | -webkit-user-select: none; 7 | -moz-user-select: none; 8 | user-select: none; 9 | } 10 | 11 | .pace-inactive { 12 | display: none; 13 | } 14 | 15 | .pace .pace-progress { 16 | background: #000000; 17 | position: fixed; 18 | z-index: 2000; 19 | top: 0; 20 | right: 100%; 21 | width: 100%; 22 | height: 2px; 23 | } 24 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/blue/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(34, 153, 221, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | right: 100%; 20 | bottom: 0; 21 | width: 100%; 22 | } 23 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/blue/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | 6 | -webkit-user-select: none; 7 | -moz-user-select: none; 8 | user-select: none; 9 | } 10 | 11 | .pace-inactive { 12 | display: none; 13 | } 14 | 15 | .pace .pace-progress { 16 | background: #2299dd; 17 | position: fixed; 18 | z-index: 2000; 19 | top: 0; 20 | right: 100%; 21 | width: 100%; 22 | height: 2px; 23 | } 24 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/green/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(34, 223, 128, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | right: 100%; 20 | bottom: 0; 21 | width: 100%; 22 | } 23 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/green/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | 6 | -webkit-user-select: none; 7 | -moz-user-select: none; 8 | user-select: none; 9 | } 10 | 11 | .pace-inactive { 12 | display: none; 13 | } 14 | 15 | .pace .pace-progress { 16 | background: #22df80; 17 | position: fixed; 18 | z-index: 2000; 19 | top: 0; 20 | right: 100%; 21 | width: 100%; 22 | height: 2px; 23 | } 24 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/orange/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(235, 122, 85, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | right: 100%; 20 | bottom: 0; 21 | width: 100%; 22 | } 23 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/orange/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | 6 | -webkit-user-select: none; 7 | -moz-user-select: none; 8 | user-select: none; 9 | } 10 | 11 | .pace-inactive { 12 | display: none; 13 | } 14 | 15 | .pace .pace-progress { 16 | background: #eb7a55; 17 | position: fixed; 18 | z-index: 2000; 19 | top: 0; 20 | right: 100%; 21 | width: 100%; 22 | height: 2px; 23 | } 24 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/pink/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(233, 15, 146, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | right: 100%; 20 | bottom: 0; 21 | width: 100%; 22 | } 23 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/pink/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | 6 | -webkit-user-select: none; 7 | -moz-user-select: none; 8 | user-select: none; 9 | } 10 | 11 | .pace-inactive { 12 | display: none; 13 | } 14 | 15 | .pace .pace-progress { 16 | background: #e90f92; 17 | position: fixed; 18 | z-index: 2000; 19 | top: 0; 20 | right: 100%; 21 | width: 100%; 22 | height: 2px; 23 | } 24 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/purple/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(124, 96, 224, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | right: 100%; 20 | bottom: 0; 21 | width: 100%; 22 | } 23 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/purple/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | 6 | -webkit-user-select: none; 7 | -moz-user-select: none; 8 | user-select: none; 9 | } 10 | 11 | .pace-inactive { 12 | display: none; 13 | } 14 | 15 | .pace .pace-progress { 16 | background: #7c60e0; 17 | position: fixed; 18 | z-index: 2000; 19 | top: 0; 20 | right: 100%; 21 | width: 100%; 22 | height: 2px; 23 | } 24 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/red/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(238, 49, 72, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | right: 100%; 20 | bottom: 0; 21 | width: 100%; 22 | } 23 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/red/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | 6 | -webkit-user-select: none; 7 | -moz-user-select: none; 8 | user-select: none; 9 | } 10 | 11 | .pace-inactive { 12 | display: none; 13 | } 14 | 15 | .pace .pace-progress { 16 | background: #ee3148; 17 | position: fixed; 18 | z-index: 2000; 19 | top: 0; 20 | right: 100%; 21 | width: 100%; 22 | height: 2px; 23 | } 24 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/silver/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(214, 214, 214, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | right: 100%; 20 | bottom: 0; 21 | width: 100%; 22 | } 23 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/silver/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | 6 | -webkit-user-select: none; 7 | -moz-user-select: none; 8 | user-select: none; 9 | } 10 | 11 | .pace-inactive { 12 | display: none; 13 | } 14 | 15 | .pace .pace-progress { 16 | background: #d6d6d6; 17 | position: fixed; 18 | z-index: 2000; 19 | top: 0; 20 | right: 100%; 21 | width: 100%; 22 | height: 2px; 23 | } 24 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/white/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(255, 255, 255, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | right: 100%; 20 | bottom: 0; 21 | width: 100%; 22 | } 23 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/white/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | 6 | -webkit-user-select: none; 7 | -moz-user-select: none; 8 | user-select: none; 9 | } 10 | 11 | .pace-inactive { 12 | display: none; 13 | } 14 | 15 | .pace .pace-progress { 16 | background: #ffffff; 17 | position: fixed; 18 | z-index: 2000; 19 | top: 0; 20 | right: 100%; 21 | width: 100%; 22 | height: 2px; 23 | } 24 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/yellow/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(252, 210, 90, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | right: 100%; 20 | bottom: 0; 21 | width: 100%; 22 | } 23 | -------------------------------------------------------------------------------- /app/static/js/pace-progress/themes/yellow/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | 6 | -webkit-user-select: none; 7 | -moz-user-select: none; 8 | user-select: none; 9 | } 10 | 11 | .pace-inactive { 12 | display: none; 13 | } 14 | 15 | .pace .pace-progress { 16 | background: #fcd25a; 17 | position: fixed; 18 | z-index: 2000; 19 | top: 0; 20 | right: 100%; 21 | width: 100%; 22 | height: 2px; 23 | } 24 | -------------------------------------------------------------------------------- /app/static/js/popovers.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * CoreUI Free Boostrap Admin Template (v2.0.0-beta.1): popovers.js 4 | * Licensed under MIT (https://coreui.io/license) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | var PopoversView = function ($) { 8 | $('[data-toggle="popover"]').popover(); 9 | $('.popover-dismiss').popover({ 10 | trigger: 'focus' 11 | }); 12 | return PopoversView; 13 | }($); 14 | //# sourceMappingURL=popovers.js.map -------------------------------------------------------------------------------- /app/static/js/popovers.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["src/popovers.js"],"names":["PopoversView","$","popover","trigger"],"mappings":"AAEA;;;;;;AAOA,IAAMA,eAAgB,UAACC,CAAD,EAAO;AAC3BA,IAAE,yBAAF,EAA6BC,OAA7B;AACAD,IAAE,kBAAF,EAAsBC,OAAtB,CAA8B;AAC5BC,aAAS;AADmB,GAA9B;AAIA,SAAOH,YAAP;AACD,CAPoB,CAOlBC,CAPkB,CAArB","sourcesContent":["import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * CoreUI Free Boostrap Admin Template (v2.0.0-beta.1): popovers.js\n * Licensed under MIT (https://coreui.io/license)\n * --------------------------------------------------------------------------\n */\n\nconst PopoversView = (($) => {\n $('[data-toggle=\"popover\"]').popover()\n $('.popover-dismiss').popover({\n trigger: 'focus'\n })\n\n return PopoversView\n})($)\n"],"file":"popovers.js"} -------------------------------------------------------------------------------- /app/static/js/popper.js/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | docs 4 | -------------------------------------------------------------------------------- /app/static/js/popper.js/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: require.resolve('@popperjs/eslint-config-popper'), 3 | }; 4 | -------------------------------------------------------------------------------- /app/static/js/tooltips.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * CoreUI Free Boostrap Admin Template (v2.0.0-beta.1): tooltips.js 4 | * Licensed under MIT (https://coreui.io/license) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | var TooltipsView = function ($) { 8 | $('[data-toggle="tooltip"]').tooltip(); 9 | return TooltipsView; 10 | }($); 11 | //# sourceMappingURL=tooltips.js.map -------------------------------------------------------------------------------- /app/static/js/tooltips.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["src/tooltips.js"],"names":["TooltipsView","$","tooltip"],"mappings":"AAEA;;;;;;AAOA,IAAMA,eAAgB,UAACC,CAAD,EAAO;AAC3BA,IAAE,yBAAF,EAA6BC,OAA7B;AAEA,SAAOF,YAAP;AACD,CAJoB,CAIlBC,CAJkB,CAArB","sourcesContent":["import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * CoreUI Free Boostrap Admin Template (v2.0.0-beta.1): tooltips.js\n * Licensed under MIT (https://coreui.io/license)\n * --------------------------------------------------------------------------\n */\n\nconst TooltipsView = (($) => {\n $('[data-toggle=\"tooltip\"]').tooltip()\n\n return TooltipsView\n})($)\n"],"file":"tooltips.js"} -------------------------------------------------------------------------------- /app/templates/README.md: -------------------------------------------------------------------------------- 1 | # This directory contains Jinja2 template files 2 | 3 | This Flask application uses the Jinja2 templating engine to render 4 | data into HTML files. 5 | 6 | The template files are organized into the following directories: 7 | 8 | common # Common base template files and macros 9 | flask_user # Flask-User template files (register, login, etc.) 10 | views # Template files for views 11 | 12 | Flask-User makes use of standard template files that reside in 13 | `PATH/TO/VIRTUALENV/lib/PYTHONVERSION/site-packages/flask_user/templates/flask_user/`. 14 | These standard templates can be overruled by placing a copy in the `app/templates/flask_user/` directory. 15 | -------------------------------------------------------------------------------- /app/templates/common/dark_base.html: -------------------------------------------------------------------------------- 1 | {% extends "dark_layout.html" %} 2 | -------------------------------------------------------------------------------- /app/templates/common/page_base.html: -------------------------------------------------------------------------------- 1 | {% extends "layout.html" %} 2 | -------------------------------------------------------------------------------- /app/templates/flask_user/flask_user_base.html: -------------------------------------------------------------------------------- 1 | {% extends "layout.html" %} 2 | 3 | 4 | {% block pre_content %} 5 | 6 | 7 | 8 | {% endblock %} 9 | 10 | 11 | {% block post_content %} 12 | 13 | 14 | 15 | {% endblock %} -------------------------------------------------------------------------------- /app/templates/flask_user/member_base.html: -------------------------------------------------------------------------------- 1 | {% extends 'flask_user/flask_user_base.html' %} 2 | -------------------------------------------------------------------------------- /app/templates/flask_user/public_base.html: -------------------------------------------------------------------------------- 1 | {% extends 'flask_user/flask_user_base.html' %} 2 | -------------------------------------------------------------------------------- /fabfile.py: -------------------------------------------------------------------------------- 1 | # Definition file for Fabric -- an SSH command-line tool 2 | 3 | from fabric.operations import local 4 | from fabric.api import task 5 | 6 | @task 7 | def runserver(): 8 | local('python manage.py runserver') 9 | 10 | @task 11 | def test(): 12 | local('py.test tests/') 13 | 14 | @task 15 | def test_cov(): 16 | local('py.test -s --cov-report term-missing --cov-config tests/.coveragerc --cov app tests/') 17 | 18 | @task 19 | def tox(): 20 | local('tox') -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # This file is used by pip to install required python packages 2 | # Usage: pip install -r requirements.txt 3 | 4 | # Flask Framework 5 | Flask==2.0.3 6 | 7 | # Flask Packages 8 | Flask-Login==0.4.1 9 | Flask-Migrate==2.0.2 10 | Flask-Script==2.0.5 11 | Flask-SQLAlchemy==2.5.1 12 | Flask-BabelEx 13 | Flask-User==1.0.2.2 14 | Flask-WTF==1.0.0 15 | email_validator 16 | Werkzeug==2.0.3 17 | flask-session 18 | 19 | # Automated tests 20 | pytest==3.0.5 21 | pytest-cov==2.4.0 22 | 23 | # Development tools 24 | # Fabric3==1.13.1.post1 25 | # tox==2.7.0 26 | 27 | # Run 28 | gunicorn 29 | 30 | -------------------------------------------------------------------------------- /runserver.sh: -------------------------------------------------------------------------------- 1 | nohup gunicorn --bind 0.0.0.0:5000 --workers 4 --max-requests 100 unicorn:app & 2 | -------------------------------------------------------------------------------- /tests/.coveragerc: -------------------------------------------------------------------------------- 1 | # Configuration for the test coverage tool (py.test --cov) 2 | # 3 | # Copyright 2014 SolidBuilds.com. All rights reserved 4 | # 5 | # Authors: Ling Thio 6 | 7 | [run] 8 | omit = app/startup/reset_db.py 9 | 10 | [report] 11 | show_missing = True 12 | -------------------------------------------------------------------------------- /tests/README.md: -------------------------------------------------------------------------------- 1 | # tests directory 2 | 3 | This directory contains all the automated tests for the test tool `py.test`. 4 | 5 | **`.coverage`**: Configuration file for the Python coverage tool `coverage`. 6 | 7 | **`conftest.py`**: Defines fixtures for py.test. 8 | 9 | **`test_*`**: py.test will load any file that starts with the name `test_` 10 | and run any function that starts with the name `test_`. 11 | 12 | 13 | ## Testing the app 14 | 15 | # Run all the automated tests in the tests/ directory 16 | ./runtests.sh # will run "py.test -s tests/" 17 | 18 | 19 | ## Generating a test coverage report 20 | 21 | # Run tests and show a test coverage report 22 | ./runcoverage.sh # will run py.test with coverage options 23 | 24 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | # __init__.py is a special Python file that allows a directory to become 2 | # a Python package so it can be accessed using the 'import' statement. 3 | 4 | # Intentionally left empty -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | # Test on the following Python versions 3 | envlist = py26, py27, py33, py34, py35, py36 4 | 5 | toxworkdir=../builds/flask_user_starter_app/tox 6 | skipsdist=True 7 | 8 | [testenv] 9 | deps = -r{toxinidir}/requirements.txt 10 | 11 | # Run automated test suite 12 | commands= 13 | pytest tests/ -------------------------------------------------------------------------------- /unicorn.py: -------------------------------------------------------------------------------- 1 | """This file sets up a command line manager. 2 | 3 | Use "python manage.py" for a list of available commands. 4 | Use "python manage.py runserver" to start the development web server on localhost:5000. 5 | Use "python manage.py runserver --help" for additional runserver options. 6 | """ 7 | 8 | from flask_migrate import MigrateCommand 9 | from flask_script import Manager 10 | 11 | from app import create_app 12 | from app.commands import InitDbCommand 13 | 14 | app = create_app({}) 15 | 16 | if __name__ == "__main__": 17 | # python manage.py # shows available commands 18 | # python manage.py runserver --help # shows available runserver options 19 | app.run() 20 | --------------------------------------------------------------------------------