{% trans "Page Not Found" %}
10 |{% trans "Sorry, but the page you are looking for not found!" %}
11 | 12 | {% trans "Go back" %} 13 | 14 |├── app ├── modules │ ├── __init__.py │ ├── core │ │ ├── __init__.py │ │ ├── constants.py │ │ └── settings.py │ ├── util │ │ └── __init__.py │ ├── entity │ │ └── __init__.py │ ├── service │ │ └── __init__.py │ └── validation │ │ └── __init__.py ├── tests │ ├── __init__.py │ ├── unit │ │ ├── __init__.py │ │ └── modules │ │ │ ├── __init__.py │ │ │ └── entity │ │ │ └── __init__.py │ └── functional │ │ ├── __init__.py │ │ └── controllers │ │ ├── __init__.py │ │ ├── api │ │ ├── __init__.py │ │ └── private │ │ │ ├── __init__.py │ │ │ └── v1 │ │ │ ├── __init__.py │ │ │ └── admin │ │ │ └── __init__.py │ │ └── web │ │ └── __init__.py ├── controllers │ ├── __init__.py │ ├── api │ │ ├── __init__.py │ │ └── private │ │ │ ├── __init__.py │ │ │ └── v1 │ │ │ ├── __init__.py │ │ │ ├── admin │ │ │ └── __init__.py │ │ │ └── forbidden.py │ └── web │ │ ├── __init__.py │ │ └── admin │ │ └── __init__.py ├── exceptions │ ├── __init__.py │ ├── error_codes.py │ ├── missing_argument.py │ ├── validation_rule_not_found.py │ ├── sanitization_rule_not_found.py │ ├── client_error.py │ └── server_error.py ├── middleware │ └── __init__.py ├── migrations │ └── __init__.py ├── settings │ └── __init__.py ├── templatetags │ ├── __init.py │ └── extras.py ├── management │ └── commands │ │ └── __init__.py ├── wsgi.py ├── __init__.py ├── tasks │ └── __init__.py ├── models │ └── option.py └── context_processors.py ├── runtime.txt ├── static └── .gitignore ├── .github ├── FUNDING.yml ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md └── workflows │ └── ci.yml ├── storage ├── logs │ └── .gitignore ├── mails │ └── .gitignore ├── app │ ├── private │ │ └── .gitignore │ └── public │ │ └── .gitignore └── database │ └── .gitignore ├── .gitattributes ├── themes ├── child │ ├── layouts │ │ └── .gitignore │ ├── partials │ │ └── .gitignore │ └── templates │ │ └── .gitignore └── default │ ├── partials │ ├── footer.html │ ├── bottom-menu.html │ └── header.html │ ├── templates │ ├── admin │ │ └── status_page.html │ ├── 404.html │ └── 500.html │ └── layouts │ └── landing.html ├── assets ├── plugins │ ├── pace │ │ ├── .gitignore │ │ ├── .hsdoc │ │ ├── plugin.js │ │ ├── docs │ │ │ └── resources │ │ │ │ └── templates │ │ │ │ ├── index.jade │ │ │ │ └── page.jade │ │ ├── templates │ │ │ ├── pace-theme-minimal.tmpl.css │ │ │ ├── pace-theme-fill-left.tmpl.css │ │ │ ├── pace-theme-flat-top.tmpl.css │ │ │ ├── pace-theme-big-counter.tmpl.css │ │ │ └── pace-theme-center-simple.tmpl.css │ │ ├── themes │ │ │ ├── pace-theme-minimal.css │ │ │ ├── red │ │ │ │ ├── pace-theme-minimal.css │ │ │ │ ├── pace-theme-fill-left.css │ │ │ │ ├── pace-theme-flat-top.css │ │ │ │ └── pace-theme-big-counter.css │ │ │ ├── black │ │ │ │ ├── pace-theme-minimal.css │ │ │ │ ├── pace-theme-fill-left.css │ │ │ │ ├── pace-theme-flat-top.css │ │ │ │ ├── pace-theme-big-counter.css │ │ │ │ └── pace-theme-center-simple.css │ │ │ ├── blue │ │ │ │ ├── pace-theme-minimal.css │ │ │ │ ├── pace-theme-fill-left.css │ │ │ │ ├── pace-theme-flat-top.css │ │ │ │ ├── pace-theme-big-counter.css │ │ │ │ └── pace-theme-center-simple.css │ │ │ ├── green │ │ │ │ ├── pace-theme-minimal.css │ │ │ │ ├── pace-theme-fill-left.css │ │ │ │ ├── pace-theme-flat-top.css │ │ │ │ ├── pace-theme-big-counter.css │ │ │ │ └── pace-theme-center-simple.css │ │ │ ├── orange │ │ │ │ ├── pace-theme-minimal.css │ │ │ │ ├── pace-theme-fill-left.css │ │ │ │ ├── pace-theme-flat-top.css │ │ │ │ ├── pace-theme-big-counter.css │ │ │ │ └── pace-theme-center-simple.css │ │ │ ├── pink │ │ │ │ ├── pace-theme-minimal.css │ │ │ │ ├── pace-theme-fill-left.css │ │ │ │ ├── pace-theme-flat-top.css │ │ │ │ └── pace-theme-big-counter.css │ │ │ ├── purple │ │ │ │ ├── pace-theme-minimal.css │ │ │ │ ├── pace-theme-fill-left.css │ │ │ │ ├── pace-theme-flat-top.css │ │ │ │ └── pace-theme-big-counter.css │ │ │ ├── silver │ │ │ │ ├── pace-theme-minimal.css │ │ │ │ ├── pace-theme-fill-left.css │ │ │ │ ├── pace-theme-flat-top.css │ │ │ │ └── pace-theme-big-counter.css │ │ │ ├── white │ │ │ │ ├── pace-theme-minimal.css │ │ │ │ ├── pace-theme-fill-left.css │ │ │ │ ├── pace-theme-flat-top.css │ │ │ │ └── pace-theme-big-counter.css │ │ │ ├── yellow │ │ │ │ ├── pace-theme-minimal.css │ │ │ │ ├── pace-theme-fill-left.css │ │ │ │ ├── pace-theme-flat-top.css │ │ │ │ └── pace-theme-big-counter.css │ │ │ ├── pace-theme-fill-left.css │ │ │ ├── pace-theme-flat-top.css │ │ │ └── pace-theme-big-counter.css │ │ ├── package.json │ │ ├── tests │ │ │ └── demo.html │ │ ├── bower.json │ │ ├── README.md │ │ └── LICENSE │ ├── charts-c3 │ │ └── plugin.js │ ├── fullcalendar │ │ └── plugin.js │ ├── input-mask │ │ └── plugin.js │ ├── prismjs │ │ └── plugin.js │ └── toastr │ │ └── plugin.js ├── chart.png ├── images │ ├── logo.png │ ├── open_icon.png │ ├── async_icon.png │ ├── docker_icon.png │ ├── encrypt_icon.png │ ├── faces │ │ ├── female │ │ │ ├── 1.jpg │ │ │ ├── 2.jpg │ │ │ ├── 3.jpg │ │ │ ├── 4.jpg │ │ │ ├── 5.jpg │ │ │ ├── 6.jpg │ │ │ ├── 7.jpg │ │ │ ├── 8.jpg │ │ │ ├── 9.jpg │ │ │ ├── 10.jpg │ │ │ ├── 11.jpg │ │ │ ├── 12.jpg │ │ │ ├── 13.jpg │ │ │ ├── 14.jpg │ │ │ ├── 15.jpg │ │ │ ├── 16.jpg │ │ │ ├── 17.jpg │ │ │ ├── 18.jpg │ │ │ ├── 19.jpg │ │ │ ├── 20.jpg │ │ │ ├── 21.jpg │ │ │ ├── 22.jpg │ │ │ ├── 23.jpg │ │ │ ├── 24.jpg │ │ │ ├── 25.jpg │ │ │ ├── 26.jpg │ │ │ ├── 27.jpg │ │ │ ├── 28.jpg │ │ │ ├── 29.jpg │ │ │ ├── 30.jpg │ │ │ ├── 31.jpg │ │ │ └── 32.jpg │ │ └── male │ │ │ ├── 1.jpg │ │ │ ├── 10.jpg │ │ │ ├── 11.jpg │ │ │ ├── 12.jpg │ │ │ ├── 13.jpg │ │ │ ├── 14.jpg │ │ │ ├── 15.jpg │ │ │ ├── 16.jpg │ │ │ ├── 17.jpg │ │ │ ├── 18.jpg │ │ │ ├── 2.jpg │ │ │ ├── 20.jpg │ │ │ ├── 21.jpg │ │ │ ├── 24.jpg │ │ │ ├── 25.jpg │ │ │ ├── 26.jpg │ │ │ ├── 27.jpg │ │ │ ├── 28.jpg │ │ │ ├── 29.jpg │ │ │ ├── 3.jpg │ │ │ ├── 30.jpg │ │ │ ├── 31.jpg │ │ │ ├── 32.jpg │ │ │ ├── 33.jpg │ │ │ ├── 34.jpg │ │ │ ├── 35.jpg │ │ │ ├── 36.jpg │ │ │ ├── 37.jpg │ │ │ ├── 38.jpg │ │ │ ├── 39.jpg │ │ │ ├── 4.jpg │ │ │ ├── 40.jpg │ │ │ ├── 41.jpg │ │ │ ├── 42.jpg │ │ │ ├── 43.jpg │ │ │ ├── 5.jpg │ │ │ ├── 6.jpg │ │ │ ├── 7.jpg │ │ │ ├── 8.jpg │ │ │ └── 9.jpg │ ├── install_icon.png │ ├── flags │ │ ├── bd.svg │ │ ├── pl.svg │ │ ├── de.svg │ │ ├── am.svg │ │ ├── bq.svg │ │ ├── lu.svg │ │ ├── mc.svg │ │ ├── gb-sct.svg │ │ ├── ua.svg │ │ ├── at.svg │ │ ├── gb-eng.svg │ │ ├── id.svg │ │ ├── lv.svg │ │ ├── dk.svg │ │ ├── fi.svg │ │ ├── ae.svg │ │ ├── pe.svg │ │ ├── bw.svg │ │ ├── ga.svg │ │ ├── gf.svg │ │ ├── ma.svg │ │ ├── ml.svg │ │ ├── ne.svg │ │ ├── sl.svg │ │ ├── td.svg │ │ ├── ye.svg │ │ ├── ci.svg │ │ ├── co.svg │ │ ├── ng.svg │ │ ├── mq.svg │ │ ├── ru.svg │ │ ├── th.svg │ │ ├── bg.svg │ │ ├── cr.svg │ │ ├── fr.svg │ │ ├── gp.svg │ │ ├── mf.svg │ │ ├── mv.svg │ │ ├── ch.svg │ │ ├── gh.svg │ │ ├── gn.svg │ │ ├── mg.svg │ │ ├── mu.svg │ │ ├── wf.svg │ │ ├── bl.svg │ │ ├── dz.svg │ │ ├── be.svg │ │ ├── hu.svg │ │ ├── it.svg │ │ ├── nc.svg │ │ ├── pm.svg │ │ ├── re.svg │ │ ├── ro.svg │ │ ├── yt.svg │ │ ├── ee.svg │ │ ├── ie.svg │ │ ├── no.svg │ │ ├── sj.svg │ │ ├── sr.svg │ │ ├── cd.svg │ │ ├── to.svg │ │ ├── nl.svg │ │ ├── tt.svg │ │ ├── lc.svg │ │ ├── ss.svg │ │ ├── mk.svg │ │ ├── jm.svg │ │ ├── qa.svg │ │ ├── bf.svg │ │ ├── la.svg │ │ ├── bj.svg │ │ ├── cg.svg │ │ ├── cz.svg │ │ ├── pw.svg │ │ ├── sd.svg │ │ ├── lt.svg │ │ ├── jp.svg │ │ ├── sn.svg │ │ ├── kw.svg │ │ ├── ax.svg │ │ ├── ly.svg │ │ ├── vc.svg │ │ ├── gm.svg │ │ ├── is.svg │ │ ├── so.svg │ │ ├── vn.svg │ │ ├── tz.svg │ │ ├── sc.svg │ │ ├── ps.svg │ │ ├── az.svg │ │ ├── gy.svg │ │ ├── bs.svg │ │ ├── bh.svg │ │ ├── cl.svg │ │ ├── dj.svg │ │ ├── bv.svg │ │ ├── fo.svg │ │ ├── gg.svg │ │ ├── gl.svg │ │ ├── tl.svg │ │ ├── cu.svg │ │ ├── sy.svg │ │ ├── cw.svg │ │ ├── pr.svg │ │ ├── tr.svg │ │ ├── se.svg │ │ ├── cf.svg │ │ ├── gr.svg │ │ ├── rw.svg │ │ ├── jo.svg │ │ ├── bb.svg │ │ ├── st.svg │ │ ├── nr.svg │ │ ├── gw.svg │ │ ├── lr.svg │ │ ├── tg.svg │ │ ├── tk.svg │ │ ├── cm.svg │ │ ├── mm.svg │ │ ├── cn.svg │ │ ├── pa.svg │ │ ├── ag.svg │ │ ├── pk.svg │ │ ├── ws.svg │ │ ├── gb.svg │ │ ├── mr.svg │ │ ├── fm.svg │ │ ├── kn.svg │ │ ├── in.svg │ │ ├── tn.svg │ │ ├── kp.svg │ │ ├── ca.svg │ │ ├── il.svg │ │ ├── mh.svg │ │ ├── za.svg │ │ ├── eh.svg │ │ ├── ve.svg │ │ ├── hn.svg │ │ ├── tf.svg │ │ ├── eu.svg │ │ ├── sb.svg │ │ ├── ph.svg │ │ ├── tw.svg │ │ ├── na.svg │ │ ├── sg.svg │ │ ├── km.svg │ │ └── bi.svg │ ├── crypto-currencies │ │ ├── eos.svg │ │ ├── dash.svg │ │ ├── ethereum.svg │ │ ├── litecoin.svg │ │ ├── bitcoin.svg │ │ └── ripple.svg │ └── browsers │ │ ├── blackberry.svg │ │ └── aol-explorer.svg └── fonts │ └── feather │ ├── feather-webfont.eot │ ├── feather-webfont.ttf │ └── feather-webfont.woff ├── renovate.json ├── Procfile ├── flake8.ini ├── pycodestyle ├── deployments ├── k8s │ └── README.md ├── ubuntu-18.04 │ └── README.md └── docker-compose │ └── README.md ├── requirements.txt ├── PULL_REQUEST_TEMPLATE.md ├── Dockerfile ├── docker ├── rabbitmq │ └── rabbitmq-isolated.conf └── nginx │ └── nginx.conf ├── manage.py ├── CONTRIBUTING.md ├── swagger.yaml ├── .env.example ├── app.json ├── .env.docker └── .mergify.yml /app/modules/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/exceptions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/middleware/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/modules/core/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/modules/util/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/settings/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/templatetags/__init.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/tests/unit/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /runtime.txt: -------------------------------------------------------------------------------- 1 | python-3.7.3 2 | -------------------------------------------------------------------------------- /app/controllers/api/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/controllers/web/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/modules/entity/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/modules/service/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/tests/functional/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/controllers/web/admin/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/management/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/modules/validation/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/tests/unit/modules/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: clivern 2 | -------------------------------------------------------------------------------- /app/controllers/api/private/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/controllers/api/private/v1/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/tests/unit/modules/entity/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/mails/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | assets/* linguist-vendored 2 | -------------------------------------------------------------------------------- /app/controllers/api/private/v1/admin/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/tests/functional/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/tests/functional/controllers/api/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/tests/functional/controllers/web/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /storage/app/private/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/app/public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/database/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /themes/child/layouts/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /themes/child/partials/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /themes/child/templates/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /app/tests/functional/controllers/api/private/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/tests/functional/controllers/api/private/v1/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/plugins/pace/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /app/tests/functional/controllers/api/private/v1/admin/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/default/partials/footer.html: -------------------------------------------------------------------------------- 1 | {% load static %} 2 | {% load i18n %} -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "config:base" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /assets/chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/chart.png -------------------------------------------------------------------------------- /assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/logo.png -------------------------------------------------------------------------------- /assets/images/open_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/open_icon.png -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: python manage.py collectstatic --no-input; python manage.py migrate; gunicorn app.wsgi --log-file - 2 | -------------------------------------------------------------------------------- /assets/images/async_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/async_icon.png -------------------------------------------------------------------------------- /assets/images/docker_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/docker_icon.png -------------------------------------------------------------------------------- /assets/images/encrypt_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/encrypt_icon.png -------------------------------------------------------------------------------- /assets/images/faces/female/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/1.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/2.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/3.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/4.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/5.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/6.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/7.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/8.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/9.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/1.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/10.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/11.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/12.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/13.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/14.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/15.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/16.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/17.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/18.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/2.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/20.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/21.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/24.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/25.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/26.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/27.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/27.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/28.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/29.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/29.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/3.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/30.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/31.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/32.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/33.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/34.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/34.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/35.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/35.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/36.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/36.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/37.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/37.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/38.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/38.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/39.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/39.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/4.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/40.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/41.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/41.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/42.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/42.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/43.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/43.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/5.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/6.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/7.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/8.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/male/9.jpg -------------------------------------------------------------------------------- /assets/images/install_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/install_icon.png -------------------------------------------------------------------------------- /assets/images/faces/female/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/10.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/11.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/12.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/13.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/14.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/15.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/16.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/17.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/18.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/19.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/20.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/21.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/22.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/23.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/24.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/25.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/26.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/27.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/27.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/28.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/29.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/29.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/30.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/31.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/images/faces/female/32.jpg -------------------------------------------------------------------------------- /assets/fonts/feather/feather-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/fonts/feather/feather-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/feather/feather-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/fonts/feather/feather-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/feather/feather-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/HEAD/assets/fonts/feather/feather-webfont.woff -------------------------------------------------------------------------------- /flake8.ini: -------------------------------------------------------------------------------- 1 | [flake8] 2 | statistics=True 3 | format=Code:%(code)s File:%(path)s Line:%(row)d Column:%(col)d Info:%(text)s 4 | max-line-length=160 -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Docs: https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners 2 | * @clivern 3 | -------------------------------------------------------------------------------- /assets/plugins/pace/.hsdoc: -------------------------------------------------------------------------------- 1 | title: "Pace" 2 | source: "pace.coffee" 3 | assets: "{templates/*,themes/*,docs/welcome/*,docs/lib/*,docs/resources/*.css,*.js}" 4 | -------------------------------------------------------------------------------- /pycodestyle: -------------------------------------------------------------------------------- 1 | [pycodestyle] 2 | count=True 3 | ignore= 4 | max-line-length=160 5 | statistics=True 6 | format = Code:%(code)s File:%(path)s Line:%(row)d Column:%(col)d Info:%(text)s -------------------------------------------------------------------------------- /assets/images/flags/bd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/plugins/pace/plugin.js: -------------------------------------------------------------------------------- 1 | require.config({ 2 | paths: { 3 | 'pace': 'static/plugins/pace/pace.min' 4 | } 5 | }); 6 | 7 | require(['pace'], function (pace) { 8 | pace.start({document: false}); 9 | }); -------------------------------------------------------------------------------- /assets/images/flags/pl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/plugins/pace/docs/resources/templates/index.jade: -------------------------------------------------------------------------------- 1 | extends index 2 | 3 | append early-head 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/plugins/pace/docs/resources/templates/page.jade: -------------------------------------------------------------------------------- 1 | extends index 2 | 3 | append early-head 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/flags/de.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/am.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/bq.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/lu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gb-sct.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ua.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/at.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gb-eng.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/id.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/lv.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/dk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/fi.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ae.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/pe.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/bw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ga.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ma.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ml.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ne.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/sl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/td.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ye.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ci.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/co.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ng.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mq.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ru.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/th.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/plugins/charts-c3/plugin.js: -------------------------------------------------------------------------------- 1 | require.config({ 2 | shim: { 3 | 'c3': ['d3', 'core'], 4 | 'd3': ['core'], 5 | }, 6 | paths: { 7 | 'd3': 'static/plugins/charts-c3/js/d3.v3.min', 8 | 'c3': 'static/plugins/charts-c3/js/c3.min', 9 | } 10 | }); -------------------------------------------------------------------------------- /deployments/k8s/README.md: -------------------------------------------------------------------------------- 1 | ## Install on Kubernetes 2 | 3 | 4 | #### Requirements 5 | 6 | - Python 3 or later 7 | - A Supported Database: MySQL, PostgreSQL. 8 | - Redis Server (optional for notifications). 9 | - RabbitMQ Server (optional for notifications). 10 | 11 | 12 | #### Steps 13 | -------------------------------------------------------------------------------- /assets/images/flags/bg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/cr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/fr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mv.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gh.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/wf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/plugins/fullcalendar/plugin.js: -------------------------------------------------------------------------------- 1 | require.config({ 2 | shim: { 3 | 'fullcalendar': ['moment', 'jquery'], 4 | }, 5 | paths: { 6 | 'fullcalendar': 'static/plugins/fullcalendar/js/fullcalendar.min', 7 | 'moment': 'static/plugins/fullcalendar/js/moment.min', 8 | } 9 | }); -------------------------------------------------------------------------------- /deployments/ubuntu-18.04/README.md: -------------------------------------------------------------------------------- 1 | ## Install on Ubuntu 18.04 2 | 3 | 4 | #### Requirements 5 | 6 | - Python 3 or later 7 | - A Supported Database: MySQL, PostgreSQL. 8 | - Redis Server (optional for notifications). 9 | - RabbitMQ Server (optional for notifications). 10 | 11 | 12 | #### Steps 13 | -------------------------------------------------------------------------------- /assets/images/flags/bl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/dz.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /deployments/docker-compose/README.md: -------------------------------------------------------------------------------- 1 | ## Install on Docker Compose 2 | 3 | 4 | #### Requirements 5 | 6 | - Python 3 or later 7 | - A Supported Database: MySQL, PostgreSQL. 8 | - Redis Server (optional for notifications). 9 | - RabbitMQ Server (optional for notifications). 10 | 11 | 12 | #### Steps 13 | -------------------------------------------------------------------------------- /assets/images/flags/be.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/hu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/it.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/nc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/pm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/re.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ro.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/yt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ee.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/no.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/sj.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/sr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | **Is your feature request related to a problem or something you would like to see? Please describe.** 8 | A clear and concise description of what the problem or the new feature is. Ex. I'm always frustrated when [...] 9 | -------------------------------------------------------------------------------- /assets/images/flags/cd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/to.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/nl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/tt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/lc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/plugins/input-mask/plugin.js: -------------------------------------------------------------------------------- 1 | require.config({ 2 | shim: { 3 | 'input-mask': ['jquery'] 4 | }, 5 | paths: { 6 | 'input-mask': 'static/plugins/input-mask/js/jquery.mask.min' 7 | } 8 | }); 9 | 10 | require(['input-mask', 'jquery'], function(mask, $){ 11 | $(document).ready(function(){ 12 | $.applyDataMask('[data-mask]'); 13 | }); 14 | }); -------------------------------------------------------------------------------- /assets/images/flags/ss.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/jm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Django==3.0.8 2 | mysqlclient==2.0.1 3 | python-dotenv==0.14.0 4 | gunicorn==20.0.4 5 | requests==2.24.0 6 | psycopg2==2.8.5 7 | jsonschema==3.2.0 8 | celery==4.4.5 9 | redis==3.5.3 10 | cryptography==3.0 11 | markdown2==2.3.9 12 | twilio==6.44.1 13 | pyumetric==0.0.4 14 | pyvalitron==1.1.3 15 | feedgen==0.9.0 16 | python-dateutil==2.8.1 17 | psycopg2-binary==2.8.5 18 | whitenoise==5.1.0 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/templates/pace-theme-minimal.tmpl.css: -------------------------------------------------------------------------------- 1 | .pace .pace-progress { 2 | background: `args.color || "#29d"`; 3 | position: fixed; 4 | z-index: 2000; 5 | top: 0; 6 | left: 0; 7 | height: 2px; 8 | 9 | -webkit-transition: width 1s; 10 | -moz-transition: width 1s; 11 | -o-transition: width 1s; 12 | transition: width 1s; 13 | } 14 | 15 | .pace-inactive { 16 | display: none; 17 | } 18 | -------------------------------------------------------------------------------- /assets/images/flags/qa.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/bf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/crypto-currencies/eos.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/la.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/bj.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/cg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/cz.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | - With pull requests: 2 | - Open your pull request against `master` or `develop` if exists. 3 | - Your pull request should have no more than two commits, if not you should squash them. 4 | - It should pass all tests in the available continuous integrations systems such as TravisCI. 5 | - You should add/modify tests to cover your proposed code changes. 6 | - If your pull request contains a new feature, please document it on the README. 7 | -------------------------------------------------------------------------------- /assets/images/flags/pw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/sd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/lt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/jp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/sn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/plugins/prismjs/plugin.js: -------------------------------------------------------------------------------- 1 | require.config({ 2 | paths: { 3 | 'prismjs': 'static/plugins/prismjs/js/prism.pack', 4 | }, 5 | shim: { 6 | prism: { 7 | exports: "Prism" 8 | } 9 | } 10 | }); 11 | 12 | require(['prismjs', 'jquery'], function(prismjs, $){ 13 | $(document).ready(function(){ 14 | // $('[class^="language-"]').each(function(i, block) { 15 | // Prism.highlightElement(block); 16 | // }); 17 | }); 18 | }); -------------------------------------------------------------------------------- /assets/images/flags/kw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #29d; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/red/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #ee3148; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6 2 | 3 | ENV PYTHONUNBUFFERED 1 4 | 5 | RUN mkdir /app 6 | 7 | COPY . /app 8 | 9 | WORKDIR /app 10 | 11 | RUN pip install -r requirements.txt 12 | 13 | RUN python manage.py collectstatic --noinput 14 | 15 | RUN rm -rf ./assets 16 | 17 | EXPOSE 8000 18 | 19 | VOLUME /app/storage 20 | 21 | HEALTHCHECK --interval=5s --timeout=2s --retries=5 --start-period=2s \ 22 | CMD python manage.py health check 23 | 24 | CMD ["gunicorn" , "-b", "0.0.0.0:8000", "app.wsgi"] -------------------------------------------------------------------------------- /assets/images/flags/ax.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/black/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #000000; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/blue/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #2299dd; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/green/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #22df80; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/orange/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #eb7a55; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/pink/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #e90f92; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/purple/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #7c60e0; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/silver/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #d6d6d6; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/white/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #ffffff; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/yellow/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #fcd25a; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/images/flags/ly.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/vc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/plugins/pace/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 | left: 0; 19 | bottom: 0; 20 | } 21 | -------------------------------------------------------------------------------- /assets/images/flags/gm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/is.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/so.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/vn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/tz.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/sc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ps.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/default/templates/admin/status_page.html: -------------------------------------------------------------------------------- 1 | {% extends 'layouts/base.html' %} 2 | {% load static %} 3 | {% load i18n %} 4 | 5 | 6 | {% block content %} 7 |
{% trans "Sorry, but the page you are looking for not found!" %}
11 | 12 | {% trans "Go back" %} 13 | 14 |{% trans "The server encountered something unexpected!" %}
11 | 12 | {% trans "Go back" %} 13 | 14 |
6 |
7 |
8 | An automatic web page progress bar.
9 |
10 | Include [pace.js](https://raw.github.com/HubSpot/pace/v0.7.1/pace.min.js) and a [theme](http://github.hubspot.com/pace/docs/welcome/) of your choice to your page and you are done!
11 |
12 | Pace will automatically monitor your Ajax requests, event loop lag, document ready state and elements on your page to decide on the progress.
13 |
14 | If you use AMD or Browserify, require pace.js and call `pace.start()` as early in the loading process as is possible.
15 |
16 | ### [Demo](http://github.hubspot.com/pace/docs/welcome/)
17 |
18 | ### [Documentation](http://github.hubspot.com/pace/)
19 |
20 | ### Example
21 |
22 | ```html
23 |
24 |
25 |
26 |
27 | ```
28 |
--------------------------------------------------------------------------------
/themes/default/partials/header.html:
--------------------------------------------------------------------------------
1 | {% load static %}
2 | {% load i18n %}
3 |
4 | {% if google_account %}
5 |
15 | {% endif %}
16 |
25 |
--------------------------------------------------------------------------------
/.env.docker:
--------------------------------------------------------------------------------
1 | APP_NAME=Silverback
2 | APP_KEY=)lj2@3@y&5ofgoekbt2c-4$$w2bedn@-(hr&i^!#%wype&wp6d
3 | APP_DEBUG=True
4 | APP_URL=http://localhost
5 |
6 | CURRENT_THEME=default
7 |
8 | DB_CONNECTION=mysql
9 | DB_HOST=db
10 | DB_PORT=3306
11 | DB_DATABASE=silverback
12 | DB_USERNAME=silverback
13 | DB_PASSWORD=secret
14 |
15 | EMAIL_BACKEND=filebased
16 | MAIL_DRIVER=smtp
17 | MAIL_HOST=smtp.mailtrap.io
18 | MAIL_PORT=2525
19 | MAIL_USERNAME=null
20 | MAIL_PASSWORD=null
21 | MAIL_ENCRYPTION=null
22 |
23 | ALLOWED_HOSTS=*
24 | APP_TIMEZONE=UTC
25 | APP_LANGUAGE=en-us
26 |
27 | DJANGO_LOGGING_HANDLERS=
28 | DJANGO_LOGGING_LEVEL=warning
29 | DJANGO_LOGGING_PROPAGATE=false
30 |
31 | APP_LOGGING_HANDLERS=file
32 | APP_LOGGING_LEVEL=info
33 | APP_LOGGING_PROPAGATE=true
34 |
35 | ACTIVATE_NOTIFICATIONS=false
36 |
37 | CELERY_BROKER_URL=amqp://guest:guest@rabbitmq:5672
38 | CELERY_RESULT_BACKEND=redis://redis:6379
39 |
40 | APP_CRYPTO_KEY=oibX_h5ErwimAtF5hDU8Rrfo_BHcD7lNrwHddg2WkBQ=
41 |
42 | TEXT_MESSAGING_DRIVER=twilio
43 |
44 | TWILIO_AUTH_TOKEN=
45 | TWILIO_ACCOUNT_SID=
--------------------------------------------------------------------------------
/.mergify.yml:
--------------------------------------------------------------------------------
1 | ---
2 | pull_request_rules:
3 | -
4 | actions:
5 | merge:
6 | method: squash
7 | conditions:
8 | - author!=Clivern
9 | - approved-reviews-by=Clivern
10 | - label=merge
11 | - status-success=continuous-integration/travis-ci/pr
12 | - status-success=continuous-integration/travis-ci/push
13 | name: "Automatic Merge 🚀"
14 | -
15 | actions:
16 | merge:
17 | method: merge
18 | conditions:
19 | - author=Clivern
20 | - label=merge
21 | name: "Automatic Merge 🚀"
22 | -
23 | actions:
24 | merge:
25 | method: squash
26 | conditions:
27 | - "author=renovate[bot]"
28 | - label=merge
29 | - status-success=continuous-integration/travis-ci/pr
30 | - status-success=continuous-integration/travis-ci/push
31 | name: "Automatic Merge for Renovate PRs 🚀"
32 | -
33 | actions:
34 | comment:
35 | message: "Nice! PR successfully merged."
36 | conditions:
37 | - merged
38 | name: "Merge Done 🚀"
39 |
--------------------------------------------------------------------------------
/assets/images/flags/hn.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/images/flags/tf.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/controllers/api/private/v1/forbidden.py:
--------------------------------------------------------------------------------
1 | # Copyright 2019 Silverbackhq
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # https://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # Third Party Library
16 | from django.http import JsonResponse
17 | from django.utils.translation import gettext as _
18 |
19 |
20 | def csrf_failure(request, reason=""):
21 | return JsonResponse({
22 | "status": "failure",
23 | "messages": [{
24 | "type": "error",
25 | "message": _("Error! Access forbidden due to invalid CSRF token.")
26 | }]
27 | })
28 |
--------------------------------------------------------------------------------
/assets/plugins/pace/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2013 HubSpot, Inc.
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4 |
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6 |
7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8 |
9 |
--------------------------------------------------------------------------------
/app/exceptions/client_error.py:
--------------------------------------------------------------------------------
1 | # Copyright 2019 Silverbackhq
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # https://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | from app.exceptions.error_codes import ErrorCodes
16 |
17 |
18 | class ClientError(Exception):
19 | """Client Error Custom Exception"""
20 |
21 | def __init__(self, message, error_code=None, extra={}):
22 | Exception.__init__(self, message)
23 | self.error_code = ErrorCodes().CLIENT_ERROR if error_code is None else error_code
24 | self.extra = extra
25 |
26 | def get_error_code(self):
27 | return self.error_code
28 |
--------------------------------------------------------------------------------
/app/exceptions/server_error.py:
--------------------------------------------------------------------------------
1 | # Copyright 2019 Silverbackhq
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # https://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | from app.exceptions.error_codes import ErrorCodes
16 |
17 |
18 | class ServerError(Exception):
19 | """ServerError Custom Exception"""
20 |
21 | def __init__(self, message, error_code=None, extra={}):
22 | Exception.__init__(self, message)
23 | self.error_code = ErrorCodes().SERVER_ERROR if error_code is None else error_code
24 | self.extra = extra
25 |
26 | def get_error_code(self):
27 | return self.error_code
28 |
--------------------------------------------------------------------------------
/assets/images/flags/eu.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/images/browsers/blackberry.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/images/flags/sb.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/images/browsers/aol-explorer.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/images/crypto-currencies/bitcoin.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/images/crypto-currencies/ripple.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/images/flags/ph.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/images/flags/tw.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/plugins/pace/templates/pace-theme-center-simple.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 | z-index: 2000;
9 | position: fixed;
10 | margin: auto;
11 | top: 0;
12 | left: 0;
13 | right: 0;
14 | bottom: 0;
15 | height: 5px;
16 | width: 200px;
17 | background: #fff;
18 | border: 1px solid `args.color || "#29d"`;
19 | }
20 |
21 | .pace .pace-progress {
22 | -webkit-box-sizing: border-box;
23 | -moz-box-sizing: border-box;
24 | -ms-box-sizing: border-box;
25 | -o-box-sizing: border-box;
26 | box-sizing: border-box;
27 |
28 | -webkit-transform: translate3d(0, 0, 0);
29 | -moz-transform: translate3d(0, 0, 0);
30 | -ms-transform: translate3d(0, 0, 0);
31 | -o-transform: translate3d(0, 0, 0);
32 | transform: translate3d(0, 0, 0);
33 |
34 | max-width: 200px;
35 | position: fixed;
36 | z-index: 2000;
37 | display: block;
38 | position: absolute;
39 | left: 0px;
40 | top: 0px;
41 | height: 100%;
42 | background: `args.color || "#29d"`;
43 | }
44 |
45 | .pace.pace-inactive {
46 | display: none;
47 | }
--------------------------------------------------------------------------------
/assets/images/flags/na.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/images/flags/sg.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/modules/core/settings.py:
--------------------------------------------------------------------------------
1 | # Copyright 2019 Silverbackhq
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # https://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # Local Library
16 | from app.modules.entity.option_entity import OptionEntity
17 |
18 |
19 | class Settings():
20 |
21 | def __init__(self):
22 | self.__option_entity = OptionEntity()
23 |
24 | def update_options(self, options):
25 | status = True
26 | for key, value in options.items():
27 | status &= self.__option_entity.update_value_by_key(key, value)
28 | return status
29 |
30 | def get_value_by_key(self, key, default=""):
31 | return self.__option_entity.get_value_by_key(key, default)
32 |
--------------------------------------------------------------------------------
/app/models/option.py:
--------------------------------------------------------------------------------
1 | # Copyright 2019 Silverbackhq
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # https://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # Third Party Library
16 | from django.db import models
17 |
18 |
19 | class Option(models.Model):
20 |
21 | key = models.CharField(max_length=30, db_index=True, verbose_name="Key")
22 | value = models.CharField(max_length=200, verbose_name="Value")
23 | autoload = models.BooleanField(default=False, verbose_name="Autoload")
24 | created_at = models.DateTimeField(auto_now_add=True, verbose_name="Created at")
25 | updated_at = models.DateTimeField(auto_now=True, verbose_name="Updated at")
26 |
27 | class Meta:
28 | db_table = "app_option"
29 |
--------------------------------------------------------------------------------
/assets/images/flags/km.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/context_processors.py:
--------------------------------------------------------------------------------
1 | # Copyright 2019 Silverbackhq
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # https://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # Standard Library
16 | import os
17 |
18 | # Local Library
19 | from app.modules.entity.option_entity import OptionEntity
20 | from app.modules.core.constants import Constants
21 |
22 |
23 | def globals(request):
24 |
25 | option_entity = OptionEntity()
26 |
27 | return {
28 | "google_account": option_entity.get_value_by_key("google_analytics_account", ""),
29 | "app_timezone": os.getenv("APP_TIMEZONE", "UTC"),
30 | "activate_notifications": os.getenv("ACTIVATE_NOTIFICATIONS", "false") == "true",
31 | "constants": Constants(),
32 | }
33 |
--------------------------------------------------------------------------------
/assets/images/flags/bi.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/plugins/pace/themes/black/pace-theme-center-simple.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 | z-index: 2000;
10 | position: fixed;
11 | margin: auto;
12 | top: 0;
13 | left: 0;
14 | right: 0;
15 | bottom: 0;
16 | height: 5px;
17 | width: 200px;
18 | background: #fff;
19 | border: 1px solid #000000;
20 | }
21 |
22 | .pace .pace-progress {
23 | -webkit-box-sizing: border-box;
24 | -moz-box-sizing: border-box;
25 | -ms-box-sizing: border-box;
26 | -o-box-sizing: border-box;
27 | box-sizing: border-box;
28 |
29 | -webkit-transform: translate3d(0, 0, 0);
30 | -moz-transform: translate3d(0, 0, 0);
31 | -ms-transform: translate3d(0, 0, 0);
32 | -o-transform: translate3d(0, 0, 0);
33 | transform: translate3d(0, 0, 0);
34 |
35 | max-width: 200px;
36 | position: fixed;
37 | z-index: 2000;
38 | display: block;
39 | position: absolute;
40 | left: 0px;
41 | top: 0px;
42 | height: 100%;
43 | background: #000000;
44 | }
45 |
46 | .pace.pace-inactive {
47 | display: none;
48 | }
--------------------------------------------------------------------------------
/assets/plugins/pace/themes/blue/pace-theme-center-simple.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 | z-index: 2000;
10 | position: fixed;
11 | margin: auto;
12 | top: 0;
13 | left: 0;
14 | right: 0;
15 | bottom: 0;
16 | height: 5px;
17 | width: 200px;
18 | background: #fff;
19 | border: 1px solid #2299dd;
20 | }
21 |
22 | .pace .pace-progress {
23 | -webkit-box-sizing: border-box;
24 | -moz-box-sizing: border-box;
25 | -ms-box-sizing: border-box;
26 | -o-box-sizing: border-box;
27 | box-sizing: border-box;
28 |
29 | -webkit-transform: translate3d(0, 0, 0);
30 | -moz-transform: translate3d(0, 0, 0);
31 | -ms-transform: translate3d(0, 0, 0);
32 | -o-transform: translate3d(0, 0, 0);
33 | transform: translate3d(0, 0, 0);
34 |
35 | max-width: 200px;
36 | position: fixed;
37 | z-index: 2000;
38 | display: block;
39 | position: absolute;
40 | left: 0px;
41 | top: 0px;
42 | height: 100%;
43 | background: #2299dd;
44 | }
45 |
46 | .pace.pace-inactive {
47 | display: none;
48 | }
--------------------------------------------------------------------------------
/assets/plugins/pace/themes/green/pace-theme-center-simple.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 | z-index: 2000;
10 | position: fixed;
11 | margin: auto;
12 | top: 0;
13 | left: 0;
14 | right: 0;
15 | bottom: 0;
16 | height: 5px;
17 | width: 200px;
18 | background: #fff;
19 | border: 1px solid #22df80;
20 | }
21 |
22 | .pace .pace-progress {
23 | -webkit-box-sizing: border-box;
24 | -moz-box-sizing: border-box;
25 | -ms-box-sizing: border-box;
26 | -o-box-sizing: border-box;
27 | box-sizing: border-box;
28 |
29 | -webkit-transform: translate3d(0, 0, 0);
30 | -moz-transform: translate3d(0, 0, 0);
31 | -ms-transform: translate3d(0, 0, 0);
32 | -o-transform: translate3d(0, 0, 0);
33 | transform: translate3d(0, 0, 0);
34 |
35 | max-width: 200px;
36 | position: fixed;
37 | z-index: 2000;
38 | display: block;
39 | position: absolute;
40 | left: 0px;
41 | top: 0px;
42 | height: 100%;
43 | background: #22df80;
44 | }
45 |
46 | .pace.pace-inactive {
47 | display: none;
48 | }
--------------------------------------------------------------------------------
/assets/plugins/pace/themes/orange/pace-theme-center-simple.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 | z-index: 2000;
10 | position: fixed;
11 | margin: auto;
12 | top: 0;
13 | left: 0;
14 | right: 0;
15 | bottom: 0;
16 | height: 5px;
17 | width: 200px;
18 | background: #fff;
19 | border: 1px solid #eb7a55;
20 | }
21 |
22 | .pace .pace-progress {
23 | -webkit-box-sizing: border-box;
24 | -moz-box-sizing: border-box;
25 | -ms-box-sizing: border-box;
26 | -o-box-sizing: border-box;
27 | box-sizing: border-box;
28 |
29 | -webkit-transform: translate3d(0, 0, 0);
30 | -moz-transform: translate3d(0, 0, 0);
31 | -ms-transform: translate3d(0, 0, 0);
32 | -o-transform: translate3d(0, 0, 0);
33 | transform: translate3d(0, 0, 0);
34 |
35 | max-width: 200px;
36 | position: fixed;
37 | z-index: 2000;
38 | display: block;
39 | position: absolute;
40 | left: 0px;
41 | top: 0px;
42 | height: 100%;
43 | background: #eb7a55;
44 | }
45 |
46 | .pace.pace-inactive {
47 | display: none;
48 | }
--------------------------------------------------------------------------------