diff --git a/Dockerfile b/Dockerfile index 85086ba..9dce318 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,20 +20,21 @@ RUN apk add --ino-cache \ swig \ gcc \ alpine-sdk \ - python3-dev && \ + python3-dev \ + mariadb-dev && \ cd / && \ git clone \ -b master \ --depth=1 \ - https://github.com/roramirez/qpanel.git && \ + https://github.com/d-sergienko/qpanel.git && \ cd qpanel && \ pip3 install -r requirements.txt && \ + pip3 install -r requirements/dbs/mysql.txt && \ cd /qpanel && \ npm install && \ cd /qpanel && \ pybabel compile -d qpanel/translations && \ cd /qpanel && \ - cp samples/config.ini-dist config.ini && \ apk del --quiet \ git \ npm \ diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..375e534 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,20 @@ +# Comments are provided throughout this file to help you get started. +# If you need more help, visit the Docker compose reference guide at +# https://docs.docker.com/compose/compose-file/ + +# Here the instructions define your application as a service called "server". +# This service is built from the Dockerfile in the current directory. +# You can add other services your application may depend on here, such as a +# database or a cache. For examples, see the Awesome Compose repository: +# https://github.com/docker/awesome-compose +services: + qpanel: + build: + context: . + restart: unless-stopped + environment: + - TZ=Europe/Kiev + ports: + - 5000:5000 + volumes: + - ./config.ini:/qpanel/config.ini diff --git a/qpanel/app.py b/qpanel/app.py index f73eb95..fe6fe30 100644 --- a/qpanel/app.py +++ b/qpanel/app.py @@ -220,7 +220,7 @@ def setup_logging(): # babel @babel.localeselector def get_locale(): - langs = ['en', 'es', 'de', 'pt_BR', 'ru'] + langs = ['en', 'es', 'de', 'pt_BR', 'ru', 'uk_UA'] browser = request.accept_languages.best_match(langs) try: return session['language'] diff --git a/qpanel/backend.py b/qpanel/backend.py index 589e8dd..49adaea 100644 --- a/qpanel/backend.py +++ b/qpanel/backend.py @@ -97,8 +97,10 @@ def filter_data_for_user(self, data, user): user -- username """ enables = self.config.queue_enables_for_username(user) - not_enable = list(set(data.keys()) - set(enables)) - map(data.pop, not_enable) + if len(enables): + for q in list(data.keys()): + if q not in enables: + data.pop(q) return data def parse_fs(self, data): diff --git a/qpanel/model.py b/qpanel/model.py index d7a7042..b89e406 100644 --- a/qpanel/model.py +++ b/qpanel/model.py @@ -92,7 +92,7 @@ def queuelog_count_inbound(start_date, end_date, agent=None, queue=None): def queuelog_count_abandon(start_date, end_date, agent=None, queue=None): - events = ['ABANDON'] + events = ['ABANDON', 'EXITWITHTIMEOUT'] data = queuelog_event_by_range_and_types(start_date, end_date, events, agent, queue) return len(data) @@ -100,7 +100,7 @@ def queuelog_count_abandon(start_date, end_date, agent=None, queue=None): def queuelog_seconds_wait_abandon(start_date, end_date, agent=None, queue=None): - events = ['ABANDON'] + events = ['ABANDON', 'EXITWITHTIMEOUT'] seconds = 0 data = queuelog_event_by_range_and_types(start_date, end_date, events, agent, queue) diff --git a/qpanel/templates/language_selector.html b/qpanel/templates/language_selector.html index 0e5605f..20b831c 100644 --- a/qpanel/templates/language_selector.html +++ b/qpanel/templates/language_selector.html @@ -6,5 +6,6 @@ + diff --git a/qpanel/themes/qpanel/templates/header.html b/qpanel/themes/qpanel/templates/header.html index 4346809..a599b2d 100644 --- a/qpanel/themes/qpanel/templates/header.html +++ b/qpanel/themes/qpanel/templates/header.html @@ -38,6 +38,7 @@
+ {% endif %} {% if has_users() %}