From 792c7c44381ade6eb0cb0b72caca6bcffaff0d44 Mon Sep 17 00:00:00 2001 From: Christian Dresen <c.dresen@fh-muenster.de> Date: Fri, 23 Sep 2016 12:41:16 +0200 Subject: [PATCH] [WarpInfra] Huge refactoring - Added proper language support - refactored code base --- www/Dockerfile | 1 + www/misc/entrypoint.sh | 2 + www/web/locale/de/LC_MESSAGES/django.po | 560 ++++++++++++++++++ www/web/locale/en/LC_MESSAGES/django.po | 560 ++++++++++++++++++ www/web/templates/base.html | 10 +- www/web/templates/two_factor/core/login.html | 2 +- www/web/warpauth/models.py | 1 - .../warpauth/templates/warpauth/login.html | 26 - .../warpauth/templates/warpauth/profile.html | 8 +- .../warpauth/profile/change_password.html | 12 +- .../warpauth/profile/information.html | 10 +- .../templates/warpauth/register/activate.html | 18 +- .../templates/warpauth/register/register.html | 38 +- .../warpauth/register/resend_token.html | 22 +- .../reset_password/change_password.html | 30 +- .../warpauth/reset_password/token_gen.html | 16 +- www/web/warpauth/urls.py | 16 +- www/web/warpauth/util.py | 9 +- www/web/warpauth/views/login.py | 38 -- www/web/warpauth/views/logout.py | 9 + www/web/warpauth/views/profile.py | 56 +- www/web/warpauth/views/register.py | 28 +- www/web/warpauth/views/reset_password.py | 26 +- www/web/warpfood/models.py | 1 + .../templates/warpfood/edit_sheet.html | 21 + www/web/warpfood/templates/warpfood/main.html | 8 +- www/web/warpfood/templates/warpfood/view.html | 48 +- www/web/warpfood/tests.py | 3 - www/web/warpfood/urls.py | 1 + www/web/warpfood/util.py | 3 +- www/web/warpfood/views.py | 136 ++--- .../warpmain/templates/warpmain/about.html | 28 +- .../templates/warpmain/admin/dashboard.html | 6 - .../templates/warpmain/admin/news.html | 32 - www/web/warpmain/templates/warpmain/main.html | 25 +- www/web/warpmain/tests.py | 3 - www/web/warpmain/urls.py | 13 +- www/web/warpmain/views.py | 44 ++ www/web/warpmain/views/__init__.py | 1 - www/web/warpmain/views/admin/__init__.py | 0 www/web/warpmain/views/admin/dashboard.py | 10 - www/web/warpmain/views/admin/news.py | 31 - www/web/warpmain/views/main.py | 14 - www/web/warpzone/settings.py | 8 +- www/web/warpzone/urls.py | 2 +- www/web/warpzone/util.py | 8 +- 46 files changed, 1472 insertions(+), 472 deletions(-) create mode 100644 www/web/locale/de/LC_MESSAGES/django.po create mode 100644 www/web/locale/en/LC_MESSAGES/django.po delete mode 100644 www/web/warpauth/templates/warpauth/login.html delete mode 100644 www/web/warpauth/views/login.py create mode 100644 www/web/warpauth/views/logout.py create mode 100644 www/web/warpfood/templates/warpfood/edit_sheet.html delete mode 100644 www/web/warpfood/tests.py delete mode 100644 www/web/warpmain/templates/warpmain/admin/dashboard.html delete mode 100644 www/web/warpmain/templates/warpmain/admin/news.html delete mode 100644 www/web/warpmain/tests.py create mode 100644 www/web/warpmain/views.py delete mode 100644 www/web/warpmain/views/__init__.py delete mode 100644 www/web/warpmain/views/admin/__init__.py delete mode 100644 www/web/warpmain/views/admin/dashboard.py delete mode 100644 www/web/warpmain/views/admin/news.py delete mode 100644 www/web/warpmain/views/main.py diff --git a/www/Dockerfile b/www/Dockerfile index f4f6031..4a487dd 100644 --- a/www/Dockerfile +++ b/www/Dockerfile @@ -10,6 +10,7 @@ RUN apt-get update && apt-get install -y \ libsasl2-dev \ libldap2-dev \ libssl-dev \ + gettext \ git \ nginx diff --git a/www/misc/entrypoint.sh b/www/misc/entrypoint.sh index 56e7f41..437a03a 100644 --- a/www/misc/entrypoint.sh +++ b/www/misc/entrypoint.sh @@ -4,7 +4,9 @@ cd /opt/warpinfra; python3 manage.py makemigrations --merge python3 manage.py makemigrations python3 manage.py migrate +python3 manage.py compilemessages python3 manage.py collectstatic --noinput + cp -r /opt/warpinfra/static /opt/socket/ uwsgi --ini /opt/nginx/uwsgi.ini --py-autoreload 1 diff --git a/www/web/locale/de/LC_MESSAGES/django.po b/www/web/locale/de/LC_MESSAGES/django.po new file mode 100644 index 0000000..2491e9d --- /dev/null +++ b/www/web/locale/de/LC_MESSAGES/django.po @@ -0,0 +1,560 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-09-23 12:32+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: templates/base.html:61 +msgid "logout" +msgstr "" + +#: templates/base.html:62 warpauth/templates/warpauth/profile.html.py:7 +msgid "profile_settings" +msgstr "" + +#: templates/base.html:65 +msgid "admin" +msgstr "" + +#: templates/base.html:70 warpfood/templates/warpfood/edit_sheet.html.py:6 +#: warpfood/templates/warpfood/main.html:6 +#: warpfood/templates/warpfood/view.html:6 warpzone/util.py:6 +msgid "pizza_sheet" +msgstr "PizzaSheet" + +#: templates/two_factor/core/login.html:5 +msgid "login" +msgstr "" + +#: templates/two_factor/core/login.html:8 +msgid "Enter your credentials." +msgstr "" + +#: templates/two_factor/core/login.html:11 +msgid "" +"We are calling your phone right now, please enter the\n" +" digits you hear." +msgstr "" + +#: templates/two_factor/core/login.html:14 +msgid "" +"We sent you a text message, please enter the tokens we\n" +" sent." +msgstr "" + +#: templates/two_factor/core/login.html:17 +msgid "" +"Please enter the tokens generated by your token\n" +" generator." +msgstr "" + +#: templates/two_factor/core/login.html:21 +msgid "" +"Use this form for entering backup tokens for logging in.\n" +" These tokens have been generated for you to print and keep safe. " +"Please\n" +" enter one of these backup tokens to login to your account." +msgstr "" + +#: templates/two_factor/core/login.html:34 +msgid "Or, alternatively, use one of your backup phones:" +msgstr "" + +#: templates/two_factor/core/login.html:44 +msgid "As a last resort, you can use a backup token:" +msgstr "" + +#: templates/two_factor/core/login.html:47 +msgid "Use Backup Token" +msgstr "" + +#: templates/two_factor/core/login.html:54 +msgid "Forgot Password?" +msgstr "" + +#: templates/two_factor/core/login.html:55 +msgid "Register" +msgstr "" + +#: templates/two_factor/core/login.html:56 +msgid "Resend Activation Link" +msgstr "" + +#: templates/two_factor/profile/disable.html:5 +msgid "Disable Two-factor Authentication" +msgstr "" + +#: templates/two_factor/profile/disable.html:6 +msgid "" +"You are about to disable two-factor authentication. This\n" +" compromises your account security, are you sure?" +msgstr "" + +#: templates/two_factor/profile/disable.html:12 +msgid "Disable" +msgstr "" + +#: templates/two_factor/profile/profile.html:5 +msgid "Account Security" +msgstr "" + +#: templates/two_factor/profile/profile.html:9 +msgid "Tokens will be generated by your token generator." +msgstr "" + +#: templates/two_factor/profile/profile.html:11 +#, python-format +msgid "Primary method: %(primary)s" +msgstr "" + +#: templates/two_factor/profile/profile.html:13 +msgid "Tokens will be generated by your YubiKey." +msgstr "" + +#: templates/two_factor/profile/profile.html:16 +msgid "Backup Tokens" +msgstr "" + +#: templates/two_factor/profile/profile.html:18 +msgid "" +"If you don't have any device with you, you can access\n" +" your account using backup tokens." +msgstr "" + +#: templates/two_factor/profile/profile.html:20 +#, python-format +msgid "" +"\n" +" You have only one backup token remaining.\n" +" " +msgid_plural "" +"\n" +" You have %(counter)s backup tokens remaining.\n" +" " +msgstr[0] "" +msgstr[1] "" + +#: templates/two_factor/profile/profile.html:27 +msgid "Show Codes" +msgstr "" + +#: templates/two_factor/profile/profile.html:29 +#: templates/two_factor/profile/profile.html:33 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/two_factor/profile/profile.html:30 +msgid "" +"However we strongly discourage you to do so, you can\n" +" also disable two-factor authentication for your account." +msgstr "" + +#: templates/two_factor/profile/profile.html:35 +msgid "" +"Two-factor authentication is not enabled for your\n" +" account. Enable two-factor authentication for enhanced account\n" +" security." +msgstr "" + +#: templates/two_factor/profile/profile.html:39 +msgid "Enable Two-Factor Authentication" +msgstr "" + +#: warpauth/templates/warpauth/profile.html:13 +msgid "information" +msgstr "" + +#: warpauth/templates/warpauth/profile.html:16 +#: warpauth/templates/warpauth/profile/change_password.html:34 +msgid "change_password" +msgstr "" + +#: warpauth/templates/warpauth/profile.html:19 +msgid "two_factor_authentication" +msgstr "" + +#: warpauth/templates/warpauth/profile/change_password.html:9 +#: warpauth/templates/warpauth/reset_password/change_password.html:9 +msgid "password_change_successful" +msgstr "" + +#: warpauth/templates/warpauth/profile/change_password.html:15 +msgid "current_password" +msgstr "" + +#: warpauth/templates/warpauth/profile/change_password.html:21 +msgid "new_password" +msgstr "" + +#: warpauth/templates/warpauth/profile/change_password.html:27 +#: warpauth/templates/warpauth/register/register.html:31 +#: warpauth/templates/warpauth/register/register.html:32 +#: warpauth/templates/warpauth/reset_password/change_password.html:21 +#: warpauth/templates/warpauth/reset_password/change_password.html:22 +msgid "confirm_password" +msgstr "" + +#: warpauth/templates/warpauth/profile/information.html:5 +msgid "user_data" +msgstr "" + +#: warpauth/templates/warpauth/profile/information.html:13 +msgid "information_changed_successfully" +msgstr "" + +#: warpauth/templates/warpauth/profile/information.html:20 +#: warpfood/templates/warpfood/edit_sheet.html:15 +msgid "submit" +msgstr "" + +#: warpauth/templates/warpauth/profile/information.html:29 +msgid "groups" +msgstr "" + +#: warpauth/templates/warpauth/register/activate.html:3 +msgid "activation" +msgstr "" + +#: warpauth/templates/warpauth/register/activate.html:11 +msgid "back" +msgstr "" + +#: warpauth/templates/warpauth/register/activate.html:14 +msgid "msg_account_successfully_activated" +msgstr "" + +#: warpauth/templates/warpauth/register/activate.html:17 +msgid "ok" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:3 +#: warpauth/templates/warpauth/register/resend_token.html:3 +msgid "registration" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:7 +msgid "msg_account_successfully_created" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:10 +msgid "Back" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:15 +msgid "please_register" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:25 +#: warpauth/templates/warpauth/register/register.html:26 +#: warpauth/templates/warpauth/register/resend_token.html:18 +#: warpauth/templates/warpauth/register/resend_token.html:19 +#: warpauth/templates/warpauth/reset_password/token_gen.html:15 +#: warpauth/templates/warpauth/reset_password/token_gen.html:16 +#: warpfood/templates/warpfood/view.html:80 +msgid "username" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:27 +#: warpauth/templates/warpauth/register/register.html:28 +#: warpauth/templates/warpauth/register/resend_token.html:20 +#: warpauth/templates/warpauth/register/resend_token.html:21 +#: warpauth/templates/warpauth/reset_password/token_gen.html:17 +#: warpauth/templates/warpauth/reset_password/token_gen.html:18 +msgid "email" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:29 +#: warpauth/templates/warpauth/register/register.html:30 +#: warpauth/templates/warpauth/reset_password/change_password.html:18 +#: warpauth/templates/warpauth/reset_password/change_password.html:19 +msgid "password" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:33 +msgid "register" +msgstr "" + +#: warpauth/templates/warpauth/register/resend_token.html:7 +msgid "error_processing_request" +msgstr "" + +#: warpauth/templates/warpauth/register/resend_token.html:11 +msgid "resend_token_successful" +msgstr "" + +#: warpauth/templates/warpauth/register/resend_token.html:16 +msgid "resend_token" +msgstr "" + +#: warpauth/templates/warpauth/register/resend_token.html:22 +msgid "proceed" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/change_password.html:3 +#: warpauth/templates/warpauth/reset_password/change_password.html:24 +#: warpauth/templates/warpauth/reset_password/token_gen.html:3 +msgid "reset_password" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/change_password.html:9 +msgid "redirect_within_5_sec_if_not_click" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/change_password.html:10 +msgid "here" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/change_password.html:16 +msgid "enter_new_password_for_user" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/token_gen.html:9 +msgid "msg_reset_email_sent" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/token_gen.html:14 +msgid "enter_email_address" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/token_gen.html:22 +#: warpauth/views/register.py:34 +msgid "err_invalid_email_format" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/token_gen.html:27 +msgid "Reset Password" +msgstr "" + +#: warpauth/util.py:5 +msgid "mail_subj_password_changed_recently" +msgstr "" + +#: warpauth/util.py:5 +msgid "mail_content_password_changed_recently" +msgstr "" + +#: warpauth/views/register.py:16 +#, python-format +msgid "https://infra.warpzone.ms/account/registration/activate/%(token)s" +msgstr "" + +#: warpauth/views/register.py:17 +msgid "Your registration for WarpInfra" +msgstr "" + +#: warpauth/views/register.py:37 +msgid "err_fill_all_fields" +msgstr "" + +#: warpauth/views/register.py:39 +msgid "err_invalid_username" +msgstr "" + +#: warpauth/views/register.py:41 warpauth/views/reset_password.py:57 +msgid "err_passwords_not_matching" +msgstr "" + +#: warpauth/views/register.py:64 +msgid "err_sending_mail" +msgstr "" + +#: warpauth/views/register.py:68 +msgid "err_username_not_available" +msgstr "" + +#: warpauth/views/register.py:81 +msgid "err_token_invalid" +msgstr "" + +#: warpauth/views/register.py:92 warpauth/views/register.py:95 +msgid "err_processing_request" +msgstr "" + +#: warpauth/views/reset_password.py:34 +msgid "mail_subj_reset_password_token" +msgstr "" + +#: warpauth/views/reset_password.py:34 +#, python-format +msgid "mail_content_reset_password_token %(link)s" +msgstr "" + +#: warpauth/views/reset_password.py:36 +msgid "err_sending_email" +msgstr "" + +#: warpauth/views/reset_password.py:68 +msgid "err_invalid_token" +msgstr "" + +#: warpfood/templates/warpfood/main.html:16 +msgid "create_food_sheet" +msgstr "" + +#: warpfood/templates/warpfood/main.html:25 +msgid "estimated_order_time" +msgstr "" + +#: warpfood/templates/warpfood/main.html:25 +msgid "pizza_service" +msgstr "" + +#: warpfood/templates/warpfood/main.html:25 +msgid "status" +msgstr "" + +#: warpfood/templates/warpfood/view.html:15 +msgid "homepage" +msgstr "" + +#: warpfood/templates/warpfood/view.html:16 +msgid "phone_number" +msgstr "" + +#: warpfood/templates/warpfood/view.html:17 +msgid "estimaged_order_time" +msgstr "" + +#: warpfood/templates/warpfood/view.html:19 +msgid "real_order_time" +msgstr "" + +#: warpfood/templates/warpfood/view.html:24 +msgid "edit" +msgstr "" + +#: warpfood/templates/warpfood/view.html:26 +msgid "close" +msgstr "" + +#: warpfood/templates/warpfood/view.html:28 +msgid "open" +msgstr "" + +#: warpfood/templates/warpfood/view.html:32 +msgid "ordered" +msgstr "" + +#: warpfood/templates/warpfood/view.html:34 +msgid "confirm" +msgstr "" + +#: warpfood/templates/warpfood/view.html:41 +msgid "order_sum" +msgstr "" + +#: warpfood/templates/warpfood/view.html:57 +msgid "choose_from_products" +msgstr "" + +#: warpfood/templates/warpfood/view.html:65 +msgid "order" +msgstr "" + +#: warpfood/templates/warpfood/view.html:73 +#, python-format +msgid "" +" this_sheet_was_ordered %(sheet.order_time | naturaltime)s by " +"%(sheet.order_user)s" +msgstr "" + +#: warpfood/templates/warpfood/view.html:81 +msgid "article" +msgstr "" + +#: warpfood/templates/warpfood/view.html:82 +msgid "size" +msgstr "" + +#: warpfood/templates/warpfood/view.html:83 +msgid "price" +msgstr "" + +#: warpfood/templates/warpfood/view.html:84 +msgid "comment" +msgstr "" + +#: warpfood/templates/warpfood/view.html:85 +msgid "paid" +msgstr "" + +#: warpfood/templates/warpfood/view.html:126 +msgid "product_list" +msgstr "" + +#: warpfood/templates/warpfood/view.html:162 +msgid "are_you_sure" +msgstr "" + +#: warpmain/templates/warpmain/about.html:5 warpzone/util.py:7 +msgid "about" +msgstr "" + +#: warpmain/templates/warpmain/about.html:7 +msgid "welcome_to_wz_internal" +msgstr "" + +#: warpmain/templates/warpmain/about.html:10 +msgid "about_text" +msgstr "" + +#: warpmain/templates/warpmain/about.html:14 +msgid "visit_us!" +msgstr "" + +#: warpmain/templates/warpmain/about.html:17 +msgid "license" +msgstr "" + +#: warpmain/templates/warpmain/about.html:19 +msgid "licenses" +msgstr "" + +#: warpmain/templates/warpmain/about.html:22 +msgid "support" +msgstr "" + +#: warpmain/templates/warpmain/about.html:23 +msgid "support_text" +msgstr "" + +#: warpmain/templates/warpmain/about.html:41 +msgid "open_source_licenses" +msgstr "" + +#: warpmain/templates/warpmain/main.html:7 +msgid "news" +msgstr "" + +#: warpmain/templates/warpmain/main.html:11 +msgid "add_news" +msgstr "" + +#: warpmain/templates/warpmain/main.html:20 +msgid "create" +msgstr "" + +#: warpmain/templates/warpmain/main.html:36 +msgid "created_by" +msgstr "" + +#: warppay/templates/warppay/main.html:6 +msgid "News" +msgstr "" + +#: warppay/templates/warppay/main.html:17 +msgid "Created by" +msgstr "" diff --git a/www/web/locale/en/LC_MESSAGES/django.po b/www/web/locale/en/LC_MESSAGES/django.po new file mode 100644 index 0000000..bcb9463 --- /dev/null +++ b/www/web/locale/en/LC_MESSAGES/django.po @@ -0,0 +1,560 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-09-23 12:32+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: templates/base.html:61 +msgid "logout" +msgstr "" + +#: templates/base.html:62 warpauth/templates/warpauth/profile.html.py:7 +msgid "profile_settings" +msgstr "" + +#: templates/base.html:65 +msgid "admin" +msgstr "" + +#: templates/base.html:70 warpfood/templates/warpfood/edit_sheet.html.py:6 +#: warpfood/templates/warpfood/main.html:6 +#: warpfood/templates/warpfood/view.html:6 warpzone/util.py:6 +msgid "pizza_sheet" +msgstr "" + +#: templates/two_factor/core/login.html:5 +msgid "login" +msgstr "" + +#: templates/two_factor/core/login.html:8 +msgid "Enter your credentials." +msgstr "" + +#: templates/two_factor/core/login.html:11 +msgid "" +"We are calling your phone right now, please enter the\n" +" digits you hear." +msgstr "" + +#: templates/two_factor/core/login.html:14 +msgid "" +"We sent you a text message, please enter the tokens we\n" +" sent." +msgstr "" + +#: templates/two_factor/core/login.html:17 +msgid "" +"Please enter the tokens generated by your token\n" +" generator." +msgstr "" + +#: templates/two_factor/core/login.html:21 +msgid "" +"Use this form for entering backup tokens for logging in.\n" +" These tokens have been generated for you to print and keep safe. " +"Please\n" +" enter one of these backup tokens to login to your account." +msgstr "" + +#: templates/two_factor/core/login.html:34 +msgid "Or, alternatively, use one of your backup phones:" +msgstr "" + +#: templates/two_factor/core/login.html:44 +msgid "As a last resort, you can use a backup token:" +msgstr "" + +#: templates/two_factor/core/login.html:47 +msgid "Use Backup Token" +msgstr "" + +#: templates/two_factor/core/login.html:54 +msgid "Forgot Password?" +msgstr "" + +#: templates/two_factor/core/login.html:55 +msgid "Register" +msgstr "" + +#: templates/two_factor/core/login.html:56 +msgid "Resend Activation Link" +msgstr "" + +#: templates/two_factor/profile/disable.html:5 +msgid "Disable Two-factor Authentication" +msgstr "" + +#: templates/two_factor/profile/disable.html:6 +msgid "" +"You are about to disable two-factor authentication. This\n" +" compromises your account security, are you sure?" +msgstr "" + +#: templates/two_factor/profile/disable.html:12 +msgid "Disable" +msgstr "" + +#: templates/two_factor/profile/profile.html:5 +msgid "Account Security" +msgstr "" + +#: templates/two_factor/profile/profile.html:9 +msgid "Tokens will be generated by your token generator." +msgstr "" + +#: templates/two_factor/profile/profile.html:11 +#, python-format +msgid "Primary method: %(primary)s" +msgstr "" + +#: templates/two_factor/profile/profile.html:13 +msgid "Tokens will be generated by your YubiKey." +msgstr "" + +#: templates/two_factor/profile/profile.html:16 +msgid "Backup Tokens" +msgstr "" + +#: templates/two_factor/profile/profile.html:18 +msgid "" +"If you don't have any device with you, you can access\n" +" your account using backup tokens." +msgstr "" + +#: templates/two_factor/profile/profile.html:20 +#, python-format +msgid "" +"\n" +" You have only one backup token remaining.\n" +" " +msgid_plural "" +"\n" +" You have %(counter)s backup tokens remaining.\n" +" " +msgstr[0] "" +msgstr[1] "" + +#: templates/two_factor/profile/profile.html:27 +msgid "Show Codes" +msgstr "" + +#: templates/two_factor/profile/profile.html:29 +#: templates/two_factor/profile/profile.html:33 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/two_factor/profile/profile.html:30 +msgid "" +"However we strongly discourage you to do so, you can\n" +" also disable two-factor authentication for your account." +msgstr "" + +#: templates/two_factor/profile/profile.html:35 +msgid "" +"Two-factor authentication is not enabled for your\n" +" account. Enable two-factor authentication for enhanced account\n" +" security." +msgstr "" + +#: templates/two_factor/profile/profile.html:39 +msgid "Enable Two-Factor Authentication" +msgstr "" + +#: warpauth/templates/warpauth/profile.html:13 +msgid "information" +msgstr "" + +#: warpauth/templates/warpauth/profile.html:16 +#: warpauth/templates/warpauth/profile/change_password.html:34 +msgid "change_password" +msgstr "" + +#: warpauth/templates/warpauth/profile.html:19 +msgid "two_factor_authentication" +msgstr "" + +#: warpauth/templates/warpauth/profile/change_password.html:9 +#: warpauth/templates/warpauth/reset_password/change_password.html:9 +msgid "password_change_successful" +msgstr "" + +#: warpauth/templates/warpauth/profile/change_password.html:15 +msgid "current_password" +msgstr "" + +#: warpauth/templates/warpauth/profile/change_password.html:21 +msgid "new_password" +msgstr "" + +#: warpauth/templates/warpauth/profile/change_password.html:27 +#: warpauth/templates/warpauth/register/register.html:31 +#: warpauth/templates/warpauth/register/register.html:32 +#: warpauth/templates/warpauth/reset_password/change_password.html:21 +#: warpauth/templates/warpauth/reset_password/change_password.html:22 +msgid "confirm_password" +msgstr "" + +#: warpauth/templates/warpauth/profile/information.html:5 +msgid "user_data" +msgstr "" + +#: warpauth/templates/warpauth/profile/information.html:13 +msgid "information_changed_successfully" +msgstr "" + +#: warpauth/templates/warpauth/profile/information.html:20 +#: warpfood/templates/warpfood/edit_sheet.html:15 +msgid "submit" +msgstr "" + +#: warpauth/templates/warpauth/profile/information.html:29 +msgid "groups" +msgstr "" + +#: warpauth/templates/warpauth/register/activate.html:3 +msgid "activation" +msgstr "" + +#: warpauth/templates/warpauth/register/activate.html:11 +msgid "back" +msgstr "" + +#: warpauth/templates/warpauth/register/activate.html:14 +msgid "msg_account_successfully_activated" +msgstr "" + +#: warpauth/templates/warpauth/register/activate.html:17 +msgid "ok" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:3 +#: warpauth/templates/warpauth/register/resend_token.html:3 +msgid "registration" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:7 +msgid "msg_account_successfully_created" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:10 +msgid "Back" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:15 +msgid "please_register" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:25 +#: warpauth/templates/warpauth/register/register.html:26 +#: warpauth/templates/warpauth/register/resend_token.html:18 +#: warpauth/templates/warpauth/register/resend_token.html:19 +#: warpauth/templates/warpauth/reset_password/token_gen.html:15 +#: warpauth/templates/warpauth/reset_password/token_gen.html:16 +#: warpfood/templates/warpfood/view.html:80 +msgid "username" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:27 +#: warpauth/templates/warpauth/register/register.html:28 +#: warpauth/templates/warpauth/register/resend_token.html:20 +#: warpauth/templates/warpauth/register/resend_token.html:21 +#: warpauth/templates/warpauth/reset_password/token_gen.html:17 +#: warpauth/templates/warpauth/reset_password/token_gen.html:18 +msgid "email" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:29 +#: warpauth/templates/warpauth/register/register.html:30 +#: warpauth/templates/warpauth/reset_password/change_password.html:18 +#: warpauth/templates/warpauth/reset_password/change_password.html:19 +msgid "password" +msgstr "" + +#: warpauth/templates/warpauth/register/register.html:33 +msgid "register" +msgstr "" + +#: warpauth/templates/warpauth/register/resend_token.html:7 +msgid "error_processing_request" +msgstr "" + +#: warpauth/templates/warpauth/register/resend_token.html:11 +msgid "resend_token_successful" +msgstr "" + +#: warpauth/templates/warpauth/register/resend_token.html:16 +msgid "resend_token" +msgstr "" + +#: warpauth/templates/warpauth/register/resend_token.html:22 +msgid "proceed" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/change_password.html:3 +#: warpauth/templates/warpauth/reset_password/change_password.html:24 +#: warpauth/templates/warpauth/reset_password/token_gen.html:3 +msgid "reset_password" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/change_password.html:9 +msgid "redirect_within_5_sec_if_not_click" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/change_password.html:10 +msgid "here" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/change_password.html:16 +msgid "enter_new_password_for_user" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/token_gen.html:9 +msgid "msg_reset_email_sent" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/token_gen.html:14 +msgid "enter_email_address" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/token_gen.html:22 +#: warpauth/views/register.py:34 +msgid "err_invalid_email_format" +msgstr "" + +#: warpauth/templates/warpauth/reset_password/token_gen.html:27 +msgid "Reset Password" +msgstr "" + +#: warpauth/util.py:5 +msgid "mail_subj_password_changed_recently" +msgstr "" + +#: warpauth/util.py:5 +msgid "mail_content_password_changed_recently" +msgstr "" + +#: warpauth/views/register.py:16 +#, python-format +msgid "https://infra.warpzone.ms/account/registration/activate/%(token)s" +msgstr "" + +#: warpauth/views/register.py:17 +msgid "Your registration for WarpInfra" +msgstr "" + +#: warpauth/views/register.py:37 +msgid "err_fill_all_fields" +msgstr "" + +#: warpauth/views/register.py:39 +msgid "err_invalid_username" +msgstr "" + +#: warpauth/views/register.py:41 warpauth/views/reset_password.py:57 +msgid "err_passwords_not_matching" +msgstr "" + +#: warpauth/views/register.py:64 +msgid "err_sending_mail" +msgstr "" + +#: warpauth/views/register.py:68 +msgid "err_username_not_available" +msgstr "" + +#: warpauth/views/register.py:81 +msgid "err_token_invalid" +msgstr "" + +#: warpauth/views/register.py:92 warpauth/views/register.py:95 +msgid "err_processing_request" +msgstr "" + +#: warpauth/views/reset_password.py:34 +msgid "mail_subj_reset_password_token" +msgstr "" + +#: warpauth/views/reset_password.py:34 +#, python-format +msgid "mail_content_reset_password_token %(link)s" +msgstr "" + +#: warpauth/views/reset_password.py:36 +msgid "err_sending_email" +msgstr "" + +#: warpauth/views/reset_password.py:68 +msgid "err_invalid_token" +msgstr "" + +#: warpfood/templates/warpfood/main.html:16 +msgid "create_food_sheet" +msgstr "" + +#: warpfood/templates/warpfood/main.html:25 +msgid "estimated_order_time" +msgstr "" + +#: warpfood/templates/warpfood/main.html:25 +msgid "pizza_service" +msgstr "" + +#: warpfood/templates/warpfood/main.html:25 +msgid "status" +msgstr "" + +#: warpfood/templates/warpfood/view.html:15 +msgid "homepage" +msgstr "" + +#: warpfood/templates/warpfood/view.html:16 +msgid "phone_number" +msgstr "" + +#: warpfood/templates/warpfood/view.html:17 +msgid "estimaged_order_time" +msgstr "" + +#: warpfood/templates/warpfood/view.html:19 +msgid "real_order_time" +msgstr "" + +#: warpfood/templates/warpfood/view.html:24 +msgid "edit" +msgstr "" + +#: warpfood/templates/warpfood/view.html:26 +msgid "close" +msgstr "" + +#: warpfood/templates/warpfood/view.html:28 +msgid "open" +msgstr "" + +#: warpfood/templates/warpfood/view.html:32 +msgid "ordered" +msgstr "" + +#: warpfood/templates/warpfood/view.html:34 +msgid "confirm" +msgstr "" + +#: warpfood/templates/warpfood/view.html:41 +msgid "order_sum" +msgstr "" + +#: warpfood/templates/warpfood/view.html:57 +msgid "choose_from_products" +msgstr "" + +#: warpfood/templates/warpfood/view.html:65 +msgid "order" +msgstr "" + +#: warpfood/templates/warpfood/view.html:73 +#, python-format +msgid "" +" this_sheet_was_ordered %(sheet.order_time | naturaltime)s by " +"%(sheet.order_user)s" +msgstr "" + +#: warpfood/templates/warpfood/view.html:81 +msgid "article" +msgstr "" + +#: warpfood/templates/warpfood/view.html:82 +msgid "size" +msgstr "" + +#: warpfood/templates/warpfood/view.html:83 +msgid "price" +msgstr "" + +#: warpfood/templates/warpfood/view.html:84 +msgid "comment" +msgstr "" + +#: warpfood/templates/warpfood/view.html:85 +msgid "paid" +msgstr "" + +#: warpfood/templates/warpfood/view.html:126 +msgid "product_list" +msgstr "" + +#: warpfood/templates/warpfood/view.html:162 +msgid "are_you_sure" +msgstr "" + +#: warpmain/templates/warpmain/about.html:5 warpzone/util.py:7 +msgid "about" +msgstr "" + +#: warpmain/templates/warpmain/about.html:7 +msgid "welcome_to_wz_internal" +msgstr "" + +#: warpmain/templates/warpmain/about.html:10 +msgid "about_text" +msgstr "" + +#: warpmain/templates/warpmain/about.html:14 +msgid "visit_us!" +msgstr "" + +#: warpmain/templates/warpmain/about.html:17 +msgid "license" +msgstr "" + +#: warpmain/templates/warpmain/about.html:19 +msgid "licenses" +msgstr "" + +#: warpmain/templates/warpmain/about.html:22 +msgid "support" +msgstr "" + +#: warpmain/templates/warpmain/about.html:23 +msgid "support_text" +msgstr "" + +#: warpmain/templates/warpmain/about.html:41 +msgid "open_source_licenses" +msgstr "" + +#: warpmain/templates/warpmain/main.html:7 +msgid "news" +msgstr "" + +#: warpmain/templates/warpmain/main.html:11 +msgid "add_news" +msgstr "" + +#: warpmain/templates/warpmain/main.html:20 +msgid "create" +msgstr "" + +#: warpmain/templates/warpmain/main.html:36 +msgid "created_by" +msgstr "" + +#: warppay/templates/warppay/main.html:6 +msgid "News" +msgstr "" + +#: warppay/templates/warppay/main.html:17 +msgid "Created by" +msgstr "" diff --git a/www/web/templates/base.html b/www/web/templates/base.html index e809a49..417c943 100644 --- a/www/web/templates/base.html +++ b/www/web/templates/base.html @@ -58,16 +58,16 @@ {% endif %} {% endfor %} </ul> - <ul class="nav navbar-nav navbar-right"><li><a href="/account/logout">{% trans "Logout" %}</a></li></ul> - <ul class="nav navbar-nav navbar-right"><li><a href="/profile">{% trans "Profile Settings" %}</a></li></ul> + <ul class="nav navbar-nav navbar-right"><li><a href="/account/logout">{% trans "logout" %}</a></li></ul> + <ul class="nav navbar-nav navbar-right"><li><a href="/account/profile">{% trans "profile_settings" %}</a></li></ul> {% if user.is_superuser %} - <ul class="nav navbar-nav navbar-right"><li><a href="/admin">{% trans "Admin" %}</a></li></ul> + <ul class="nav navbar-nav navbar-right"><li><a href="/admin">{% trans "admin" %}</a></li></ul> {% endif %} {% else %} <ul class="nav navbar-nav"> - <li><a href="/pizza">PizzaSheet</a></li> + <li><a href="/pizza">{% trans "pizza_sheet" %}</a></li> </ul> {% endif %} <ul class="nav navbar-nav"> @@ -93,7 +93,7 @@ <div class="container"> <div class="container"> <div class="navbar-header"> - <p class="text-muted"><small>Warpzone</small></p>{% get_current_language as LANGUAGE_CODE %} {{ LANGUAGE_CODE}} + <p class="text-muted"><small>Warpzone</small></p> <!-- {% get_current_language as LANGUAGE_CODE %} {{ LANGUAGE_CODE}} --> </div> </div> </div> diff --git a/www/web/templates/two_factor/core/login.html b/www/web/templates/two_factor/core/login.html index 63012d4..86fc622 100644 --- a/www/web/templates/two_factor/core/login.html +++ b/www/web/templates/two_factor/core/login.html @@ -2,7 +2,7 @@ {% load i18n two_factor %} {% block content %} - <h1>{% block title %}{% trans "Login" %}{% endblock %}</h1> + <h1>{% block title %}{% trans "login" %}{% endblock %}</h1> {% if wizard.steps.current == 'auth' %} <p>{% blocktrans %}Enter your credentials.{% endblocktrans %}</p> diff --git a/www/web/warpauth/models.py b/www/web/warpauth/models.py index 2d10969..1d4244a 100644 --- a/www/web/warpauth/models.py +++ b/www/web/warpauth/models.py @@ -22,7 +22,6 @@ class ActivationToken(models.Model): def __str__(self): return self.token - # LDAP diff --git a/www/web/warpauth/templates/warpauth/login.html b/www/web/warpauth/templates/warpauth/login.html deleted file mode 100644 index b166d40..0000000 --- a/www/web/warpauth/templates/warpauth/login.html +++ /dev/null @@ -1,26 +0,0 @@ -{% extends "base.html" %} -{% load i18n %} -{% block title %}{% trans "Login" %}{% endblock %} -{% block content %} - - <form class="form-signin" style="max-width: 330px; margin: 0 auto; padding: 40px"> - {% csrf_token %} - <h2 class="form-signin-heading">{% trans "Please sign in" %}</h2> - <label for="inputUser">{% trans "Username" %}</label> - <input name="username" type="user" id="inputUser" class="form-control" placeholder="{% trans "Username" %}" required autofocus> - - <label for="inputPassword" style="padding-top:10px;">{% trans "Password" %}</label> - <input name="password" type="password" id="inputPassword" class="form-control" placeholder="{% trans "Password" %}" required> - {% if error %} - <div class="alert alert-warning alert-dismissible" role="alert"> - <strong>{{ error }}</strong> - </div> - {% else %} - <br> - {% endif %} - <button class="btn btn-lg btn-primary btn-block" type="submit" formmethod="post" class="btn btn-default">{% trans "Sign in" %}</button> - <a class="btn" href="/reset_password">{% trans "Forgot Password?" %}</a><br> - <a class="btn" href="/register">{% trans "Register" %}</a> - </form> - -{% endblock %} diff --git a/www/web/warpauth/templates/warpauth/profile.html b/www/web/warpauth/templates/warpauth/profile.html index 5235e4a..a1b4b66 100644 --- a/www/web/warpauth/templates/warpauth/profile.html +++ b/www/web/warpauth/templates/warpauth/profile.html @@ -4,19 +4,19 @@ {% block content %} -<p class="lead">{% block title %}{% trans "Profile Settings" %}{% endblock %}</p><p></p> +<p class="lead">{% block title %}{% trans "profile_settings" %}{% endblock %}</p><p></p> <div> <ul class="nav nav-tabs" role="tablist"> <li role="presentation" class="active"> - <a href="#information" aria-controls="information" role="tab" data-toggle="tab">{% trans "Information" %}</a> + <a href="#information" aria-controls="information" role="tab" data-toggle="tab">{% trans "information" %}</a> </li> <li role="presentation"> - <a href="#change_passwd" aria-controls="change_passwd" role="tab" data-toggle="tab">{% trans "Change Password" %}</a> + <a href="#change_passwd" aria-controls="change_passwd" role="tab" data-toggle="tab">{% trans "change_password" %}</a> </li> <li role="presentation"> - <a href="/account/two_factor/">{% trans "Two Factor Authentication" %}</a> + <a href="/account/two_factor/">{% trans "two_factor_authentication" %}</a> </li> </ul> diff --git a/www/web/warpauth/templates/warpauth/profile/change_password.html b/www/web/warpauth/templates/warpauth/profile/change_password.html index f42f79e..24bc71d 100644 --- a/www/web/warpauth/templates/warpauth/profile/change_password.html +++ b/www/web/warpauth/templates/warpauth/profile/change_password.html @@ -6,32 +6,32 @@ <div class="alert alert-danger">{{ error_passwd }}</div><br> {% endif %} {% if success_passwd %} - <div class="alert alert-success">{% trans "Password changed successfully" %}</div><br> + <div class="alert alert-success">{% trans "password_change_successful" %}</div><br> {% endif %} - <form class="form-horizontal" method="POST" action="/profile/change_password/" role="form"> + <form class="form-horizontal" method="POST" action="/account/profile/change_password/" role="form"> {% csrf_token %} <div class="form-group"> - <label class="control-label col-sm-2 col-lg-2 " for="id_old_pw">{% trans "Current Password" %}</label> + <label class="control-label col-sm-2 col-lg-2 " for="id_old_pw">{% trans "current_password" %}</label> <div class=" col-sm-10 col-lg-10 "> <input class=" form-control" id="id_old_pw" name="old_pw" type="password" /> </div> </div> <div class="form-group"> - <label class="control-label col-sm-2 col-lg-2 " for="id_new_pw">{% trans "New Password" %}</label> + <label class="control-label col-sm-2 col-lg-2 " for="id_new_pw">{% trans "new_password" %}</label> <div class=" col-sm-10 col-lg-10 "> <input class=" form-control" id="id_new_pw" name="new_pw" type="password" /> </div> </div> <div class="form-group"> - <label class="control-label col-sm-2 col-lg-2 " for="id_new_pw_confirm">{% trans "Confirm Password" %}</label> + <label class="control-label col-sm-2 col-lg-2 " for="id_new_pw_confirm">{% trans "confirm_password" %}</label> <div class=" col-sm-10 col-lg-10 "> <input class=" form-control" id="id_new_pw_confirm" name="new_pw_confirm" type="password" /> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> - <button style="float: left" type="submit" formmethod="post" class="btn btn-primary">Change Password</button> + <button style="float: left" type="submit" formmethod="post" class="btn btn-primary">{% trans "change_password" %}</button> </div> </div> </form> diff --git a/www/web/warpauth/templates/warpauth/profile/information.html b/www/web/warpauth/templates/warpauth/profile/information.html index 4fd7fb1..6e5622a 100644 --- a/www/web/warpauth/templates/warpauth/profile/information.html +++ b/www/web/warpauth/templates/warpauth/profile/information.html @@ -2,7 +2,7 @@ {% load bootstrap %} <div> <br/> - <p class="lead">{% trans "User data" %}</p><p /> + <p class="lead">{% trans "user_data" %}</p><p /> <div class="panel panel-default"> <div class="panel-body"> @@ -10,14 +10,14 @@ <div class="alert alert-danger">{{ error_info }}</div><br> {% endif %} {% if success_info %} - <div class="alert alert-success">{% trans "Information changed successfully" %}</div><br> + <div class="alert alert-success">{% trans "information_changed_successfully" %}</div><br> {% endif %} - <form class="form-horizontal" action="/profile/change_information/" method="POST" role="form"> + <form class="form-horizontal" action="/account/profile/change_information/" method="POST" role="form"> {{ ldap_user_form | bootstrap_horizontal }} <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> {% csrf_token %} - <button style="float: left" type="submit" formmethod="post" class="btn btn-primary">{% trans "Submit" %}</button> + <button style="float: left" type="submit" formmethod="post" class="btn btn-primary">{% trans "submit" %}</button> </div> </div> </form> @@ -26,7 +26,7 @@ <div class="panel panel-default"> <div class="panel-body"> - <p class="lead">{% trans "Groups" %}</p><p /> + <p class="lead">{% trans "groups" %}</p><p /> <table class="table"> {% for ldap_group in ldap_groups %} <tr><td>{{ ldap_group }}</td></tr> diff --git a/www/web/warpauth/templates/warpauth/register/activate.html b/www/web/warpauth/templates/warpauth/register/activate.html index 9a8eddb..272fdbb 100644 --- a/www/web/warpauth/templates/warpauth/register/activate.html +++ b/www/web/warpauth/templates/warpauth/register/activate.html @@ -1,23 +1,19 @@ {% extends "base.html" %} {% load i18n %} -{% block title %}{% trans "Activation" %}{% endblock %} +{% block title %}{% trans "activation" %}{% endblock %} {% block content %} - {% if token_error %} + {% if error %} <div class="alert alert-danger"> - {% blocktrans %} - The Token you have provided is invalid. - {% endblocktrans %} + {{ error }} </div> <br> - <a class="btn" href="/">{% trans "Back" %}</a> + <a class="btn" href="/">{% trans "back" %}</a> {% else %} <div class="alert alert-success"> - {% blocktrans %} - Your Account was successfully activated. - {% endblocktrans %} - </div> + {% trans "msg_account_successfully_activated" %} + </div> <br> - <a class="btn" href="/">{% trans "Ok" %}</a> + <a class="btn" href="/">{% trans "ok" %}</a> {% endif %} {% endblock %} diff --git a/www/web/warpauth/templates/warpauth/register/register.html b/www/web/warpauth/templates/warpauth/register/register.html index ef7f4f0..927896d 100644 --- a/www/web/warpauth/templates/warpauth/register/register.html +++ b/www/web/warpauth/templates/warpauth/register/register.html @@ -1,12 +1,10 @@ {% extends "base.html" %} {% load i18n %} -{% block title %}{% trans "Registration" %}{% endblock %} +{% block title %}{% trans "registration" %}{% endblock %} {% block content %} {% if success %} <div class="alert alert-success"> - {% blocktrans %} - User successfully created. Please wait for your activation. - {% endblocktrans %} + {% trans "msg_account_successfully_created" %} </div> <br> <a class="btn" href="/">{% trans "Back" %}</a> @@ -14,35 +12,25 @@ <form class="form" style="max-width: 330px; margin: 0 auto; padding: 40px"> {% csrf_token %} - <h2 class="form">{% trans "Please register" %}</h2> + <h2 class="form">{% trans "please_register" %}</h2> {% if error %} <div class="alert alert-warning alert-dismissible" role="alert"> <strong> - {% if error == "username_not_available" %} - {% trans "This username is not available" %} - {% elif error == "passwords_did_not_match" %} - {% trans "The passwords did not match" %} - {% elif error == "invalid_email" %} - {% trans "The Email adress is invalid." %} - {% elif error == "fill_all_fields" %} - {% trans "Please fill all fields." %} - {% elif error == "invalid_username" %} - {% trans "Username can only contain alphanumeric characters and the underscore." %} - {% endif %} + {{ error }} </strong> </div> {% else %} <br> {% endif %} - <label for="inputUser">{% trans "Username" %}</label> - <input name="username" type="user" id="inputUser" class="form-control" placeholder="{% trans "Username" %}" required autofocus><br> - <label for="inputEmail">{% trans "Email" %}</label> - <input name="email" type="email" id="inputEmail" class="form-control" placeholder="{% trans "Email" %}" required><br> - <label for="inputPassword">{% trans "Password" %}</label> - <input name="password" type="password" id="inputPassword" class="form-control" placeholder="{% trans "Password" %}" required><br> - <label for="inputPassword2">{% trans "Confirm" %}</label> - <input name="password2" type="password" id="inputPassword2" class="form-control" placeholder="{% trans "Confirm" %}" required><br> - <button class="btn btn-lg btn-primary btn-block" type="submit" formmethod="post" class="btn btn-default">{% trans "Register" %}</button> + <label for="inputUser">{% trans "username" %}</label> + <input name="username" type="user" id="inputUser" class="form-control" placeholder="{% trans "username" %}" required autofocus><br> + <label for="inputEmail">{% trans "email" %}</label> + <input name="email" type="email" id="inputEmail" class="form-control" placeholder="{% trans "email" %}" required><br> + <label for="inputPassword">{% trans "password" %}</label> + <input name="password" type="password" id="inputPassword" class="form-control" placeholder="{% trans "password" %}" required><br> + <label for="inputPassword2">{% trans "confirm_password" %}</label> + <input name="password2" type="password" id="inputPassword2" class="form-control" placeholder="{% trans "confirm_password" %}" required><br> + <button class="btn btn-lg btn-primary btn-block" type="submit" formmethod="post" class="btn btn-default">{% trans "register" %}</button> </form> {% endif %} diff --git a/www/web/warpauth/templates/warpauth/register/resend_token.html b/www/web/warpauth/templates/warpauth/register/resend_token.html index 584d19e..3213cab 100644 --- a/www/web/warpauth/templates/warpauth/register/resend_token.html +++ b/www/web/warpauth/templates/warpauth/register/resend_token.html @@ -1,28 +1,24 @@ {% extends "base.html" %} {% load i18n %} -{% block title %}{% trans "Registration" %}{% endblock %} +{% block title %}{% trans "registration" %}{% endblock %} {% block content %} {% if error %} <div class="alert alert-danger"> - {% blocktrans %} - Error processing your request. Please contact the administrator. - {% endblocktrans %} + {% trans "error_processing_request" %} <!-- Error processing your request. Please contact the administrator. --> </div> {% elif success %} <div class="alert alert-success"> - {% blocktrans %} - Email resended - {% endblocktrans %} + {% trans "resend_token_successful" %} </div> {% endif %} <form class="form" style="max-width: 330px; margin: 0 auto; padding: 40px"> {% csrf_token %} - <h2 class="form">{% trans "Resend token" %}</h2> + <h2 class="form">{% trans "resend_token" %}</h2> <br> - <label for="inputUser">{% trans "Username" %}</label> - <input name="username" type="user" id="inputUser" class="form-control" placeholder="{% trans "Username" %}" required autofocus><br> - <label for="inputEmail">{% trans "Email" %}</label> - <input name="email" type="email" id="inputEmail" class="form-control" placeholder="{% trans "Email" %}" required><br> - <button class="btn btn-lg btn-primary btn-block" type="submit" formmethod="post" class="btn btn-default">{% trans "Resend" %}</button> + <label for="inputUser">{% trans "username" %}</label> + <input name="username" type="user" id="inputUser" class="form-control" placeholder="{% trans "username" %}" required autofocus><br> + <label for="inputEmail">{% trans "email" %}</label> + <input name="email" type="email" id="inputEmail" class="form-control" placeholder="{% trans "email" %}" required><br> + <button class="btn btn-lg btn-primary btn-block" type="submit" formmethod="post" class="btn btn-default">{% trans "proceed" %}</button> </form> {% endblock %} diff --git a/www/web/warpauth/templates/warpauth/reset_password/change_password.html b/www/web/warpauth/templates/warpauth/reset_password/change_password.html index cdeb539..e745328 100644 --- a/www/web/warpauth/templates/warpauth/reset_password/change_password.html +++ b/www/web/warpauth/templates/warpauth/reset_password/change_password.html @@ -1,31 +1,27 @@ {% extends "base.html" %} {% load i18n %} -{% block title %}{% trans "Reset Password" %}{% endblock %} +{% block title %}{% trans "reset_password" %}{% endblock %} {% block content %} {% if token_error %} - <h2 class="form-signin-heading">{% trans "The Token is invalid" %}</h2> - {% elif request.POST and not form_error%} + <div class="alert alert-danger">{{ error }}</div> + {% elif request.POST and not error %} <div class="alert alert-success"> - {% trans "Your password was sucessfully changed. You will be redirected within 5 seconds. If not please click" %} + {% trans "password_change_successful" %} {% trans "redirect_within_5_sec_if_not_click" %} <!-- Your password was sucessfully changed. You will be redirected within 5 seconds. If not please click --> <a href="/login">{% trans "here" %}</a> <meta http-equiv="refresh" content="5; url=/login"> </div> {% else %} <form class="form" style="max-width: 330px; margin: 0 auto; padding: 40px"> {% csrf_token %} - <h2 class="form-signin-heading">{% trans "Please enter your new Password for user" %} {{ username }}</h2> - <label for="inputPassword">{% trans "Password" %}</label> - <input name="password" type="password" id="inputPassword" class="form-control" placeholder="{% trans "Password" %}" required autofocus> - <label for="inputPassword2" style="padding-top:10px;">{% trans "Repeat Password" %}</label> - <input name="password2" type="password" id="inputPassword2" class="form-control" placeholder="{% trans "Repeat Password" %}" required> - {% if form_error == True %} - <div class="alert alert-warning alert-dismissible" role="alert"> - <strong>{% trans "Passwords did not match" %}</strong> - </div> - {% else %} - <br> - {% endif %} - <button class="btn btn-lg btn-primary btn-block" type="submit" formmethod="post" class="btn btn-default">{% trans "Reset Password" %}</button> + <h2 class="form-signin-heading">{% trans "enter_new_password_for_user" %} {{ username }}</h2> + + <label for="inputPassword">{% trans "password" %}</label> + <input name="password" type="password" id="inputPassword" class="form-control" placeholder="{% trans "password" %}" required autofocus> + + <label for="inputPassword2" style="padding-top:10px;">{% trans "confirm_password" %}</label> + <input name="password2" type="password" id="inputPassword2" class="form-control" placeholder="{% trans "confirm_password" %}" required> + + <button class="btn btn-lg btn-primary btn-block" type="submit" formmethod="post" class="btn btn-default">{% trans "reset_password" %}</button> </form> {% endif %} diff --git a/www/web/warpauth/templates/warpauth/reset_password/token_gen.html b/www/web/warpauth/templates/warpauth/reset_password/token_gen.html index c4c521b..a6e2b8a 100644 --- a/www/web/warpauth/templates/warpauth/reset_password/token_gen.html +++ b/www/web/warpauth/templates/warpauth/reset_password/token_gen.html @@ -1,25 +1,25 @@ {% extends "base.html" %} {% load i18n %} -{% block title %}{% trans "Reset Password" %}{% endblock %} +{% block title %}{% trans "reset_password" %}{% endblock %} {% block content %} {% if request.POST %} {% if error %} <div class="alert alert-danger">{{ error }}</div><br> {% else %} - <div class="alert alert-success">{% trans "If your information were right, you've got an Email" %}</div><br> + <div class="alert alert-success">{% trans "msg_reset_email_sent" %}</div><br> <!-- If_information were right, you've got an Email --> {% endif %} {% else %} <form class="form" style="max-width: 330px; margin: 0 auto; padding: 40px"> {% csrf_token %} - <h2 class="form-signin-heading">{% trans "Please enter your Email address" %}</h2> - <label for="inputUser" >{% trans "Username" %}</label> - <input name="username" type="text" id="inputPassword" class="form-control" placeholder="{% trans "Username" %}" required autofocus> - <label for="inputEmail" style="padding-top:10px;">{% trans "Email-Address" %}</label> - <input name="email" type="text" id="inputEmail" class="form-control" placeholder="{% trans "Email-Address" %}" required> + <h2 class="form-signin-heading">{% trans "enter_email_address" %}</h2> + <label for="inputUser" >{% trans "username" %}</label> + <input name="username" type="text" id="inputPassword" class="form-control" placeholder="{% trans "username" %}" required autofocus> + <label for="inputEmail" style="padding-top:10px;">{% trans "email" %}</label> + <input name="email" type="text" id="inputEmail" class="form-control" placeholder="{% trans "email" %}" required> {% if fail == True %} <div class="alert alert-warning alert-dismissible" role="alert"> - <strong>{% trans "Invalid email." %}</strong> + <strong>{% trans "err_invalid_email_format" %}</strong> </div> {% else %} <br> diff --git a/www/web/warpauth/urls.py b/www/web/warpauth/urls.py index acc3968..cfe293e 100644 --- a/www/web/warpauth/urls.py +++ b/www/web/warpauth/urls.py @@ -1,15 +1,9 @@ from django.conf.urls import include, url -from warpauth.views import login, reset_password, profile, register - -# -# Definition of all available URLS for accessing Functions integrated in WarpAuth -# - +from warpauth.views import logout, reset_password, profile, register urlpatterns = [ - # Authentication Pages url(r'', include('two_factor.urls', 'two_factor')), - url(r'^account/logout/$', login.logout_view, name='logout'), + url(r'^account/logout/$', logout.logout_view, name='logout'), url(r'^account/registration/$', register.register, name='register'), url(r'^account/registration/activate/(?P<token>\w+)/$', register.activate, name='activate'), url(r'^account/registration/resend/$', register.resend_token, name='resend_token'), @@ -17,9 +11,9 @@ urlpatterns = [ url(r'^account/reset_password/$', reset_password.gen_token, name='reset_password'), url(r'^account/reset_password/(?P<reset_hash>\w+)/$', reset_password.change_password, name='index'), - url(r'^profile/$', profile.index, name='index'), - url(r'^profile/change_password/$', profile.change_password, name='change_password'), - url(r'^profile/change_information/$', profile.change_information, name='change_information'), + url(r'^account/profile/$', profile.index, name='profile_index'), + url(r'^account/profile/change_password/$', profile.change_password, name='change_password'), + url(r'^account/profile/change_information/$', profile.change_information, name='change_information'), ] diff --git a/www/web/warpauth/util.py b/www/web/warpauth/util.py index 95af73d..5231308 100644 --- a/www/web/warpauth/util.py +++ b/www/web/warpauth/util.py @@ -1,10 +1,5 @@ from django.utils.translation import ugettext as _ -from warpzone.util import send_email - -pages = {'pages': [ - {"link": "pizza", "name": "PizzaSheet"}, - {"link": "about", "name": "About"}, -]} +from warpzone.util import send_email, page_context def send_password_change_notification(user): - send_email(user.email, _("Your password was changed"),_("Password changed recently")) + send_email(user.email, _("mail_subj_password_changed_recently"),_("mail_content_password_changed_recently")) diff --git a/www/web/warpauth/views/login.py b/www/web/warpauth/views/login.py deleted file mode 100644 index c59977d..0000000 --- a/www/web/warpauth/views/login.py +++ /dev/null @@ -1,38 +0,0 @@ -from django.shortcuts import render -from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseNotAllowed, HttpResponseNotFound -from django.contrib.auth import authenticate, login, logout -from django.shortcuts import redirect -from django.contrib.auth.decorators import login_required -from django.utils import translation -from warpauth.util import * -from django.utils.translation import ugettext as _ - -def login_view(request): - pages['page_title'] = "Login" - pages['body_text'] = "Login" - pages['fail'] = False - - if request.method == "POST": - username = request.POST['username'] - password = request.POST['password'] - user = authenticate(username=username, password=password) - if user is not None: - if user.is_active: - login(request, user) - - user_language = 'de_DE' - translation.activate(user_language) - request.session[translation.LANGUAGE_SESSION_KEY] = user_language - return redirect('/') - else: - pages['error'] = _("Your account is deactivated. Please contact an administrator.") - else: - if username != "" and password != "": - pages['error'] = _("Invalid email or password.") - - return HttpResponse(render(request, 'warpauth/login.html', pages)) - -@login_required(login_url='/account/login/', redirect_field_name=None) -def logout_view(request): - logout(request) - return redirect('/account/login/') diff --git a/www/web/warpauth/views/logout.py b/www/web/warpauth/views/logout.py new file mode 100644 index 0000000..5fb42f6 --- /dev/null +++ b/www/web/warpauth/views/logout.py @@ -0,0 +1,9 @@ +from django.contrib.auth import logout +from django.shortcuts import redirect +from django.contrib.auth.decorators import login_required +from django.conf import settings + +@login_required(login_url=settings.LOGIN_URL, redirect_field_name=None) +def logout_view(request): + logout(request) + return redirect('/account/login/') \ No newline at end of file diff --git a/www/web/warpauth/views/profile.py b/www/web/warpauth/views/profile.py index 82bc95b..7829ebc 100644 --- a/www/web/warpauth/views/profile.py +++ b/www/web/warpauth/views/profile.py @@ -8,6 +8,7 @@ from warpauth.ldap_connector import LDAPConnector from warpauth.models import LdapUser, LdapUserForm from warpauth.util import * import logging +from django.conf import settings ## # http://www.python-ldap.org/doc/html/ldap.html#ldap.LDAPObject @@ -16,30 +17,31 @@ import logging def setUserObject(request): - pages['ldap_groups'] = request.user.ldap_user.group_names - pages['ldap_user_form'] = LdapUserForm(instance=LdapUser.objects.get(uid=str(request.user))) + page_context['ldap_groups'] = request.user.ldap_user.group_names + page_context['ldap_user_form'] = LdapUserForm(instance=LdapUser.objects.get(uid=str(request.user))) + def clear_error_messages(): - pages["error_info"] = "" - pages["success_info"] = False - pages["error_passwd"] = "" - pages["success_passwd"] = False - pages["selected_tab"]="" + page_context["error_info"] = "" + page_context["success_info"] = False + page_context["error_passwd"] = "" + page_context["success_passwd"] = False + page_context["selected_tab"]="" -@login_required(login_url='/account/login/', redirect_field_name=None) +@login_required(login_url=settings.LOGIN_URL, redirect_field_name=None) def index(request): clear_error_messages() - pages['ldap_groups'] = request.user.ldap_user.group_names - pages['ldap_user_form'] = LdapUserForm(instance=LdapUser.objects.get(uid=str(request.user))) - return HttpResponse(render(request, 'warpauth/profile.html', pages)) + page_context['ldap_groups'] = request.user.ldap_user.group_names + page_context['ldap_user_form'] = LdapUserForm(instance=LdapUser.objects.get(uid=str(request.user))) + return HttpResponse(render(request, 'warpauth/profile.html', page_context)) -@login_required(login_url='/account/login/', redirect_field_name=None) +@login_required(login_url=settings.LOGIN_URL, redirect_field_name=None) def change_information(request): clear_error_messages() setUserObject(request) if request.method != 'POST': - return redirect("/profile") + return redirect("profile_index") user = LdapUser.objects.get(uid=str(request.user)) first_name = request.POST["first_name"] @@ -50,8 +52,8 @@ def change_information(request): try: f.clean(email) except ValidationError as e: - pages["error_info"] = "Invalid Email" - return HttpResponse(render(request, 'warpauth/profile.html', pages)) + page_context["error_info"] = "Invalid Email" + return HttpResponse(render(request, 'warpauth/profile.html', page_context)) cn = first_name + " " + last_name cn = cn.strip() if first_name == "": @@ -68,31 +70,31 @@ def change_information(request): user.card_id=card_id user.save() - pages["success_info"] = True + page_context["success_info"] = True setUserObject(request) - return HttpResponse(render(request, 'warpauth/profile.html', pages)) + return HttpResponse(render(request, 'warpauth/profile.html', page_context)) -@login_required(login_url='/account/login/', redirect_field_name=None) +@login_required(login_url=settings.LOGIN_URL, redirect_field_name=None) def change_password(request): clear_error_messages() - pages["selected_tab"]="#change_passwd" + page_context["selected_tab"]="#change_passwd" if request.method != 'POST': - return redirect("/profile") + return redirect("profile_index") print("old_pw" == "") if request.POST["old_pw"] == "" or request.POST["new_pw"] == "" or request.POST["new_pw_confirm"] == "": - pages["error_passwd"] = "Please fill in all fields" + page_context["error_passwd"] = "Please fill in all fields" elif request.POST["new_pw"] != request.POST["new_pw_confirm"]: - pages["error_passwd"] = "Password confirmation did not match" + page_context["error_passwd"] = "Password confirmation did not match" else: ldap_connector = LDAPConnector() ret = ldap_connector.change_user_password(request.user.ldap_user.dn, request.POST["old_pw"], request.POST["new_pw"]) if ret == -1: - pages["error_passwd"] = "Old password did not match" + page_context["error_passwd"] = "Old password did not match" else: send_password_change_notification(LdapUser.objects.get(uid=str(request.user))) - pages["success_passwd"] = True - pages['ldap_groups'] = request.user.ldap_user.group_names - pages['ldap_user_form'] = LdapUserForm(instance=LdapUser.objects.get(uid=str(request.user))) - return HttpResponse(render(request, 'warpauth/profile.html', pages)) + page_context["success_passwd"] = True + page_context['ldap_groups'] = request.user.ldap_user.group_names + page_context['ldap_user_form'] = LdapUserForm(instance=LdapUser.objects.get(uid=str(request.user))) + return HttpResponse(render(request, 'warpauth/profile.html', page_context)) diff --git a/www/web/warpauth/views/register.py b/www/web/warpauth/views/register.py index 708885c..3cc32f6 100644 --- a/www/web/warpauth/views/register.py +++ b/www/web/warpauth/views/register.py @@ -13,31 +13,32 @@ from django.core.exceptions import ObjectDoesNotExist def send_token(token): - email_content = _("https://infra.warpzone.ms/activate/%(token)s") % {'token': token.token } + email_content = _("https://infra.warpzone.ms/account/registration/activate/%(token)s") % {'token': token.token } ret = send_email(token.email, _("Your registration for WarpInfra"), email_content ) return ret - + + def register(request): pages['success'] = False - pages['error'] = False if request.method == "POST": username = request.POST['username'] password = request.POST['password'] password2 = request.POST['password2'] email = request.POST['email'] + f = forms.EmailField() try: f.clean(email) except ValidationError as e: - pages["error"] = "invalid_email" + pages["error"] = _("err_invalid_email_format") if username == "" or email == "" or password == "" or password2 == "": - pages['error'] = "fill_all_fields" + pages['error'] = _("err_fill_all_fields") elif not re.search(r'^\w+$', username): - pages['error'] = "invalid_username" + pages['error'] = _("err_invalid_username") elif password != password2: - pages['error'] = "passwords_did_not_match" + pages['error'] = _("err_passwords_not_matching") elif not pages["error"]: u = LdapUser.objects.filter(uid=username) if u.count() == 0: @@ -60,17 +61,16 @@ def register(request): token.save() ret = send_token(token) if not ret: - pages["error"] = "Error while sending the email. Please contact the administrator." + pages["error"] = _("err_sending_mail") #Error while sending the email. Please contact the administrator. else: pages['success'] = True else: - pages['error'] = "username_not_available" + pages['error'] = _("err_username_not_available") return HttpResponse(render(request, 'warpauth/register/register.html', pages)) def activate(request, token=None): - pages["token_error"] = False try: activation_token = ActivationToken.objects.get(token=token) group = LdapGroup.objects.filter(name="active").get() @@ -78,22 +78,20 @@ def activate(request, token=None): group.save() activation_token.delete() except ObjectDoesNotExist: - pages["token_error"] = True + pages["error"] = _("err_token_invalid") return HttpResponse(render(request, 'warpauth/register/activate.html', pages)) def resend_token(request): - pages["error"] = False - pages["success"] = False if request.method == "POST": try: token = ActivationToken.objects.get(user=request.POST["username"]) if token.email == request.POST["email"]: ret = send_token(token) if not ret: - pages["error"] = True + pages["error"] = _("err_processing_request") pages["success"] = True except ObjectDoesNotExist: - pages["error"] = True + pages["error"] = _("err_processing_request") return HttpResponse(render(request, 'warpauth/register/resend_token.html', pages)) diff --git a/www/web/warpauth/views/reset_password.py b/www/web/warpauth/views/reset_password.py index 4be1cbb..15b6d79 100644 --- a/www/web/warpauth/views/reset_password.py +++ b/www/web/warpauth/views/reset_password.py @@ -21,8 +21,6 @@ from warpzone.settings import PW_RESET_TOKEN_LIFETIME # def gen_token(request): - logger = logging.getLogger("reset_password") - pages["error"] = "" if request.POST: try: usr = LdapUser.objects.get(uid=request.POST["username"]) @@ -32,25 +30,21 @@ def gen_token(request): p.email = usr.email p.hash = hashlib.sha1(os.urandom(128)).hexdigest() p.save() - email_content = _("https://infra.warpzone.ms/account/reset_password/%(hash)s") % {'hash': p.hash} - ret = send_email(p.email, "Requested Password Reset", email_content ) + link = "https://infra.warpzone.ms/account/reset_password/%(hash)s" % {'hash': p.hash} + ret = send_email(p.email, _("mail_subj_reset_password_token"), _("mail_content_reset_password_token %(link)s") % {'link': link} ) if not ret: - pages["error"] = "Error while sending the email. Please contact the administrator." - logger.info("Success for %s", usr.uid) + page_context["error"] = _("err_sending_email") except Exception as e: - print(e) - logger.error("Failed for %s with %s", request.POST["username"], e) + pass else: pass - return HttpResponse(render(request, 'warpauth/reset_password/token_gen.html', pages)) + return HttpResponse(render(request, 'warpauth/reset_password/token_gen.html', page_context)) # # Function to change user password with a reset Token -# ToDo: Implement Email after password change # def change_password(request, reset_hash=None): - pages["token_error"] = False try: pw_reset_token = PasswordResetToken.objects.get(hash=reset_hash) time_difference = datetime.datetime.now() - pw_reset_token.created @@ -60,7 +54,7 @@ def change_password(request, reset_hash=None): if request.POST: if request.POST["password"] != request.POST["password2"] or request.POST["password"] == "": - pages["form_error"] = True + page_context["error"] = _("err_passwords_not_matching") else: user = LdapUser.objects.get(uid=pw_reset_token.user) ldap_connector = LDAPConnector() @@ -68,10 +62,10 @@ def change_password(request, reset_hash=None): pw_reset_token.delete() send_password_change_notification(user) else: - pages["username"] = pw_reset_token.user + page_context["username"] = pw_reset_token.user except (ObjectDoesNotExist, ValidationError) as e: - print(e) - pages["token_error"] = True + page_context["error"] = _("err_invalid_token") + page_context["token_error"] = True - return HttpResponse(render(request, 'warpauth/reset_password/change_password.html', pages)) + return HttpResponse(render(request, 'warpauth/reset_password/change_password.html', page_context)) diff --git a/www/web/warpfood/models.py b/www/web/warpfood/models.py index adbb526..44e28e7 100644 --- a/www/web/warpfood/models.py +++ b/www/web/warpfood/models.py @@ -48,6 +48,7 @@ class FoodSheet(models.Model): + class FoodOrder(models.Model): sheet = models.ForeignKey(FoodSheet, on_delete=models.CASCADE) user = models.CharField(max_length=100,null=True) diff --git a/www/web/warpfood/templates/warpfood/edit_sheet.html b/www/web/warpfood/templates/warpfood/edit_sheet.html new file mode 100644 index 0000000..0d215f0 --- /dev/null +++ b/www/web/warpfood/templates/warpfood/edit_sheet.html @@ -0,0 +1,21 @@ +{% extends "base.html" %} + +{% load i18n %} +{% load humanize %} +{% load bootstrap %} +{% block title %}{% trans "pizza_sheet" %}{% endblock %} +{% block content %} + <div class="panel panel-default"> + <div class="panel-body"> + <form class="form-horizontal" method="POST" role="form"> + {{ edit_sheet|bootstrap_horizontal }} + <div class="form-group"> + <div class="col-sm-offset-2 col-sm-10"> + {% csrf_token %} + <button style="float: left" type="submit" formmethod="post" class="btn btn-primary">{% trans "submit" %}</button> + </div> + </div> + </form> + </div> + </div> +{% endblock %} \ No newline at end of file diff --git a/www/web/warpfood/templates/warpfood/main.html b/www/web/warpfood/templates/warpfood/main.html index 557716f..cd38869 100644 --- a/www/web/warpfood/templates/warpfood/main.html +++ b/www/web/warpfood/templates/warpfood/main.html @@ -3,7 +3,7 @@ {% load i18n %} {% load humanize %} {% load bootstrap %} -{% block title %}{% trans "Pizza Sheet" %}{% endblock %} +{% block title %}{% trans "pizza_sheet" %}{% endblock %} {% block content %} {% if user.is_authenticated %} <div class="panel panel-default"> @@ -13,7 +13,7 @@ <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> {% csrf_token %} - <button style="float: left" type="submit" formmethod="post" class="btn btn-primary">{% trans "Create Food Sheet" %}</button> + <button style="float: left" type="submit" formmethod="post" class="btn btn-primary">{% trans "create_food_sheet" %}</button> </div> </div> </form> @@ -22,7 +22,7 @@ {% endif %} <table class="table table-striped table-hover"> <thead> - <tr><th>{% trans "Estimated Order Time" %}</th><th>{% trans "Pizza Service" %}</th><th>{% trans "Status" %}</th></tr> + <tr><th>{% trans "estimated_order_time" %}</th><th>{% trans "pizza_service" %}</th><th>{% trans "status" %}</th></tr> </thead> <tbody> {% for sheet in food_sheets %} @@ -31,7 +31,7 @@ <td>{{ sheet.food_service }}</td> <td> {% if sheet.order_time %} - <span class="btn btn-xs btn-info">Ordered</span> + <span class="btn btn-xs btn-info">Ordered {{ sheet.order_time | naturaltime }}</span> {% elif sheet.closed %} <span class="btn btn-xs btn-danger">Closed</span> {% else %} diff --git a/www/web/warpfood/templates/warpfood/view.html b/www/web/warpfood/templates/warpfood/view.html index 5eaa011..10471ab 100644 --- a/www/web/warpfood/templates/warpfood/view.html +++ b/www/web/warpfood/templates/warpfood/view.html @@ -3,7 +3,7 @@ {% load i18n %} {% load bootstrap %} {% load humanize %} -{% block title %}{% trans "Pizza Sheet" %}{% endblock %} +{% block title %}{% trans "pizza_sheet" %}{% endblock %} {% block content %} <div class="panel panel-default"> @@ -11,28 +11,34 @@ <div class="row"> <div class="col-md-8"> <h4>{{ sheet.food_service.name }}</h4> - <small><a href="{{ sheet.food_service.homepage }}">{{ sheet.food_service.homepage }}</a></small><br/><br/> - <small>{{ sheet.food_service.phone }}</small><br/><br/> - <small>{{ sheet.estimated_order_time | naturaltime }}</small><br/><br/> + + <small>{% trans "homepage" %}: <a href="{{ sheet.food_service.homepage }}" target="_blank">{{ sheet.food_service.homepage }}</a></small><br/><br/> + <small>{% trans "phone_number" %}: {{ sheet.food_service.phone }}</small><br/><br/> + <small>{% trans "estimaged_order_time" %}: {{ sheet.estimated_order_time | naturaltime }}</small><br/><br/> + {% if sheet.order_time %} + <small>{% trans "real_order_time" %}: {{ sheet.order_time | naturaltime }}</small><br/> + {% endif %} + <br/> + {% if user.is_authenticated %} - <a href="" class="btn {% if sheet.order_time %} disabled {% endif %} btn-primary">{% trans "Edit Sheet" %}</a> + <a href="/pizza/edit_sheet/{{ sheet.id }}" class="btn {% if sheet.order_time %} disabled {% endif %} btn-primary">{% trans "edit" %}</a> {% if not sheet.closed %} - <a href="/pizza/toggle_sheet/{{ sheet.id }}" class="btn btn-danger {% if sheet.order_time %} disabled {% endif %}">{% trans "Close Sheet" %}</a> + <a href="/pizza/toggle_sheet/{{ sheet.id }}" class="btn btn-danger {% if sheet.order_time %} disabled {% endif %}">{% trans "close" %}</a> {% else %} - <a href="/pizza/toggle_sheet/{{ sheet.id }}" class="btn btn-success {% if sheet.order_time %} disabled {% endif %}">{% trans "Open Sheet" %}</a> + <a href="/pizza/toggle_sheet/{{ sheet.id }}" class="btn btn-success {% if sheet.order_time %} disabled {% endif %}">{% trans "open" %}</a> {% endif %} {% if sheet.closed %} {% if sheet.order_time %} - <a href="/pizza/sheet_ordered/{{ sheet.id }}" class="btn btn-success disabled">{% trans "Ordered" %}</a> + <a href="/pizza/sheet_ordered/{{ sheet.id }}" class="btn btn-success disabled">{% trans "ordered" %}</a> {% else %} - <a href="/pizza/sheet_ordered/{{ sheet.id }}" class="btn btn-danger" id="confirm">{% trans "Confirm ordered" %}</a> + <a href="/pizza/sheet_ordered/{{ sheet.id }}" class="btn btn-danger" id="confirm">{% trans "confirm" %}</a> {% endif %} <!-- <a href="/pizza/export_sheet/{{ sheet.id }}" class="btn btn-info">Print order</a> --> {% endif %} {% endif %} </div> <div class="col-md-4"> - <h4>{% trans "Order Sum" %}: {{ order_sum }} €</h4> + <h4>{% trans "order_sum" %}: {{ order_sum }} €</h4> </div> </div> @@ -48,7 +54,7 @@ <form class="form-horizontal" method="POST" role="form"> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> - <a class="btn btn-success" data-toggle="modal" data-target="#product_modal">{% trans "Choose from Products" %}</a><br> + <a class="btn btn-success" data-toggle="modal" data-target="#product_modal">{% trans "choose_from_products" %}</a><br> </div> </div> @@ -56,7 +62,7 @@ <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> {% csrf_token %} - <button style="float: left" type="submit" formmethod="post" class="btn btn-primary">{% trans "Order" %}</button> + <button style="float: left" type="submit" formmethod="post" class="btn btn-primary">{% trans "order" %}</button> </div> </div> </form> @@ -64,19 +70,19 @@ </div> {% endif %} {% if sheet.order_time %} - <div class="alert alert-success">{% trans "This sheet was ordered " %}{{sheet.order_time | naturaltime }} by {{ sheet.order_user}}</div> + <div class="alert alert-success">{% blocktrans %} this_sheet_was_ordered {{sheet.order_time | naturaltime }} by {{ sheet.order_user}}{% endblocktrans %}</div> {% endif %} <table class="table table-striped table-hover"> <thead> <tr> - <th>{% trans "User Name" %}</th> - <th>{% trans "Article" %}</th> - <th>{% trans "Size" %}</th> - <th>{% trans "Price" %}</th> - <th>{% trans "Comment" %}</th> - <th>{% trans "Paid" %}</th> + <th>{% trans "username" %}</th> + <th>{% trans "article" %}</th> + <th>{% trans "size" %}</th> + <th>{% trans "price" %}</th> + <th>{% trans "comment" %}</th> + <th>{% trans "paid" %}</th> </tr> </thead> <tbody> @@ -117,7 +123,7 @@ <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="label_product_modal">{% trans "Product List" %}</h4> + <h4 class="modal-title" id="label_product_modal">{% trans "product_list" %}</h4> </div> <div class="modal-body"> <div> @@ -153,7 +159,7 @@ <script> $('#confirm').click(function (e) { e.preventDefault(); - bootbox.confirm("{% trans "Are you sure?" %}", function (result) { + bootbox.confirm("{% trans "are_you_sure" %}", function (result) { if(result) { window.location = "/pizza/sheet_ordered/{{ sheet.id }}"; diff --git a/www/web/warpfood/tests.py b/www/web/warpfood/tests.py deleted file mode 100644 index 7ce503c..0000000 --- a/www/web/warpfood/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/www/web/warpfood/urls.py b/www/web/warpfood/urls.py index 5c3f21c..436265b 100644 --- a/www/web/warpfood/urls.py +++ b/www/web/warpfood/urls.py @@ -6,6 +6,7 @@ urlpatterns = [ url(r'^pizza/$', index, name='warp_foot'), url(r'^pizza/view/(?P<sheet_id>\w+)/$', view, name='warp_foot_view'), url(r'^pizza/toggle_sheet/(?P<sheet_id>\w+)/$', toggle_closed, name='warp_foot_toggle_closed'), + url(r'^pizza/edit_sheet/(?P<sheet_id>\w+)/$', edit_sheet, name='warp_foot_toggle_closed'), url(r'^pizza/toggle_paid/(?P<order_id>\w+)/$', toggle_paid, name='warp_foot_toggle_paid'), url(r'^pizza/sheet_ordered/(?P<sheet_id>\w+)/$', sheet_ordered, name='warp_foot_toggle_paid'), # url(r'^pizza/export_sheet/(?P<sheet_id>\w+)/$', export_sheet, name='warp_foot_export_sheet'), diff --git a/www/web/warpfood/util.py b/www/web/warpfood/util.py index 3afe878..f4183ee 100644 --- a/www/web/warpfood/util.py +++ b/www/web/warpfood/util.py @@ -1,5 +1,6 @@ from django.contrib.humanize.templatetags.humanize import intcomma -pages = {'pages': [ + +page_context = {'pages': [ {"link":"pizza", "name": "PizzaSheet"}, {"link":"about", "name": "About"}, {"link":"logout", "name": "Logout"}, diff --git a/www/web/warpfood/views.py b/www/web/warpfood/views.py index 0ff5db2..1059345 100644 --- a/www/web/warpfood/views.py +++ b/www/web/warpfood/views.py @@ -6,65 +6,85 @@ from warpfood.util import * from warpfood.models import * from reportlab.pdfgen import canvas from django.http import HttpResponse - -#from reportlab.platypus import SimpleDocTemplate -#from reportlab.platypus.tables import Table, TableStyle, colors -from datetime import datetime +from datetime import datetime +from django.conf import settings # -# ToDo: Hidden Field Paid default value to false # ToDo: Insert TemplateTag for Euro Format -# ToDo: Implement Datetime Field for Estimated Order Time # ToDo: Username with hidden Field. Maybe insecure # + def index(request): - pages['error'] = "" - - if request.method == 'POST': - form = FoodSheetForm(request.POST) - if form.is_valid(): - form.save() - else: - pages['error'] = form.errors - pages['food_sheets'] = FoodSheet.objects.order_by("-id") - pages['pizza_services'] = FoodService.objects.all() - pages['create_food_sheet'] = FoodSheetForm() - return HttpResponse(render(request, 'warpfood/main.html', pages)) + form = FoodSheetForm() + if request.user.is_superuser: + if request.method == 'POST': + form = FoodSheetForm(request.POST) + if form.is_valid(): + form.save() + + page_context['pizza_services'] = FoodService.objects.all() + page_context['create_food_sheet'] = form + page_context['food_sheets'] = FoodSheet.objects.order_by("-id") + return HttpResponse(render(request, 'warpfood/main.html', page_context)) + +def edit_sheet(request, sheet_id=0): + if sheet_id != 0 and request.user.is_superuser: + try: + sheet = FoodSheet.objects.get(id=sheet_id) + except Exception as e: + return redirect("/") + + form = FoodSheetForm(instance=sheet) + if request.method == 'POST': + form = FoodSheetForm(request.POST,instance=sheet) + if form.is_valid(): + form.save() + return redirect("/pizza/view/%s" % sheet_id) + page_context['edit_sheet'] = form + return HttpResponse(render(request, 'warpfood/edit_sheet.html', page_context)) + + return redirect("/") + def view(request, sheet_id=0): - pages['error'] = "" + form = None + page_context['error'] = "" if request.method == 'POST': form = FoodOrderForm(request.POST) if form.is_valid(): form.save() - else: - pages['error'] = form.errors + form = None if sheet_id != 0: sheet = FoodSheet.objects.get(id=sheet_id) - pages['sheet'] = sheet - pages['orders'] = FoodOrder.objects.filter(sheet=sheet) + page_context['sheet'] = sheet + page_context['orders'] = FoodOrder.objects.filter(sheet=sheet) total_price = 0 - for order in pages['orders']: + for order in page_context['orders']: total_price += order.price - pages['order_sum'] = format_euro(total_price) - if request.user.is_authenticated(): - pages['create_food_order'] = FoodOrderForm(initial={'sheet': sheet_id, 'user': request.user, 'paid': False}) + page_context['order_sum'] = format_euro(total_price) + + if not form: + if request.user.is_authenticated(): + page_context['create_food_order'] = FoodOrderForm(initial={'sheet': sheet_id, 'user': request.user, 'paid': False}) + else: + page_context['create_food_order'] = FoodOrderFormExt(initial={'sheet': sheet_id, 'paid': False}) else: - pages['create_food_order'] = FoodOrderFormExt(initial={'sheet': sheet_id, 'paid': False}) + page_context['create_food_order'] = form products = FoodProduct.objects.filter(food_service=sheet.food_service) - pages['food_products'] = {} + page_context['food_products'] = {} for product in products: - if product.food_category.name not in pages['food_products']: - pages['food_products'][product.food_category.name] = [] - pages['food_products'][product.food_category.name].append(product) + if product.food_category.name not in page_context['food_products']: + page_context['food_products'][product.food_category.name] = [] + page_context['food_products'][product.food_category.name].append(product) + + return HttpResponse(render(request, 'warpfood/view.html', page_context)) - return HttpResponse(render(request, 'warpfood/view.html', pages)) -@login_required(login_url='/login/', redirect_field_name=None) +@login_required(login_url=settings.LOGIN_URL, redirect_field_name=None) def toggle_closed(request, sheet_id=0): if sheet_id != 0: sheet = FoodSheet.objects.get(id=sheet_id) @@ -79,9 +99,10 @@ def toggle_paid(request, order_id=0): order = FoodOrder.objects.get(id=order_id) order.paid = not order.paid order.save() - return redirect("/pizza/view/%s" % (order.sheet.id)) + return redirect("/pizza/view/%s" % order.sheet.id) -@login_required(login_url='/login/', redirect_field_name=None) + +@login_required(login_url=settings.LOGIN_URL, redirect_field_name=None) def sheet_ordered(request, sheet_id=0): if sheet_id != 0: sheet = FoodSheet.objects.get(id=sheet_id) @@ -89,45 +110,4 @@ def sheet_ordered(request, sheet_id=0): sheet.order_user = str(request.user) sheet.save() - return redirect("/pizza/view/%s" % (sheet_id)) - -""" -@login_required(login_url='/login/', redirect_field_name=None) -def export_sheet(request, sheet_id=0): - response = HttpResponse(content_type='application/pdf') - sheet = FoodSheet.objects.get(id=sheet_id) - response['Content-Disposition'] = 'attachment; filename="abbc.pdf"' - cm = 2.54 - elements = [] - - doc = SimpleDocTemplate(response, showBoundary=1) - - - info_table = Table((sheet.pizza_service.name,sheet.pizza_service.phone), - [70,70], - [24] - ) - - data = [ - ('User', 'Article', 'Size', 'Price', 'Comment', 'Paid'), - ] - - for order in FoodOrder.objects.filter(sheet=sheet): - data.append(('', order.article, order.size, order.price, '', order.paid)) - - pizza_table = Table(data, - [70,70,70,70,70,70], - [24, 16,16] - ) - - t.setStyle( - TableStyle([ - ('GRID', (1,1), (-2,-2), 0.25, colors.red), - ('BOX', (0,0), (-1,-1), 0.25, colors.blue, None, (2,2,1)), - ]) - ) - - story = [info_table,pizza_table] - doc.build(story) - return response -""" \ No newline at end of file + return redirect("/pizza/view/%s" % sheet_id) diff --git a/www/web/warpmain/templates/warpmain/about.html b/www/web/warpmain/templates/warpmain/about.html index 7b106a3..d2f527f 100644 --- a/www/web/warpmain/templates/warpmain/about.html +++ b/www/web/warpmain/templates/warpmain/about.html @@ -2,28 +2,28 @@ {% load i18n %} {% block content %} - <h2>{% block title %}{% trans "About" %}{% endblock %}</h2> + <h2>{% block title %}{% trans "about" %}{% endblock %}</h2> - <p class="lead">Welcome to Warpzone Internal</p> + <p class="lead">{% trans "welcome_to_wz_internal" %}</p> <p class="text-justify"> <img class="img-responsive" style="margin-left: 100px; display: inline; float:right" src="/media/warpzone_medium.png"> - Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + {% trans "about_text" %} </p> <a href="http://www.warpzone.ms/" target="_blank" class="btn btn-default btn-default"> - <span class="glyphicon glyphicon-home" aria-hidden="true"></span> {% trans "Visit us!" %} + <span class="glyphicon glyphicon-home" aria-hidden="true"></span> {% trans "visit_us!" %} </a> - <h3>License</h3> + <h3>{% trans "license" %}</h3> <button data-toggle="modal" data-target="#Modal" class="btn btn-default"> - <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span> Licenses + <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span> {% trans "licenses" %} </button> - <h3>Support</h3> - <p>{% trans "If you have any questions about this software, feel free to contact me or one of the coders club:"%}</p> - <a href="mailto:dresen@itsecteam.ms" style="text-decoration: none;"> + <h3>{% trans "support" %}</h3> + <p>{% trans "support_text"%}</p> + <a href="mailto:info@draysen.de" style="text-decoration: none;"> <button type="button" class="btn btn-default"> - <span class="glyphicon glyphicon-envelope" aria-hidden="true"></span> dresen@itsecteam.ms + <span class="glyphicon glyphicon-envelope" aria-hidden="true"></span> info@draysen.de </button> </a> <br> @@ -33,21 +33,17 @@ <img height="40px" src="/media/django_logo.gif"> <div class="modal fade" id="Modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> - <div class="modal-dialog modal-lg" role="document" "> + <div class="modal-dialog modal-lg" role="document" > <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="myModalLabel">Open Source Licenses</h4> + <h4 class="modal-title" id="myModalLabel">{% trans "open_source_licenses" %}</h4> </div> <div class="modal-body"> <h3>django</h3><br> <pre>{% include "licenses/django.txt" %}</pre> </div> - <div class="modal-body"> - <h3>chart.js</h3><br> - <pre>{% include "licenses/chart_js.txt" %}</pre> - </div> </div> </div> </div> diff --git a/www/web/warpmain/templates/warpmain/admin/dashboard.html b/www/web/warpmain/templates/warpmain/admin/dashboard.html deleted file mode 100644 index 0914eaf..0000000 --- a/www/web/warpmain/templates/warpmain/admin/dashboard.html +++ /dev/null @@ -1,6 +0,0 @@ -{% extends "base.html" %} - -{% block content %} - - HAllo -{% endblock %} \ No newline at end of file diff --git a/www/web/warpmain/templates/warpmain/admin/news.html b/www/web/warpmain/templates/warpmain/admin/news.html deleted file mode 100644 index ca145db..0000000 --- a/www/web/warpmain/templates/warpmain/admin/news.html +++ /dev/null @@ -1,32 +0,0 @@ -{% extends "base.html" %} -{% load humanize %} -{% load i18n %} -{% load bootstrap %} -{% block content %} - <div class="panel panel-default"> - <div class="panel-body"> - <form class="form-horizontal" method="POST" role="form"> - {{ create_news_form | bootstrap_horizontal }} - <div class="form-group"> - <div class="col-sm-offset-2 col-sm-10"> - {% csrf_token %} - <button style="float: left" type="submit" formmethod="post" class="btn btn-primary">{% trans "Create News" %}</button> - </div> - </div> - </form> - </div> - </div> - {% for news in news_list %} - <div class="panel panel-primary"> - <div class="panel-heading"> - <span class="lead">{{ news.title }}</span> - </div> - <div class="panel-body"> - {{ news.message }} - </div> - <div class="panel-footer"> - {% trans "Created by" %} {{ news.user }} {{ news.created | naturaltime }} - </div> - </div> - {% endfor %} -{% endblock %} diff --git a/www/web/warpmain/templates/warpmain/main.html b/www/web/warpmain/templates/warpmain/main.html index 5a036cd..0ab1630 100644 --- a/www/web/warpmain/templates/warpmain/main.html +++ b/www/web/warpmain/templates/warpmain/main.html @@ -1,20 +1,39 @@ {% extends "base.html" %} {% load humanize %} +{% load bootstrap %} {% load i18n %} {% block content %} - <h2>{% block title %}{% trans "News" %}{% endblock %}</h2> +<h2>{% block title %}{% trans "news" %}{% endblock %}</h2> +{% if user.is_superuser %} + <br/> + <button class="btn btn-success" data-toggle="collapse" data-target="#add_news"><span class="glyphicon glyphicon-plus"></span> {% trans "add_news" %}</button> + <br/><br/> + <div class="panel panel-default"> + <div class="panel-body collapse {{ collapse }}" id="add_news"> + <form class="form-horizontal" method="POST" role="form"> + {{ create_news_form | bootstrap_horizontal }} + <div class="form-group"> + <div class="col-sm-offset-2 col-sm-10"> + {% csrf_token %} + <button style="float: left" type="submit" formmethod="post" class="btn btn-primary">{% trans "create" %}</button> + </div> + </div> + </form> + </div> + </div> + {% endif %} {% for news in news_list %} <div class="panel panel-primary"> <div class="panel-heading"> - <span class="lead">{{ news.title }}</span> + <span class="lead">{{ news.title }}</span><div class="pull-right"><a href="/news/delete/{{ news.id }}" class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span></a></div> </div> <div class="panel-body"> {{ news.message }} </div> <div class="panel-footer"> - {% trans "Created by" %} {{ news.user }} {{ news.created | naturaltime }} + {% trans "created_by" %} {{ news.user }} {{ news.created | naturaltime }} </div> </div> {% endfor %} diff --git a/www/web/warpmain/tests.py b/www/web/warpmain/tests.py deleted file mode 100644 index 7ce503c..0000000 --- a/www/web/warpmain/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/www/web/warpmain/urls.py b/www/web/warpmain/urls.py index e856de4..84f7794 100644 --- a/www/web/warpmain/urls.py +++ b/www/web/warpmain/urls.py @@ -1,16 +1,11 @@ from django.conf.urls import url -from warpmain.views import main -from warpmain.views.admin import dashboard, news +from warpmain.views import * # ToDo: Use name tag of URL for Page Title urlpatterns = [ - url(r'^$', main.index, name='News'), - - url(r'^about/$', main.about, name='About'), - url(r'^administration/$', dashboard.index, name='admin_dashboard'), - url(r'^administration/news/$', news.news, name='admin_news'), - + url(r'^$', index, name='News'), + url(r'^about/$', about, name='About'), + url(r'^news/delete/(?P<news_id>\d+)/$', delete_news, name='News delete'), ] - diff --git a/www/web/warpmain/views.py b/www/web/warpmain/views.py new file mode 100644 index 0000000..0e32748 --- /dev/null +++ b/www/web/warpmain/views.py @@ -0,0 +1,44 @@ +from warpauth.util import * +from django.conf import settings +from django.http import HttpResponse +from warpmain.models import News, NewsForm +from django.shortcuts import render, redirect +from django.contrib.auth.decorators import login_required + + +@login_required(login_url=settings.LOGIN_URL, redirect_field_name=None) +def index(request, news_id=0): + news_form = None + if request.user.is_superuser: + if request.method == "POST": + news_form = NewsForm(request.POST) + if news_form.is_valid(): + news = news_form.save() + news.user = request.user.ldap_username + news.save() + return redirect("News") + else: + page_context['collapse'] = "in" + else: + news_form = NewsForm() + if news_id != 0: + news_form = NewsForm(News.objects.get(id=news_id)) + + page_context['create_news_form'] = news_form + page_context['news_list'] = News.objects.order_by("-created") + return HttpResponse(render(request, 'warpmain/main.html', page_context)) + + +def about(request): + return HttpResponse(render(request, 'warpmain/about.html', page_context)) + + +@login_required(login_url=settings.LOGIN_URL, redirect_field_name=None) +def delete_news(request, news_id=0): + if request.user.is_superuser: + try: + News.objects.get(id=news_id).delete() + except: + pass + + return redirect("News") diff --git a/www/web/warpmain/views/__init__.py b/www/web/warpmain/views/__init__.py deleted file mode 100644 index 9847ec9..0000000 --- a/www/web/warpmain/views/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__author__ = 'chris' diff --git a/www/web/warpmain/views/admin/__init__.py b/www/web/warpmain/views/admin/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/www/web/warpmain/views/admin/dashboard.py b/www/web/warpmain/views/admin/dashboard.py deleted file mode 100644 index ece7aa5..0000000 --- a/www/web/warpmain/views/admin/dashboard.py +++ /dev/null @@ -1,10 +0,0 @@ -from django.shortcuts import render -from django.http import HttpResponse -from django.contrib.auth.decorators import login_required -from warpauth.util import * - - -@login_required(login_url='/login/', redirect_field_name=None) -def index(request): - return HttpResponse(render(request, 'warpmain/admin/dashboard.html', pages)) - diff --git a/www/web/warpmain/views/admin/news.py b/www/web/warpmain/views/admin/news.py deleted file mode 100644 index f0a11dc..0000000 --- a/www/web/warpmain/views/admin/news.py +++ /dev/null @@ -1,31 +0,0 @@ -from django.shortcuts import render, redirect -from django.http import HttpResponse -from django.contrib.auth.decorators import login_required -from warpauth.util import * -from warpmain.models import News, NewsForm - -# ToDo: Not ready yet - -@login_required(login_url='/login/', redirect_field_name=None) -def news(request, news_id=0): - if request.method == "POST": - news_form = NewsForm(request.POST) - if news_form.is_valid(): - news = news_form.save() - news.user = request.user.ldap_username - news.save() - return redirect("/administration/news/") - else: - pages['create_news_form'] = news_form - - else: - pages['news_list'] = News.objects.order_by("created") - pages['create_news_form'] = NewsForm() - if news_id != 0: - pages['create_news_form'] = NewsForm(News.objects.get(id=news_id)) - - return HttpResponse(render(request, 'warpmain/admin/news.html', pages)) - -@login_required(login_url='/login/', redirect_field_name=None) -def news_delete(request, news_id=0): - pass \ No newline at end of file diff --git a/www/web/warpmain/views/main.py b/www/web/warpmain/views/main.py deleted file mode 100644 index 3c44ab0..0000000 --- a/www/web/warpmain/views/main.py +++ /dev/null @@ -1,14 +0,0 @@ -from django.shortcuts import render -from django.http import HttpResponse -from django.contrib.auth.decorators import login_required -from warpauth.util import * -from warpmain.models import News - - -@login_required(login_url='/account/login/', redirect_field_name=None) -def index(request): - pages['news_list'] = News.objects.order_by("created") - return HttpResponse(render(request, 'warpmain/main.html', pages)) - -def about(request): - return HttpResponse(render(request, 'warpmain/about.html', pages)) diff --git a/www/web/warpzone/settings.py b/www/web/warpzone/settings.py index 4828319..2b30396 100644 --- a/www/web/warpzone/settings.py +++ b/www/web/warpzone/settings.py @@ -129,7 +129,13 @@ DATABASE_ROUTERS = ['ldapdb.router.Router'] # Internationalization # https://docs.djangoproject.com/en/1.8/topics/i18n/ -LANGUAGE_CODE = 'en-us' +LANGUAGE_CODE = 'de' + +LANGUAGES = ( + ('de', 'German'), + ('en', 'English'), +) + TIME_ZONE = 'Europe/Berlin' USE_I18N = True USE_L10N = True diff --git a/www/web/warpzone/urls.py b/www/web/warpzone/urls.py index c268fba..18030ad 100644 --- a/www/web/warpzone/urls.py +++ b/www/web/warpzone/urls.py @@ -9,5 +9,5 @@ urlpatterns = [ url(r'^', include('warpmain.urls')), url(r'^', include('warpauth.urls')), url(r'^', include('warpfood.urls')), - # url(r'^', include('warppay.urls')), + # url(r'^', include('warppay.urls')), ] diff --git a/www/web/warpzone/util.py b/www/web/warpzone/util.py index d865050..2efb422 100644 --- a/www/web/warpzone/util.py +++ b/www/web/warpzone/util.py @@ -1,5 +1,11 @@ from django.core.mail import send_mail from django.conf import settings +from django.utils.translation import ugettext as _ + +page_context = {'pages': [ + {"link": "pizza", "name": _("pizza_sheet")}, + {"link": "about", "name": _("about")}, +]} def send_email(to_address, subject, content): try: @@ -15,5 +21,3 @@ def send_email(to_address, subject, content): print(e) return False - - -- GitLab