diff --git a/Changelog b/Changelog index 11d2443f..cb3d23fa 100644 --- a/Changelog +++ b/Changelog @@ -1,10 +1,22 @@ -Next Release +Next release: + * Bugfix: [dcl, hosting] Fix Stripe js error in confirm payment page + * #3847: [ungleich] change text 'hosting products' -> 'our products' + * #3829: [dcl] Handle landing login fail in payment page itself + * #3794: [dcl, hosting] Update email styles + * #3828: [dcl, hosting] invoice period set to show monthly subscription + * #3838: [hosting] restyle signup/login/password reset/password pages +1.2.6: 2017-10-10 + * Bugfix: [dcl] Refactor and optimize images, links in glasfaser page + * Bugfix: [dcl] Fix email not being sent issue +1.2.5: 2017-10-10 * #3785: [hosting] update 'my bills' page design * Bugfix: [hosting] card details input form alignment fix * #3823: [hosting] favicon link fixed + * #3844: [dcl] Add Glasfaser page for advertisement + 1.2.4: 2017-10-02 * #3780: [hosting] Store VM details locally - * #3764: [hosting] Show cancelled VMs' invoices + * #3764: [hosting] Show cancelled VMs' invoices * #3736: [dcl] Refactor the place where we compute the VM price * #3730: [dcl] Refactor price parameter passed in the DCL flow * #3807: [dcl] Remove PricingView as it is no more used @@ -16,7 +28,7 @@ Next Release * #3808: [dcl] Order confirmation page redesign 1.2.3: 2017-09-25 * #3484: [dcl, hosting] Refactored account activation, password reset, VM order and cancellation email - * #3731: [dcl, hosting] Added cdist ssh key handler + * #3731: [dcl, hosting] Added cdist ssh key handler * #3628: [dcl] on hosting, VM is created at credit card info submit * #3772: [dcl] Updated hosting app billing into monthly subscription and added new text and translations * #3786: [hosting] Redesigned the hosting invoice and order-confirmation page @@ -47,8 +59,8 @@ Next Release * #3765: [hosting] Text fix Your SSH Keys to My SSH Keys * #3639: [datacenterlight] Added navbar menu after payment page on landing * #3735: [hosting] Increased modal width and modal button width - * #3709: Activated Text Plugin by default for the Page Title Text, enabled tag text management - * #3768: [datacenterlight, hosting] Fixed missing DE translation + * #3709: Activated Text Plugin by default for the Page Title Text, enabled <title> tag text management + * #3768: [datacenterlight, hosting] Fixed missing DE translation * #3678: [datacenterlight, hosting] Removed Lato font files 1.1.1: 2017-08-29 * #3709: [datacenterlight] Added faq tos cms template @@ -93,7 +105,7 @@ Next Release 1.0.22: 2017-07-30 * #3593: [datacenterlight] Removed underbars between social icons in index * #3509: [datacenterlight, hosting] Made navbar transparent and removed mobile navbar bug in login/signup/reset-password - * #3592: [datacenterlight] Changed “Order Now” button text to “Continue/weiter” + * #3592: [datacenterlight] Changed “Order Now” button text to “Continue/weiter” * #3579: [datacenterlight] Removed “blinks” on click on navbar menus * #3577: [datacenterlight] Added backend CPU, RAM, SSD fields validation * #3615: [datacenterlight] Decoupled landing VM templates from OpenNebula @@ -104,7 +116,7 @@ Next Release * #3629: [datacenterlight] Fixed navbar language switching bug 1.0.21: 2017-07-21 * #3591: [datacenterlight, payment] Fixed card holder name to appear on Confirm Order page - * #3558: [datacenterlight] Changed font family and background color for header + * #3558: [datacenterlight] Changed font family and background color for header * #3581: [datacenterlight] Lead font weight change * #3584: [all] Add flag is_superuser=True in MyUserManager 1.0.20: 2017-07-18 @@ -176,14 +188,14 @@ Next Release 1.0.5: 2017-06-06 * [all] General cleanup * [datacenterlight] Add German translations - * [datacenterlight] Change beta access to subscriptions - * [hosting] Add German translations + * [datacenterlight] Change beta access to subscriptions + * [hosting] Add German translations * [blog] Add German translation for header * [opennebula_api] Improve testing, add ssh key functions * [opennebula_api] Remove template views - * [datacenterlight] Allow user to have multiple ssh keys + * [datacenterlight] Allow user to have multiple ssh keys * [datacenterlight] Changed stripe.js v2 to v3 - * [datacenterlight] Added support for stripe payment errors on current user language + * [datacenterlight] Added support for stripe payment errors on current user language 1.0.4: 2017-06-05 * [all] Added new Domains to accept 1.0.3: 2017-06-02 @@ -195,6 +207,3 @@ Next Release * [datacenterlight] Fix initially shown price 1.0.0: 2017-05-25 * Initial stable release - - Next: - [datacenterlight] Fixed credit card input issue diff --git a/alplora/locale/de/LC_MESSAGES/django.po b/alplora/locale/de/LC_MESSAGES/django.po index c39a4595..616ec68d 100644 --- a/alplora/locale/de/LC_MESSAGES/django.po +++ b/alplora/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-30 13:47+0000\n" +"POT-Creation-Date: 2017-10-10 21:35+0530\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" @@ -18,137 +18,99 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: alplora/templates/alplora/contact.html:6 msgid "New message" msgstr "Neue Nachricht" -#: alplora/templates/alplora/contact.html:13 msgid "Name:" msgstr "Name:" -#: alplora/templates/alplora/contact.html:15 msgid "What is your name ?" msgstr "Was ist Dein Name?" -#: alplora/templates/alplora/contact.html:19 msgid "From:" msgstr "Von:" -#: alplora/templates/alplora/contact.html:21 msgid "You email" msgstr "Deine Email" -#: alplora/templates/alplora/contact.html:25 msgid "Message:" msgstr "Nachricht:" -#: alplora/templates/alplora/contact.html:27 msgid "Leave us your message" msgstr "Schreibe hier Deine Nachricht" -#: alplora/templates/alplora/contact.html:32 msgid "Close" msgstr "schliessen" -#: alplora/templates/alplora/contact.html:33 msgid "Send message" msgstr "Nachricht senden" -#: alplora/templates/alplora/contact_success.html:6 msgid "Message Sent" msgstr "Nachricht gesendet" -#: alplora/templates/alplora/contact_success.html:9 msgid "Thank you, we will contact you as soon as possible" msgstr "Dankeschön! Wir melden uns sobald wie möglich!" -#: alplora/templates/alplora/index.html:13 msgid "Find your animal anywhere, anytime" msgstr "Finde deine Tiere" -#: alplora/templates/alplora/index.html:99 -#: alplora/templates/alplora/index.html:463 msgid "About" msgstr "Über" -#: alplora/templates/alplora/index.html:102 -#: alplora/templates/alplora/index.html:248 -#: alplora/templates/alplora/index.html:469 msgid "Why Alplora?" msgstr "Warum Alplora?" -#: alplora/templates/alplora/index.html:105 -#: alplora/templates/alplora/index.html:466 msgid "Usecase" msgstr "" -#: alplora/templates/alplora/index.html:108 -#: alplora/templates/alplora/index.html:358 msgid "Testimonials" msgstr "Referenzen" -#: alplora/templates/alplora/index.html:111 -#: alplora/templates/alplora/index.html:423 -#: alplora/templates/alplora/index.html:477 msgid "Contact" msgstr "Kontakt" -#: alplora/templates/alplora/index.html:114 msgid "Login" msgstr "Login" -#: alplora/templates/alplora/index.html:137 msgid "Find your herd anytime, anywhere" msgstr "Finde deine Herde jederzeit und überall" -#: alplora/templates/alplora/index.html:138 msgid "Perfect fit for Swiss Alps" msgstr "Perfekt für die Schweizer Alpen" -#: alplora/templates/alplora/index.html:163 msgid "What is Alplora?" msgstr "Was ist Alplora?" -#: alplora/templates/alplora/index.html:164 msgid "" "Alplora is an animal tracker made for outdoor grazing animals in Swiss Alps." msgstr "" "Alplora ist ein Sender, der speziell für Weidetiere in den Schweizer Alpen " "entwickelt wurde." -#: alplora/templates/alplora/index.html:165 msgid "Alplora is just like a cattle bell, but much better." msgstr "Alplora ist wie eine Kuhglocke, nur viel besser." -#: alplora/templates/alplora/index.html:174 msgid "LOST" msgstr "VERLOREN" -#: alplora/templates/alplora/index.html:176 msgid "When an animal gets separated from the herd and is lost." msgstr "Wenn ein Tier sich von der Herde absondert und verloren geht." -#: alplora/templates/alplora/index.html:184 msgid "WOLF" msgstr "WOLF" -#: alplora/templates/alplora/index.html:186 msgid "When a wolf gets close to the herd." msgstr "Wenn ein Wolf sich der Herde nähert." -#: alplora/templates/alplora/index.html:193 msgid "INJURED" msgstr "VERLETZT" -#: alplora/templates/alplora/index.html:195 msgid "When one of the animals is hurt." msgstr "Wenn eins der Tiere verletzt ist." -#: alplora/templates/alplora/index.html:205 msgid "How does Alplora track my animals?" msgstr "Wie kann Alplora meine Tiere verfolgen und ausfindig machen ?" -#: alplora/templates/alplora/index.html:206 msgid "" "Each animal will be wearing a small tracker,<P></P>and the tracker will be " "sending a signal every 30 to 60 minutes." @@ -156,33 +118,27 @@ msgstr "" "Jedes Tier wird einen kleinen Sender tragen, <P></P> welcher alle 30 bis 60 " "Minuten ein Signal senden wird." -#: alplora/templates/alplora/index.html:215 msgid "Access app" msgstr "Zugang zur App" -#: alplora/templates/alplora/index.html:217 msgid "" "You can see the animal locations on a map by logging into our Alplora app." msgstr "" "Du kannst den Standort deiner Tiere jederzeit auf einer Karte verfolgen, " "indem du dich in unsere Alplora App einloggst." -#: alplora/templates/alplora/index.html:225 msgid "Get an alarm" msgstr "Erhalte ein Warnsignal" -#: alplora/templates/alplora/index.html:227 msgid "" "When certain signals for danger are detected, Alplora sends an alarm to you." msgstr "" "Wenn Anzeichen von Gefahr bestehen, sendet dir die Alplora App einen " "Warnsignal." -#: alplora/templates/alplora/index.html:235 msgid "Find your animal" msgstr "Finde deine Tiere" -#: alplora/templates/alplora/index.html:238 msgid "" "You can locate the animal in trouble on the realtime map and can take " "actions for keeping the animal safe." @@ -190,11 +146,9 @@ msgstr "" "Du kannst dein Tier in Notsituationen auf einer Echtzeit-Karte lokalisieren " "und hast die Möglichkeit es in Sicherheit zu bringen." -#: alplora/templates/alplora/index.html:255 msgid "Perfect fit for Swiss mountains" msgstr "Perfekt für die Schweizer Alpen" -#: alplora/templates/alplora/index.html:257 msgid "" "Alplora is made and tested for Swiss Alps. It is a perfect fit for Swiss " "environment." @@ -202,11 +156,9 @@ msgstr "" "Alplora wurde speziell für die Schweizer Alpen entwickelt und vor Ort " "getestet. Das Produkt passt perfekt in die Schweiz!" -#: alplora/templates/alplora/index.html:263 msgid "Energy efficient" msgstr "Energieeffizient" -#: alplora/templates/alplora/index.html:265 msgid "" "Alplora uses the latest wireless technology, our batteries last the whole " "alp season." @@ -214,11 +166,9 @@ msgstr "" "Alplora arbeitet mit den neuesten Technologien, so dass der Akku die gesamte " "Alpsaison überdauert." -#: alplora/templates/alplora/index.html:271 msgid "Made with love" msgstr "Mit Liebe gemacht" -#: alplora/templates/alplora/index.html:273 msgid "" "With a lot of love and respect for Swiss agriculture and nature, Alplora is " "made by a Swiss company." @@ -226,61 +176,49 @@ msgstr "" "Alplora wurde mit viel Liebe und Respekt für die Schweizer Natur und " "Landwirtschaft von einer Schweizer Firma entwickelt." -#: alplora/templates/alplora/index.html:285 msgid "Who needs Alplora?" msgstr "Wer benötigt Alplora?" -#: alplora/templates/alplora/index.html:301 msgid " Are your animals..." msgstr "Sind deine Tiere..." -#: alplora/templates/alplora/index.html:304 msgid "sheep, goats, cows or llamas living freely in the Alps?" msgstr "Schafe, Ziegen, Kühe oder Lamas, die frei in den Alpen leben?" -#: alplora/templates/alplora/index.html:306 msgid "wearing bells?" msgstr "solche, die Glocken tragen?" -#: alplora/templates/alplora/index.html:308 msgid "" "sometimes getting confused and going too far away from where they are " "supposed to be?" msgstr "" "manchmal verwirrt und entfernen sich zu weit von ihrem vorgesehenen Standort?" -#: alplora/templates/alplora/index.html:332 msgid "Do you..." msgstr "Möchtest du..." -#: alplora/templates/alplora/index.html:335 msgid "have animals which are staying outdoor during some time of the year?" msgstr "" "deine Tiere, die eine längere Zeit im Jahr unbeobachtet Draussen verbringen, " "schützen und überwachen können?" -#: alplora/templates/alplora/index.html:337 msgid "want to get an alarm when your animal is hurt, or in danger?" msgstr "" "alarmiert werden, wenn sich eines deiner Tiere verletzt oder in Gefahr " "befindet ?" -#: alplora/templates/alplora/index.html:339 msgid "want to see where your animals are on your cell phone map?" msgstr "" "mit deinem Smartphone auf einer Karte sehen können, wo sich deine Tiere " "befinden? " -#: alplora/templates/alplora/index.html:341 msgid "want to make sure 24/7 that your animals are safe?" msgstr "" "sicherstellen, dass sich deine Tiere rund um die Uhr in Sicherheit befinden?" -#: alplora/templates/alplora/index.html:359 msgid "What our customers say" msgstr "" -#: alplora/templates/alplora/index.html:379 msgid "" "“Alplora is an innovation in looking after my cows. I can check where my " "cows have been in the higher mountain all day while doing other works at the " @@ -292,11 +230,9 @@ msgstr "" "selben Zeit andereDinge auf dem Hof unten im Dorf erledigen. Dank Alplora " "kann ich meinen Kühenmehr Sicherheit gewährleisten." -#: alplora/templates/alplora/index.html:382 msgid "Farmer in canton Glarus" msgstr "Bauern im Kanton Glarus" -#: alplora/templates/alplora/index.html:388 msgid "" "\"Alplora is exactly what I was waiting for. I have lost my sheep almost " "every year. Finally I have a way when I want to locate them.\"" @@ -305,11 +241,9 @@ msgstr "" "Schafe fastjedes Jahr aus den Augen verloren. Nun habe ich endlich die " "Möglichkeit, sie zulokalisieren.\"" -#: alplora/templates/alplora/index.html:391 msgid "Owner of 50 sheep " msgstr "Besitzerin von 50 Schafen" -#: alplora/templates/alplora/index.html:397 msgid "" "\"I have a farm down all the way down in the village and y goats are always " "freely grazing in the Alps. There are times that I am worried about them but " @@ -323,30 +257,23 @@ msgstr "" "noch um meineanderen Tiere kümmern muss. Mit Alplora kann ich nun ohne " "Probleme beides tun.\"" -#: alplora/templates/alplora/index.html:401 msgid "Farmer at Berner Oberland" msgstr "Bauer aus dem Berner Oberland" -#: alplora/templates/alplora/index.html:418 msgid "How do I get Alplora?" msgstr "Wie kriege ich Zugriff zu Alplora?" -#: alplora/templates/alplora/index.html:419 msgid "Click the button below and leave us your contact." msgstr "Klicke unten auf Kontakt und hinterlasse uns deine Angaben." -#: alplora/templates/alplora/index.html:419 msgid "Team Alplora will contact you and visit you with a tracking device." msgstr "Das Alpora Team wird sich mit Dir schnellstens in Verbindung setzen." -#: alplora/templates/alplora/index.html:459 msgid "Home" msgstr "Startseite" -#: alplora/templates/alplora/index.html:472 msgid "Testimonials " msgstr "Referenzen" -#: alplora/views.py:24 msgid "Message Successfully Sent" msgstr "" diff --git a/datacenterlight/locale/de/LC_MESSAGES/django.po b/datacenterlight/locale/de/LC_MESSAGES/django.po index d2e5fa60..dbb611bd 100644 --- a/datacenterlight/locale/de/LC_MESSAGES/django.po +++ b/datacenterlight/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-10-06 01:59+0530\n" +"POT-Creation-Date: 2017-10-16 00:57+0530\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" @@ -126,56 +126,57 @@ msgstr "" msgid "Thank you!" msgstr "Vielen Dank!" -msgid "Account Activation" -msgstr "Account Aktivierung" +msgid "Data Center Light Account Activation" +msgstr "Data Center Light Account Aktivierung" #, python-format msgid "" -"\n" -"You can activate your Data Center Light account by <a href=\"%(base_url)s" -"%(activation_link)s\">clicking here</a>.<br/>\n" +"You can activate your Data Center Light account by clicking <a href=" +"\"%(base_url)s%(activation_link)s\" style=\"text-decoration: none; color: " +"#4382c8; font-weight: 400;\">here</a>." +msgstr "" +"Klicke <a href=\"%(base_url)s%(activation_link)s\"style=\"text-decoration: " +"none; color: #4382c8; font-weight: 400;\">here</a> um deinen Data Center " +"Light Account zu aktivieren." + +msgid "" "You can also copy and paste the following link into the address bar of your " -"browser<br/>\n" -"to activate your Data Center Light account.<br/>\n" -"%(base_url)s%(activation_link)s\n" -msgstr "" -"\n" -"<a href=\"%(base_url)s%(activation_link)s\">Klicke hier</a> um deinen Data " -"Center Light Account zu aktivieren oder kopiere den folgenden Link in die " -"Adressleiste deines Browsers.<br/>\n" -"%(base_url)s%(activation_link)s\n" +"browser to activate your Data Center Light account." +msgstr "Kopiere den folgenden Link in die Adressleiste deines Browsers." -#, python-format -msgid "" -"Your account details are as follows:<br/><br/>\n" -"Username : Your email address<br/>\n" -"Password : %(account_details)s<br/><br/>\n" -"You can reset your password here:\n" -"%(base_url)s%(reset_password_url)s\n" -msgstr "" +msgid "Your account details are as follows" +msgstr "Deine Account Details sind unten aufgelistet" -#, python-format -msgid "" -"You can activate your Data Center Light account by clicking here.\n" -"You can also copy and paste the following link into the address bar of your " -"browser\n" -"to activate your Data Center Light account.\n" -"%(base_url)s%(activation_link)s\n" -msgstr "" -"Klicke hier, um deinen Data Center Light Account zu aktivieren oder kopiere " -"den folgenden Link in die Adressleiste deines Browsers.\n" -"%(base_url)s%(activation_link)s\n" +msgid "Username" +msgstr "Username" + +msgid "Your email address" +msgstr "Deine E-Mail-Adresse" + +msgid "Password" +msgstr "Passwort" + +msgid "You can reset your password here" +msgstr "Du kannst dein Passwort hier zurück setzen" -#, python-format msgid "" -"Your account details are as follows:\n" -"\n" -"Username : Your email address\n" -"Password : %(account_details)s\n" -"\n" -"You can reset your password here:\n" -"%(base_url)s%(reset_password_url)s\n" -msgstr "" +"You can copy and paste the following link into the address bar of your " +"browser to activate your Data Center Light account." +msgstr "Kopiere den folgenden Link in die Adressleiste deines Browsers." + +msgid "Welcome to Data Center Light!" +msgstr "Willkommen beim Data Center Light!" + +msgid "" +"Thanks for joining us! We provide the most affordable virtual machines from " +"the heart of Switzerland." +msgstr "Bei uns findest Du die günstiges VMs aus der Schweiz." + +msgid "Try now, order a VM. VM price starts from only 15CHF per month." +msgstr "Unser Angebot beginnt bei 15 CHF pro Monat. Probier's jetzt aus!" + +msgid "ORDER VM" +msgstr "VM BESTELLEN" msgid "Home" msgstr "Home" @@ -510,6 +511,15 @@ msgstr "" #~ "ausgelöst, nachdem Du die Bestellung auf der nächsten Seite bestätigt " #~ "hast." +#~ msgid "Processing..." +#~ msgstr "Abarbeitung..." + +#~ msgid "Hold tight, we are processing your request" +#~ msgstr "Bitte warten - wir verbeiten Deine Anfrage gerade" + +#~ msgid "Some problem encountered. Please try again later." +#~ msgstr "Ein Problem ist aufgetreten. Bitte versuche es später noch einmal." + #~ msgid "Submit" #~ msgstr "Absenden" @@ -528,15 +538,6 @@ msgstr "" #~ msgid "Order summary" #~ msgstr "Bestellungsübersicht" -#~ msgid "Processing..." -#~ msgstr "Abarbeitung..." - -#~ msgid "Hold tight, we are processing your request" -#~ msgstr "Bitte warten - wir verbeiten Deine Anfrage gerade" - -#~ msgid "Some problem encountered. Please try again later." -#~ msgstr "Ein Problem ist aufgetreten. Bitte versuche es später noch einmal." - #~ msgid "We are cutting down the costs significantly!" #~ msgstr "Wir sorgen dafür, dass die Kosten für Dich signifikant abnehmen" @@ -558,9 +559,6 @@ msgstr "" #~ "kontaktiere uns unter support@datacenterlight.ch. Unser Team wird sich " #~ "umgehend um dein Anliegen kümmern!" -#~ msgid "Email Address" -#~ msgstr "E-Mail-Adresse" - #~ msgid "is not a proper name" #~ msgstr "ist kein gültiger Name" diff --git a/datacenterlight/static/datacenterlight/css/landing-page.css b/datacenterlight/static/datacenterlight/css/landing-page.css index 0d0729fb..9b02420c 100755 --- a/datacenterlight/static/datacenterlight/css/landing-page.css +++ b/datacenterlight/static/datacenterlight/css/landing-page.css @@ -182,7 +182,11 @@ button, input, optgroup, select, textarea { .navbar-brand { padding: 10px 15px; - cursor: pointer; +} +@media (max-width: 767px) { + .navbar-brand { + padding: 10px 10px; + } } .navbar-right { @@ -276,7 +280,7 @@ button, input, optgroup, select, textarea { display: block; } */ .intro-header { - height: 100vh; + min-height: 100vh; text-align: center; color: #fff; background: url(../img/configure.jpg) no-repeat center center; @@ -715,9 +719,10 @@ button, input, optgroup, select, textarea { font-size: 65px; margin: 0; position: relative; -/* color: #eee; + /* color: #eee; padding-bottom: 25px; text-align: right; */ + /* color: #fff; */ } .contact-form .form-group { @@ -1543,7 +1548,7 @@ tech-sub-sec h2 { } footer { - padding: 50px 0; + padding: 50px 20px; background-color: #f8f8f8; } diff --git a/datacenterlight/static/datacenterlight/img/logo_black.png b/datacenterlight/static/datacenterlight/img/logo_black.png new file mode 100644 index 00000000..5dfd0eaa Binary files /dev/null and b/datacenterlight/static/datacenterlight/img/logo_black.png differ diff --git a/datacenterlight/static/datacenterlight/img/pattern.jpg b/datacenterlight/static/datacenterlight/img/pattern.jpg index 8ae4c0f2..7c66e007 100755 Binary files a/datacenterlight/static/datacenterlight/img/pattern.jpg and b/datacenterlight/static/datacenterlight/img/pattern.jpg differ diff --git a/datacenterlight/tasks.py b/datacenterlight/tasks.py index 1f34c3fe..3db6eb54 100644 --- a/datacenterlight/tasks.py +++ b/datacenterlight/tasks.py @@ -5,6 +5,7 @@ from celery.utils.log import get_task_logger from celery import current_task from django.conf import settings from django.core.mail import EmailMessage +from django.core.urlresolvers import reverse from django.utils import translation from django.utils.translation import ugettext_lazy as _ @@ -131,9 +132,9 @@ def create_vm_task(self, vm_template_id, user, specs, template, 'storage': specs.get('disk_size'), 'price': specs.get('price'), 'template': template.get('name'), - 'vm.name': vm['name'], - 'vm.id': vm['vm_id'], - 'order.id': order.id + 'vm_name': vm.get('name'), + 'vm_id': vm['vm_id'], + 'order_id': order.id } email_data = { 'subject': settings.DCL_TEXT + " Order from %s" % context['email'], @@ -155,13 +156,14 @@ def create_vm_task(self, vm_template_id, user, specs, template, translation.activate(lang) # Send notification to the user as soon as VM has been booked context = { - 'vm': vm, - 'order': order, 'base_url': "{0}://{1}".format(user.get('request_scheme'), user.get('request_host')), + 'order_url': reverse('hosting:orders', + kwargs={'pk': order.id}), 'page_header': _( 'Your New VM %(vm_name)s at Data Center Light') % { - 'vm_name': vm.get('name')} + 'vm_name': vm.get('name')}, + 'vm_name': vm.get('name') } email_data = { 'subject': context.get('page_header'), diff --git a/datacenterlight/templates/datacenterlight/base.html b/datacenterlight/templates/datacenterlight/base.html index 45b30cad..58e6b15a 100644 --- a/datacenterlight/templates/datacenterlight/base.html +++ b/datacenterlight/templates/datacenterlight/base.html @@ -18,7 +18,7 @@ <!-- Custom Fonts --> <!--Import Google Icon Font--> - <link href="//fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> + <link href="//fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <link href="{% static 'datacenterlight/font-awesome/css/font-awesome.min.css' %}" rel="stylesheet" type="text/css"> <link href="//fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css"> <link rel="shortcut icon" href="{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon" /> @@ -26,6 +26,8 @@ <!-- Custom CSS --> <link href="{% static 'datacenterlight/css/landing-page.css' %}" rel="stylesheet"> + {% block css_extra %} + {% endblock css_extra %} <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> @@ -42,7 +44,9 @@ <body> <!-- Navigation --> - {% include "datacenterlight/includes/_navbar.html" %} + {% block navbar %} + {% include "datacenterlight/includes/_navbar.html" %} + {% endblock navbar %} {% block content %} diff --git a/datacenterlight/templates/datacenterlight/emails/user_activation.html b/datacenterlight/templates/datacenterlight/emails/user_activation.html index 3c7fae74..8f270a3f 100644 --- a/datacenterlight/templates/datacenterlight/emails/user_activation.html +++ b/datacenterlight/templates/datacenterlight/emails/user_activation.html @@ -1,24 +1,58 @@ -{% extends "datacenterlight/emails/base_email_datacenterlight.html" %} -{% load static from staticfiles %} -{% load i18n %} -{% block email_head %} -{{dcl_text}} {% trans 'Account Activation' %} -{% endblock %} -{% block email_body %} -{% blocktrans %} -You can activate your Data Center Light account by <a href="{{base_url}}{{activation_link}}">clicking here</a>.<br/> -You can also copy and paste the following link into the address bar of your browser<br/> -to activate your Data Center Light account.<br/> -{{base_url}}{{activation_link}} -{% endblocktrans %} -{% if account_details %} -{% url 'hosting:reset_password' as reset_password_url %} -<br/><br/> -{% blocktrans %}Your account details are as follows:<br/><br/> -Username : Your email address<br/> -Password : {{account_details}}<br/><br/> -You can reset your password here: -{{base_url}}{{reset_password_url}} -{% endblocktrans %} -{% endif %} -{% endblock %} +{% load static i18n %} +<!DOCTYPE html> +<html> + +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>{% trans "Data Center Light Account Activation" %} + + + + + + + + + + + + + + + + + + +
+ +
+

{% trans "Data Center Light Account Activation" %}

+
+

+ {% blocktrans %}You can activate your Data Center Light account by clicking here.{% endblocktrans %} +

+

+ {% blocktrans %}You can also copy and paste the following link into the address bar of your browser to activate your Data Center Light account.{% endblocktrans %} +

+

+ {{base_url}}{{activation_link}} +

+

+ {% if account_details %} + {% url 'hosting:reset_password' as reset_password_url %} + {% trans "Your account details are as follows" %}: + + {% trans "Username" %} : {% trans "Your email address" %} + {% trans "Password" %} : {{account_details}} + + {% trans "You can reset your password here" %}: + {{base_url}}{{reset_password_url}} + {% endif %} +

+
+

{% trans "Your Data Center Light Team" %}

+
+ + + diff --git a/datacenterlight/templates/datacenterlight/emails/user_activation.txt b/datacenterlight/templates/datacenterlight/emails/user_activation.txt index 7c833256..4f66e239 100644 --- a/datacenterlight/templates/datacenterlight/emails/user_activation.txt +++ b/datacenterlight/templates/datacenterlight/emails/user_activation.txt @@ -1,21 +1,20 @@ -{% extends "datacenterlight/emails/base_email_datacenterlight.txt" %} {% load i18n %} -{% block email_head %}{{dcl_text}} {% trans 'Account Activation' %}{% endblock %} -{% block email_body %} -{% blocktrans %}You can activate your Data Center Light account by clicking here. -You can also copy and paste the following link into the address bar of your browser -to activate your Data Center Light account. + +{% trans "Data Center Light Account Activation" %} + +{% blocktrans %}You can copy and paste the following link into the address bar of your browser to activate your Data Center Light account.{% endblocktrans %} + {{base_url}}{{activation_link}} -{% endblocktrans %} + {% if account_details %} -{% url 'hosting:reset_password' as reset_password_url %} -{% blocktrans %}Your account details are as follows: + {% url 'hosting:reset_password' as reset_password_url %} + {% trans "Your account details are as follows" %}: -Username : Your email address -Password : {{account_details}} + {% trans "Username" %} : {% trans "Your email address" %} + {% trans "Password" %} : {{account_details}} -You can reset your password here: -{{base_url}}{{reset_password_url}} -{% endblocktrans %} + {% trans "You can reset your password here" %}: + {{base_url}}{{reset_password_url}} {% endif %} -{% endblock %} + +{% trans "Your Data Center Light Team" %} \ No newline at end of file diff --git a/datacenterlight/templates/datacenterlight/emails/welcome_user.html b/datacenterlight/templates/datacenterlight/emails/welcome_user.html new file mode 100644 index 00000000..e947ac97 --- /dev/null +++ b/datacenterlight/templates/datacenterlight/emails/welcome_user.html @@ -0,0 +1,48 @@ +{% load static i18n %} + + + + + + + {% trans "Welcome to Data Center Light!" %} + + + + + + + + + + + + + + + + + + + + + +
+ +
+

{% trans "Welcome to Data Center Light!" %}

+
+

+ {% blocktrans %}Thanks for joining us! We provide the most affordable virtual machines from the heart of Switzerland.{% endblocktrans %} +

+

+ {% blocktrans %}Try now, order a VM. VM price starts from only 15CHF per month.{% endblocktrans %} +

+
+ {% trans "ORDER VM" %} +
+

{% trans "Your Data Center Light Team" %}

+
+ + + \ No newline at end of file diff --git a/datacenterlight/templates/datacenterlight/emails/welcome_user.txt b/datacenterlight/templates/datacenterlight/emails/welcome_user.txt new file mode 100644 index 00000000..0e7820e6 --- /dev/null +++ b/datacenterlight/templates/datacenterlight/emails/welcome_user.txt @@ -0,0 +1,10 @@ +{% load i18n %} + +{% trans "Welcome to Data Center Light!" %} + +{% blocktrans %}Thanks for joining us! We provide the most affordable virtual machines from the heart of Switzerland.{% endblocktrans %} +{% blocktrans %}Try now, order a VM. VM price starts from only 15CHF per month.{% endblocktrans %} + +{{ base_url }}{% url 'hosting:create_virtual_machine' %} + +{% trans "Your Data Center Light Team" %} \ No newline at end of file diff --git a/datacenterlight/templates/datacenterlight/includes/_footer.html b/datacenterlight/templates/datacenterlight/includes/_footer.html index 76c2c16e..edb7f8aa 100644 --- a/datacenterlight/templates/datacenterlight/includes/_footer.html +++ b/datacenterlight/templates/datacenterlight/includes/_footer.html @@ -1,38 +1,39 @@ - {% load staticfiles i18n%} +{% load staticfiles i18n%} {% get_current_language as LANGUAGE_CODE %} - + diff --git a/datacenterlight/templates/datacenterlight/landing_payment.html b/datacenterlight/templates/datacenterlight/landing_payment.html index 1a476797..58246b6a 100644 --- a/datacenterlight/templates/datacenterlight/landing_payment.html +++ b/datacenterlight/templates/datacenterlight/landing_payment.html @@ -25,14 +25,15 @@

{%trans "Log in" %}


{% blocktrans %}Already signed up?
By logging in you can retrieve saved billing information.{% endblocktrans %}

-
+ {% for field in login_form %} {% csrf_token %} {% bootstrap_field field show_label=False type='fields'%} {% endfor %} +

{{login_form.non_field_errors|striptags}}

- +

@@ -58,7 +59,7 @@ {% endfor %}

{% csrf_token %} - {% for field in form %} + {% for field in billing_address_form %} {% bootstrap_field field show_label=False type='fields'%} {% endfor %}
diff --git a/datacenterlight/urls.py b/datacenterlight/urls.py index a8d8f49d..2cd0723f 100644 --- a/datacenterlight/urls.py +++ b/datacenterlight/urls.py @@ -1,9 +1,13 @@ from django.conf.urls import url -from .views import IndexView, BetaProgramView, LandingProgramView, \ - BetaAccessView, SuccessView, \ - PaymentOrderView, OrderConfirmationView, \ +from .views import ( + IndexView, BetaProgramView, LandingProgramView, BetaAccessView, + SuccessView, PaymentOrderView, OrderConfirmationView, WhyDataCenterLightView, ContactUsView +) + +from django.views.generic import TemplateView + urlpatterns = [ url(r'^$', IndexView.as_view(), name='index'), @@ -21,4 +25,8 @@ urlpatterns = [ url(r'^order-success/?$', SuccessView.as_view(), name='order_success'), url(r'^beta_access?$', BetaAccessView.as_view(), name='beta_access'), url(r'^contact/?$', ContactUsView.as_view(), name='contact_us'), + + url(r'glasfaser/?$', + TemplateView.as_view(template_name='ungleich_page/glasfaser.html'), + name='glasfaser'), ] diff --git a/datacenterlight/views.py b/datacenterlight/views.py index 40544fef..bd1a7f51 100644 --- a/datacenterlight/views.py +++ b/datacenterlight/views.py @@ -49,13 +49,17 @@ class ContactUsView(FormView): def form_valid(self, form): form.save() + from_emails = { + 'glasfaser': 'glasfaser@ungleich.ch' + } + from_page = self.request.POST.get('from_page') email_data = { 'subject': "{dcl_text} Message from {sender}".format( dcl_text=settings.DCL_TEXT, sender=form.cleaned_data.get('email') ), 'from_email': settings.DCL_SUPPORT_FROM_ADDRESS, - 'to': ['info@ungleich.ch'], + 'to': [from_emails.get(from_page, 'info@ungleich.ch')], 'body': "\n".join( ["%s=%s" % (k, v) for (k, v) in form.cleaned_data.items()]), 'reply_to': [form.cleaned_data.get('email')], @@ -341,26 +345,45 @@ class PaymentOrderView(FormView): else: return BillingAddressFormSignup - def get_form_kwargs(self): - form_kwargs = super(PaymentOrderView, self).get_form_kwargs() - # if user is signed in, get billing address - if self.request.user.is_authenticated(): - form_kwargs.update({ - 'instance': self.request.user.billing_addresses.first() - }) - if 'billing_address_data' in self.request.session: - billing_address_data = self.request.session['billing_address_data'] - form_kwargs.update({ - 'initial': billing_address_data - }) - return form_kwargs - def get_context_data(self, **kwargs): context = super(PaymentOrderView, self).get_context_data(**kwargs) + if 'billing_address_data' in self.request.session: + billing_address_data = self.request.session['billing_address_data'] + else: + billing_address_data = {} + + if self.request.user.is_authenticated(): + if billing_address_data: + billing_address_form = BillingAddressForm( + initial=billing_address_data + ) + else: + billing_address_form = BillingAddressForm( + instance=self.request.user.billing_addresses.first() + ) + # Get user last order + last_hosting_order = HostingOrder.objects.filter( + customer__user=self.request.user + ).last() + + # If user has already an hosting order, get the credit card + # data from it + if last_hosting_order: + credit_card_data = last_hosting_order.get_cc_data() + if credit_card_data: + context['credit_card_data'] = credit_card_data + else: + context['credit_card_data'] = None + else: + billing_address_form = BillingAddressFormSignup( + initial=billing_address_data + ) + context.update({ 'stripe_key': settings.STRIPE_API_PUBLIC_KEY, 'site_url': reverse('datacenterlight:index'), - 'login_form': HostingUserLoginForm() + 'login_form': HostingUserLoginForm(prefix='login_form'), + 'billing_address_form': billing_address_form }) return context @@ -372,9 +395,32 @@ class PaymentOrderView(FormView): return self.render_to_response(self.get_context_data()) def post(self, request, *args, **kwargs): - form = self.get_form() - if form.is_valid(): - token = form.cleaned_data.get('token') + if 'login_form' in request.POST: + login_form = HostingUserLoginForm(data=request.POST, + prefix='login_form') + if login_form.is_valid(): + email = login_form.cleaned_data.get('email') + password = login_form.cleaned_data.get('password') + auth_user = authenticate(email=email, password=password) + if auth_user: + login(self.request, auth_user) + return HttpResponseRedirect( + reverse('datacenterlight:payment') + ) + else: + context = self.get_context_data() + context['login_form'] = login_form + return self.render_to_response(context) + if request.user.is_authenticated(): + address_form = BillingAddressForm( + data=request.POST, + ) + else: + address_form = BillingAddressFormSignup( + data=request.POST, + ) + if address_form.is_valid(): + token = address_form.cleaned_data.get('token') if request.user.is_authenticated(): this_user = { 'email': request.user.email, @@ -384,8 +430,8 @@ class PaymentOrderView(FormView): email=this_user.get('email'), token=token) else: - user_email = form.cleaned_data.get('email') - user_name = form.cleaned_data.get('name') + user_email = address_form.cleaned_data.get('email') + user_name = address_form.cleaned_data.get('name') this_user = { 'email': user_email, 'name': user_name @@ -418,13 +464,18 @@ class PaymentOrderView(FormView): token=token, customer_name=user_name) - request.session['billing_address_data'] = form.cleaned_data + request.session['billing_address_data'] = address_form.cleaned_data request.session['user'] = this_user # Get or create stripe customer if not customer: - form.add_error("__all__", "Invalid credit card") + address_form.add_error( + "__all__", "Invalid credit card" + ) return self.render_to_response( - self.get_context_data(form=form)) + self.get_context_data( + billing_address_form=address_form + ) + ) request.session['token'] = token if type(customer) is StripeCustomer: request.session['customer'] = customer.stripe_id @@ -433,7 +484,9 @@ class PaymentOrderView(FormView): return HttpResponseRedirect( reverse('datacenterlight:order_confirmation')) else: - return self.form_invalid(form) + context = self.get_context_data() + context['billing_address_form'] = address_form + return self.render_to_response(context) class OrderConfirmationView(DetailView): @@ -544,9 +597,13 @@ class OrderConfirmationView(DetailView): try: custom_user = CustomUser.objects.get( email=user.get('email')) - customer = StripeCustomer.objects.filter( + stripe_customer = StripeCustomer.objects.filter( user_id=custom_user.id).first() - stripe_customer_id = customer.id + if stripe_customer is None: + stripe_customer = StripeCustomer.objects.create( + user=custom_user, stripe_id=stripe_api_cus_id + ) + stripe_customer_id = stripe_customer.id except CustomUser.DoesNotExist: logger.debug( "Customer {} does not exist.".format(user.get('email'))) diff --git a/digitalglarus/locale/de/LC_MESSAGES/django.po b/digitalglarus/locale/de/LC_MESSAGES/django.po index f4193749..6ae6a6bb 100644 --- a/digitalglarus/locale/de/LC_MESSAGES/django.po +++ b/digitalglarus/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-07-16 17:50+0000\n" +"POT-Creation-Date: 2017-10-10 21:35+0530\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,1447 +18,331 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_templates/djangocms_blog/_header_post_detail.html:21 -#: digitalglarus/templates/digitalglarus/post_detail.html:19 -#: ungleich/templates/ungleich/djangocms_blog/includes/blog_item.html:19 msgid "Posted on" msgstr "Veröffentlicht am" -#: cms_templates/djangocms_blog/post_list.html:11 -#: ungleich/templates/ungleich/djangocms_blog/post_list_ungleich.html:11 msgid "Articles by" msgstr "Artikel vom" -#: cms_templates/djangocms_blog/post_list.html:12 -#: ungleich/templates/ungleich/djangocms_blog/post_list_ungleich.html:12 msgid "Archive" msgstr "Archiv" -#: cms_templates/djangocms_blog/post_list.html:13 -#: ungleich/templates/ungleich/djangocms_blog/post_list_ungleich.html:13 msgid "Tag" msgstr "" -#: cms_templates/djangocms_blog/post_list.html:14 -#: ungleich/templates/ungleich/djangocms_blog/post_list_ungleich.html:14 msgid "Category" msgstr "Kategorie" -#: cms_templates/djangocms_blog/post_list.html:21 -#: digitalglarus/templates/glarus_blog/post_list.html:15 -#: ungleich/templates/ungleich/djangocms_blog/post_list_ungleich.html:22 msgid "No article found." msgstr "Keine Artikel gefunden" -#: cms_templates/djangocms_blog/post_list.html:24 -#: digitalglarus/templates/glarus_blog/post_list.html:18 -#: ungleich/templates/ungleich/djangocms_blog/post_list_ungleich.html:25 msgid "Back" msgstr "Zurück" -#: cms_templates/djangocms_blog/post_list.html:32 -#: ungleich/templates/ungleich/djangocms_blog/post_list_ungleich.html:33 msgid "Newer Posts" msgstr "Neuere Einträge" -#: cms_templates/djangocms_blog/post_list.html:39 -#: ungleich/templates/ungleich/djangocms_blog/post_list_ungleich.html:40 msgid "Older Posts" msgstr "Ältere Einträge" -#: cms_templates/includes/blog_item.html:31 -#: digitalglarus/templates/glarus_blog/includes/blog_item.html:32 msgid "read more" msgstr "weiterlesen" -#: cms_templates/includes/blog_meta.html:6 -#: digitalglarus/templates/glarus_blog/includes/blog_meta.html:6 msgid "by" msgstr "von" -#: digitalglarus/cms_plugins.py:9 -msgid "Digital Glarus Gallery" -msgstr "" - -#: digitalglarus/cms_plugins.py:22 -msgid "Digital Glarus Supporters" -msgstr "" - -#: digitalglarus/forms.py:34 digitalglarus/forms.py:69 nosystemd/forms.py:47 -#: utils/forms.py:107 -msgid "Street Address" -msgstr "Adresse" - -#: digitalglarus/forms.py:35 digitalglarus/forms.py:70 nosystemd/forms.py:48 -#: utils/forms.py:108 utils/forms.py:123 -msgid "City" -msgstr "Stadt" - -#: digitalglarus/forms.py:36 digitalglarus/forms.py:71 nosystemd/forms.py:49 -#: utils/forms.py:109 utils/forms.py:124 -msgid "Postal Code" -msgstr "Postleitzahl" - -#: digitalglarus/forms.py:37 digitalglarus/forms.py:72 nosystemd/forms.py:50 -#: utils/forms.py:110 utils/forms.py:125 -msgid "Country" -msgstr "Land" - -#: digitalglarus/templates/digitalglarus/login.html:88 -#: digitalglarus/templates/digitalglarus/login_hello.html:32 -#: nosystemd/templates/nosystemd/login.html:23 -msgid "You haven been logged out" -msgstr "Sie wurden abgemeldet" - -#: digitalglarus/templates/glarus_blog/post_list.html:23 -#: nosystemd/templates/nosystemd/donations.html:74 -msgid "previous" -msgstr "vorherige" - -#: digitalglarus/templates/glarus_blog/post_list.html:26 -#: dynamicweb/settings/base.py:192 templates/cms/__init__.py:10 -#: templates/cms/ungleichch/__init__.py:5 -msgid "Page" -msgstr "Seite" - -#: digitalglarus/templates/glarus_blog/post_list.html:26 -msgid "of" -msgstr "vom" - -#: digitalglarus/templates/glarus_blog/post_list.html:29 -#: nosystemd/templates/nosystemd/donations.html:80 -msgid "next" -msgstr "nächste" - -#: digitalglarus/templates/language_chooser.html:8 -#: ungleich/templates/cms/ungleichch/_header_base.html:23 -msgid "Change to language:" -msgstr "Sprache wechseln zu: " - -#: digitalglarus/templates/new_base_glarus.html:161 -#: digitalglarus/templates/new_base_glarus.html:184 -#: digitalglarus/templates/new_base_glarus_c.html:176 -#: digitalglarus/templates/new_base_glarus_c.html:199 -msgid "Bookings" -msgstr "" - -#: digitalglarus/templates/new_base_glarus.html:165 -#: digitalglarus/templates/new_base_glarus.html:188 -#: digitalglarus/templates/new_base_glarus_c.html:180 -#: digitalglarus/templates/new_base_glarus_c.html:203 -msgid "Membership" -msgstr "" - -#: digitalglarus/templates/new_base_glarus.html:171 -#: digitalglarus/templates/new_base_glarus.html:194 -#: digitalglarus/templates/new_base_glarus_c.html:186 -#: digitalglarus/templates/new_base_glarus_c.html:209 -#: nosystemd/templates/nosystemd/base.html:76 -msgid "Logout" -msgstr "" - -#: digitalglarus/urls.py:16 -msgid "booking/payment/edit/?$" -msgstr "" - -#: digitalglarus/urls.py:17 -msgid "^$" -msgstr "" - -#: digitalglarus/urls.py:19 -msgid "support-us/?$" -msgstr "" - -#: digitalglarus/urls.py:20 -msgid "contact/?$" -msgstr "kontakt/?$" - -#: digitalglarus/urls.py:21 -msgid "login/?$" -msgstr "" - -#: digitalglarus/urls.py:22 -msgid "signup/?$" -msgstr "" - -#: digitalglarus/urls.py:28 -msgid "history/?$" -msgstr "" - -#: digitalglarus/urls.py:29 -msgid "users/billing_address/?$" -msgstr "" - -#: digitalglarus/urls.py:31 -msgid "booking/?$" -msgstr "" - -#: digitalglarus/urls.py:32 -msgid "booking/payment/?$" -msgstr "" - -#: digitalglarus/urls.py:33 -msgid "booking/orders/(?P\\d+)/?$" -msgstr "" - -#: digitalglarus/urls.py:37 -msgid "booking/orders/?$" -msgstr "" - -#: digitalglarus/urls.py:39 -msgid "membership/payment/?$" -msgstr "" - -#: digitalglarus/urls.py:40 -msgid "membership/activated/?$" -msgstr "" - -#: digitalglarus/urls.py:42 -msgid "membership/deactivate/?$" -msgstr "" - -#: digitalglarus/urls.py:44 -msgid "membership/reactivate/?$" -msgstr "" - -#: digitalglarus/urls.py:46 -msgid "membership/deactivate/success/?$" -msgstr "" - -#: digitalglarus/urls.py:48 -msgid "membership/pricing/?$" -msgstr "" - -#: digitalglarus/urls.py:50 -msgid "membership/orders/(?P\\d+)/?$" -msgstr "" - -#: digitalglarus/urls.py:52 -#, fuzzy -#| msgid "supporters/?$" -msgid "membership/orders/?$" -msgstr "befurworter/?$" - -#: digitalglarus/urls.py:54 -msgid "supporters/?$" -msgstr "befurworter/?$" - -#: digitalglarus/views.py:715 -msgid "Message Successfully Sent" -msgstr "" - -#: dynamicweb/settings-test/__init__.py:181 msgid "US English" msgstr "" -#: dynamicweb/settings-test/__init__.py:182 msgid "German" msgstr "" -#: dynamicweb/settings-test/__init__.py:235 -#: dynamicweb/settings-test/__init__.py:244 dynamicweb/settings/base.py:280 -#: dynamicweb/settings/base.py:289 msgid "Content" msgstr "" -#: dynamicweb/settings/base.py:181 msgid "default" msgstr "" -#: dynamicweb/settings/base.py:182 msgid "2 Column" msgstr "" -#: dynamicweb/settings/base.py:183 msgid "3 Column" msgstr "" -#: dynamicweb/settings/base.py:184 templates/cms/__init__.py:4 -#: templates/cms/digitalglarus/__init__.py:4 msgid "DG.About" msgstr "" -#: dynamicweb/settings/base.py:185 templates/cms/__init__.py:5 -#: templates/cms/digitalglarus/__init__.py:5 #, fuzzy #| msgid "contact/?$" msgid "DG.Contact" msgstr "kontakt/?$" -#: dynamicweb/settings/base.py:186 templates/cms/__init__.py:6 -#: templates/cms/digitalglarus/__init__.py:6 msgid "DG.Home" msgstr "" -#: dynamicweb/settings/base.py:187 templates/cms/__init__.py:7 -#: templates/cms/digitalglarus/__init__.py:7 msgid "DG.CoWork" msgstr "" -#: dynamicweb/settings/base.py:189 msgid "DG.OneColumn" msgstr "" -#: dynamicweb/settings/base.py:191 templates/cms/__init__.py:9 -#: templates/cms/ungleichch/__init__.py:4 msgid "Blog" msgstr "" -#: dynamicweb/settings/base.py:221 +msgid "Page" +msgstr "Seite" + +msgid "Data Center Light" +msgstr "" + msgid "English" msgstr "" -#: dynamicweb/settings/base.py:222 msgid "Deutsch" msgstr "" -#: nosystemd/forms.py:46 msgid "Amount" msgstr "Betrag" -#: nosystemd/templates/nosystemd/base.html:70 +msgid "Street Address" +msgstr "Adresse" + +msgid "City" +msgstr "Stadt" + +msgid "Postal Code" +msgstr "Postleitzahl" + +msgid "Country" +msgstr "Land" + msgid "My Donations" msgstr "" -#: nosystemd/templates/nosystemd/confirm_reset_password.html:24 +msgid "Logout" +msgstr "" + msgid "Set your new password" msgstr "" -#: nosystemd/templates/nosystemd/confirm_reset_password.html:33 -#: nosystemd/templates/nosystemd/reset_password.html:25 msgid "Reset" msgstr "" -#: nosystemd/templates/nosystemd/confirm_reset_password.html:37 -#: nosystemd/templates/nosystemd/reset_password.html:29 -#: nosystemd/templates/nosystemd/signup.html:33 msgid "Already have an account ?" msgstr "" -#: nosystemd/templates/nosystemd/confirm_reset_password.html:37 msgid "Log in" msgstr "" -#: nosystemd/templates/nosystemd/donation_detail.html:15 msgid "Invoice" msgstr "" -#: nosystemd/templates/nosystemd/donation_detail.html:15 msgid "Donation #" msgstr "" -#: nosystemd/templates/nosystemd/donation_detail.html:20 msgid "Billing Address:" msgstr "" -#: nosystemd/templates/nosystemd/donation_detail.html:28 msgid "Date:" msgstr "" -#: nosystemd/templates/nosystemd/donation_detail.html:38 msgid "Payment Method:" msgstr "" -#: nosystemd/templates/nosystemd/donation_detail.html:49 msgid "Donation summary" msgstr "" -#: nosystemd/templates/nosystemd/donation_detail.html:52 -#: nosystemd/templates/nosystemd/donations.html:49 msgid "Donation" msgstr "" -#: nosystemd/templates/nosystemd/donation_detail.html:54 msgid "Total" msgstr "" -#: nosystemd/templates/nosystemd/donation_detail.html:60 msgid "Finish Configuration" msgstr "" -#: nosystemd/templates/nosystemd/donation_detail.html:68 msgid "" "Thanks for you donation, you can cancel your monthly donation at any time " "going to profile > subscription " msgstr "" -#: nosystemd/templates/nosystemd/donation_detail.html:74 msgid "View Donations" msgstr "" -#: nosystemd/templates/nosystemd/donations.html:28 -#: nosystemd/templates/nosystemd/donator_status.html:26 msgid "Cancel Donation" msgstr "" -#: nosystemd/templates/nosystemd/donations.html:35 msgid "Donate" msgstr "" -#: nosystemd/templates/nosystemd/donations.html:44 msgid "Donations Made" msgstr "" -#: nosystemd/templates/nosystemd/donations.html:50 msgid "Date" msgstr "" -#: nosystemd/templates/nosystemd/donations.html:62 msgid "View Detail" msgstr "" -#: nosystemd/templates/nosystemd/donator_status.html:28 +msgid "previous" +msgstr "vorherige" + +msgid "next" +msgstr "nächste" + msgid "Reanude Donation" msgstr "" -#: nosystemd/templates/nosystemd/emails/password_reset_email.html:2 -#: nosystemd/templates/nosystemd/emails/password_reset_email.txt:2 #, python-format msgid "" "You're receiving this email because you requested a password reset for your " "user account at %(site_name)s." msgstr "" -#: nosystemd/templates/nosystemd/emails/password_reset_email.html:4 -#: nosystemd/templates/nosystemd/emails/password_reset_email.txt:4 msgid "Please go to the following page and choose a new password:" msgstr "" -#: nosystemd/templates/nosystemd/emails/password_reset_email.html:9 -#: nosystemd/templates/nosystemd/emails/password_reset_email.txt:9 msgid "Thanks for using our site!" msgstr "" -#: nosystemd/templates/nosystemd/emails/password_reset_email.html:11 -#: nosystemd/templates/nosystemd/emails/password_reset_email.txt:11 #, python-format msgid "The %(site_name)s team" msgstr "" -#: nosystemd/templates/nosystemd/login.html:30 +msgid "You haven been logged out" +msgstr "Sie wurden abgemeldet" + msgid "Log in " msgstr "" -#: nosystemd/templates/nosystemd/login.html:40 -#: nosystemd/templates/nosystemd/reset_password.html:29 -#: nosystemd/templates/nosystemd/signup.html:33 msgid "Login" msgstr "" -#: nosystemd/templates/nosystemd/login.html:44 msgid "Don't have an account yet ? " msgstr "" -#: nosystemd/templates/nosystemd/login.html:44 -#: nosystemd/templates/nosystemd/signup.html:17 -#: nosystemd/templates/nosystemd/signup.html:29 msgid "Sign up" msgstr "" -#: nosystemd/templates/nosystemd/login.html:46 msgid "Forgot your password ? " msgstr "" -#: nosystemd/templates/nosystemd/reset_password.html:16 msgid "Reset your password" msgstr "" -#: templates/cms/__init__.py:8 templates/cms/digitalglarus/__init__.py:8 msgid "DG.Detail" msgstr "" -#: ungleich/cms_toolbar.py:23 msgid "Page Header" msgstr "" -#: ungleich/views.py:79 +msgid "Change to language:" +msgstr "Sprache wechseln zu: " + #, python-format msgid "No %(verbose_name)s found matching the query" msgstr "" -#: utils/fields.py:6 -msgid "Andorra" +msgid "Digital Glarus Gallery" msgstr "" -#: utils/fields.py:7 -msgid "United Arab Emirates" +msgid "Digital Glarus Supporters" msgstr "" -#: utils/fields.py:8 -msgid "Afghanistan" -msgstr "" - -#: utils/fields.py:9 -msgid "Antigua & Barbuda" -msgstr "" - -#: utils/fields.py:10 -msgid "Anguilla" -msgstr "" - -#: utils/fields.py:11 -msgid "Albania" -msgstr "" - -#: utils/fields.py:12 -msgid "Armenia" -msgstr "" - -#: utils/fields.py:13 -msgid "Netherlands Antilles" -msgstr "" - -#: utils/fields.py:14 -msgid "Angola" -msgstr "" - -#: utils/fields.py:15 -msgid "Antarctica" -msgstr "" - -#: utils/fields.py:16 -msgid "Argentina" -msgstr "" - -#: utils/fields.py:17 -msgid "American Samoa" -msgstr "" - -#: utils/fields.py:18 -msgid "Austria" -msgstr "" - -#: utils/fields.py:19 -msgid "Australia" -msgstr "" - -#: utils/fields.py:20 -msgid "Aruba" -msgstr "" - -#: utils/fields.py:21 -msgid "Azerbaijan" -msgstr "" - -#: utils/fields.py:22 -msgid "Bosnia and Herzegovina" -msgstr "" - -#: utils/fields.py:23 -msgid "Barbados" -msgstr "" - -#: utils/fields.py:24 -msgid "Bangladesh" -msgstr "" - -#: utils/fields.py:25 -msgid "Belgium" -msgstr "" - -#: utils/fields.py:26 -msgid "Burkina Faso" -msgstr "" - -#: utils/fields.py:27 -msgid "Bulgaria" -msgstr "" - -#: utils/fields.py:28 -msgid "Bahrain" -msgstr "" - -#: utils/fields.py:29 -msgid "Burundi" -msgstr "" - -#: utils/fields.py:30 -msgid "Benin" -msgstr "" - -#: utils/fields.py:31 -msgid "Bermuda" -msgstr "" - -#: utils/fields.py:32 -msgid "Brunei Darussalam" -msgstr "" - -#: utils/fields.py:33 -msgid "Bolivia" -msgstr "" - -#: utils/fields.py:34 -msgid "Brazil" -msgstr "" - -#: utils/fields.py:35 -msgid "Bahama" -msgstr "" - -#: utils/fields.py:36 -msgid "Bhutan" -msgstr "" - -#: utils/fields.py:37 -msgid "Bouvet Island" -msgstr "" - -#: utils/fields.py:38 -msgid "Botswana" -msgstr "" - -#: utils/fields.py:39 -msgid "Belarus" -msgstr "" - -#: utils/fields.py:40 -msgid "Belize" -msgstr "" - -#: utils/fields.py:41 -msgid "Canada" -msgstr "" - -#: utils/fields.py:42 -msgid "Cocos (Keeling) Islands" -msgstr "" - -#: utils/fields.py:43 -msgid "Central African Republic" -msgstr "" - -#: utils/fields.py:44 -msgid "Congo" -msgstr "" - -#: utils/fields.py:45 -msgid "Switzerland" -msgstr "" - -#: utils/fields.py:46 -msgid "Ivory Coast" -msgstr "" - -#: utils/fields.py:47 -msgid "Cook Iislands" -msgstr "" - -#: utils/fields.py:48 -msgid "Chile" -msgstr "" - -#: utils/fields.py:49 -msgid "Cameroon" -msgstr "" - -#: utils/fields.py:50 -msgid "China" -msgstr "" - -#: utils/fields.py:51 -msgid "Colombia" -msgstr "" - -#: utils/fields.py:52 -msgid "Costa Rica" -msgstr "" - -#: utils/fields.py:53 -msgid "Cuba" -msgstr "" - -#: utils/fields.py:54 -msgid "Cape Verde" -msgstr "" - -#: utils/fields.py:55 -msgid "Christmas Island" -msgstr "" - -#: utils/fields.py:56 -msgid "Cyprus" -msgstr "" - -#: utils/fields.py:57 -msgid "Czech Republic" -msgstr "" - -#: utils/fields.py:58 -msgid "Germany" -msgstr "" - -#: utils/fields.py:59 -msgid "Djibouti" -msgstr "" - -#: utils/fields.py:60 -msgid "Denmark" -msgstr "" - -#: utils/fields.py:61 -msgid "Dominica" -msgstr "" - -#: utils/fields.py:62 -msgid "Dominican Republic" -msgstr "" - -#: utils/fields.py:63 -msgid "Algeria" -msgstr "" - -#: utils/fields.py:64 -msgid "Ecuador" -msgstr "" - -#: utils/fields.py:65 -msgid "Estonia" -msgstr "" - -#: utils/fields.py:66 -msgid "Egypt" -msgstr "" - -#: utils/fields.py:67 -msgid "Western Sahara" -msgstr "" - -#: utils/fields.py:68 -msgid "Eritrea" -msgstr "" - -#: utils/fields.py:69 -msgid "Spain" -msgstr "" - -#: utils/fields.py:70 -msgid "Ethiopia" -msgstr "" - -#: utils/fields.py:71 -msgid "Finland" -msgstr "" - -#: utils/fields.py:72 -msgid "Fiji" -msgstr "" - -#: utils/fields.py:73 -msgid "Falkland Islands (Malvinas)" -msgstr "" - -#: utils/fields.py:74 -msgid "Micronesia" -msgstr "" - -#: utils/fields.py:75 -msgid "Faroe Islands" -msgstr "" - -#: utils/fields.py:76 -msgid "France" -msgstr "" - -#: utils/fields.py:77 -msgid "France, Metropolitan" -msgstr "" - -#: utils/fields.py:78 -msgid "Gabon" -msgstr "" - -#: utils/fields.py:79 -msgid "United Kingdom (Great Britain)" -msgstr "" - -#: utils/fields.py:80 -msgid "Grenada" -msgstr "" - -#: utils/fields.py:81 -msgid "Georgia" -msgstr "" - -#: utils/fields.py:82 -msgid "French Guiana" -msgstr "" - -#: utils/fields.py:83 -msgid "Ghana" -msgstr "" - -#: utils/fields.py:84 -msgid "Gibraltar" -msgstr "" - -#: utils/fields.py:85 -msgid "Greenland" -msgstr "" - -#: utils/fields.py:86 -msgid "Gambia" -msgstr "" - -#: utils/fields.py:87 -msgid "Guinea" -msgstr "" - -#: utils/fields.py:88 -msgid "Guadeloupe" -msgstr "" - -#: utils/fields.py:89 -msgid "Equatorial Guinea" -msgstr "" - -#: utils/fields.py:90 -msgid "Greece" -msgstr "" - -#: utils/fields.py:91 -msgid "South Georgia and the South Sandwich Islands" -msgstr "" - -#: utils/fields.py:92 -msgid "Guatemala" -msgstr "" - -#: utils/fields.py:93 -msgid "Guam" -msgstr "" - -#: utils/fields.py:94 -msgid "Guinea-Bissau" -msgstr "" - -#: utils/fields.py:95 -msgid "Guyana" -msgstr "" - -#: utils/fields.py:96 -msgid "Hong Kong" -msgstr "" - -#: utils/fields.py:97 -msgid "Heard & McDonald Islands" -msgstr "" - -#: utils/fields.py:98 -msgid "Honduras" -msgstr "" - -#: utils/fields.py:99 -msgid "Croatia" -msgstr "" - -#: utils/fields.py:100 -msgid "Haiti" -msgstr "" - -#: utils/fields.py:101 -msgid "Hungary" -msgstr "" - -#: utils/fields.py:102 -msgid "Indonesia" -msgstr "" - -#: utils/fields.py:103 -msgid "Ireland" -msgstr "" - -#: utils/fields.py:104 -msgid "Israel" -msgstr "" - -#: utils/fields.py:105 -msgid "India" -msgstr "" - -#: utils/fields.py:106 -msgid "British Indian Ocean Territory" -msgstr "" - -#: utils/fields.py:107 -msgid "Iraq" -msgstr "" - -#: utils/fields.py:108 -msgid "Islamic Republic of Iran" -msgstr "" - -#: utils/fields.py:109 -msgid "Iceland" -msgstr "" - -#: utils/fields.py:110 -msgid "Italy" -msgstr "" - -#: utils/fields.py:111 -msgid "Jamaica" -msgstr "" - -#: utils/fields.py:112 -msgid "Jordan" -msgstr "" - -#: utils/fields.py:113 -msgid "Japan" -msgstr "" - -#: utils/fields.py:114 -msgid "Kenya" -msgstr "" - -#: utils/fields.py:115 -msgid "Kyrgyzstan" -msgstr "" +msgid "of" +msgstr "vom" -#: utils/fields.py:116 -msgid "Cambodia" +msgid "Bookings" msgstr "" -#: utils/fields.py:117 -msgid "Kiribati" +msgid "Membership" msgstr "" -#: utils/fields.py:118 -msgid "Comoros" +msgid "booking/payment/edit/?$" msgstr "" -#: utils/fields.py:119 -msgid "St. Kitts and Nevis" +msgid "^$" msgstr "" -#: utils/fields.py:120 -msgid "Korea, Democratic People's Republic of" +msgid "support-us/?$" msgstr "" -#: utils/fields.py:121 -msgid "Korea, Republic of" -msgstr "" - -#: utils/fields.py:122 -msgid "Kuwait" -msgstr "" - -#: utils/fields.py:123 -msgid "Cayman Islands" -msgstr "" - -#: utils/fields.py:124 -msgid "Kazakhstan" -msgstr "" - -#: utils/fields.py:125 -msgid "Lao People's Democratic Republic" -msgstr "" - -#: utils/fields.py:126 -msgid "Lebanon" -msgstr "" - -#: utils/fields.py:127 -msgid "Saint Lucia" -msgstr "" - -#: utils/fields.py:128 -msgid "Liechtenstein" -msgstr "" - -#: utils/fields.py:129 -msgid "Sri Lanka" -msgstr "" - -#: utils/fields.py:130 -msgid "Liberia" -msgstr "" - -#: utils/fields.py:131 -msgid "Lesotho" -msgstr "" - -#: utils/fields.py:132 -msgid "Lithuania" -msgstr "" - -#: utils/fields.py:133 -msgid "Luxembourg" -msgstr "" - -#: utils/fields.py:134 -msgid "Latvia" -msgstr "" - -#: utils/fields.py:135 -msgid "Libyan Arab Jamahiriya" -msgstr "" - -#: utils/fields.py:136 -msgid "Morocco" -msgstr "" - -#: utils/fields.py:137 -msgid "Monaco" -msgstr "" - -#: utils/fields.py:138 -msgid "Moldova, Republic of" -msgstr "" - -#: utils/fields.py:139 -msgid "Madagascar" -msgstr "" - -#: utils/fields.py:140 -msgid "Marshall Islands" -msgstr "" - -#: utils/fields.py:141 -msgid "Mali" -msgstr "" - -#: utils/fields.py:142 -msgid "Mongolia" -msgstr "" - -#: utils/fields.py:143 -msgid "Myanmar" -msgstr "" - -#: utils/fields.py:144 -msgid "Macau" -msgstr "" - -#: utils/fields.py:145 -msgid "Northern Mariana Islands" -msgstr "" - -#: utils/fields.py:146 -msgid "Martinique" -msgstr "" - -#: utils/fields.py:147 -msgid "Mauritania" -msgstr "" - -#: utils/fields.py:148 -msgid "Monserrat" -msgstr "" - -#: utils/fields.py:149 -msgid "Malta" -msgstr "" - -#: utils/fields.py:150 -msgid "Mauritius" -msgstr "" - -#: utils/fields.py:151 -msgid "Maldives" -msgstr "" - -#: utils/fields.py:152 -msgid "Malawi" -msgstr "" - -#: utils/fields.py:153 -msgid "Mexico" -msgstr "" - -#: utils/fields.py:154 -msgid "Malaysia" -msgstr "" - -#: utils/fields.py:155 -msgid "Mozambique" -msgstr "" - -#: utils/fields.py:156 -msgid "Namibia" -msgstr "" - -#: utils/fields.py:157 -msgid "New Caledonia" -msgstr "" - -#: utils/fields.py:158 -msgid "Niger" -msgstr "" - -#: utils/fields.py:159 -msgid "Norfolk Island" -msgstr "" - -#: utils/fields.py:160 -msgid "Nigeria" -msgstr "" - -#: utils/fields.py:161 -msgid "Nicaragua" -msgstr "" +msgid "contact/?$" +msgstr "kontakt/?$" -#: utils/fields.py:162 -msgid "Netherlands" +msgid "login/?$" msgstr "" -#: utils/fields.py:163 -msgid "Norway" +msgid "signup/?$" msgstr "" -#: utils/fields.py:164 -msgid "Nepal" +msgid "history/?$" msgstr "" -#: utils/fields.py:165 -msgid "Nauru" +msgid "users/billing_address/?$" msgstr "" -#: utils/fields.py:166 -msgid "Niue" +msgid "booking/?$" msgstr "" -#: utils/fields.py:167 -msgid "New Zealand" +msgid "booking/payment/?$" msgstr "" -#: utils/fields.py:168 -msgid "Oman" +msgid "booking/orders/(?P\\d+)/?$" msgstr "" -#: utils/fields.py:169 -msgid "Panama" +msgid "booking/orders/?$" msgstr "" -#: utils/fields.py:170 -msgid "Peru" +msgid "membership/payment/?$" msgstr "" -#: utils/fields.py:171 -msgid "French Polynesia" +msgid "membership/activated/?$" msgstr "" -#: utils/fields.py:172 -msgid "Papua New Guinea" +msgid "membership/deactivate/?$" msgstr "" -#: utils/fields.py:173 -msgid "Philippines" +msgid "membership/reactivate/?$" msgstr "" -#: utils/fields.py:174 -msgid "Pakistan" +msgid "membership/deactivate/success/?$" msgstr "" -#: utils/fields.py:175 -msgid "Poland" +msgid "membership/pricing/?$" msgstr "" -#: utils/fields.py:176 -msgid "St. Pierre & Miquelon" +msgid "membership/orders/(?P\\d+)/?$" msgstr "" -#: utils/fields.py:177 -msgid "Pitcairn" -msgstr "" - -#: utils/fields.py:178 -msgid "Puerto Rico" -msgstr "" - -#: utils/fields.py:179 -msgid "Portugal" -msgstr "" - -#: utils/fields.py:180 -msgid "Palau" -msgstr "" +#, fuzzy +#| msgid "supporters/?$" +msgid "membership/orders/?$" +msgstr "befurworter/?$" -#: utils/fields.py:181 -msgid "Paraguay" -msgstr "" - -#: utils/fields.py:182 -msgid "Qatar" -msgstr "" - -#: utils/fields.py:183 -msgid "Reunion" -msgstr "" - -#: utils/fields.py:184 -msgid "Romania" -msgstr "" +msgid "supporters/?$" +msgstr "befurworter/?$" -#: utils/fields.py:185 -msgid "Russian Federation" +msgid "Message Successfully Sent" msgstr "" -#: utils/fields.py:186 -msgid "Rwanda" -msgstr "" - -#: utils/fields.py:187 -msgid "Saudi Arabia" -msgstr "" - -#: utils/fields.py:188 -msgid "Solomon Islands" -msgstr "" - -#: utils/fields.py:189 -msgid "Seychelles" -msgstr "" - -#: utils/fields.py:190 -msgid "Sudan" -msgstr "" - -#: utils/fields.py:191 -msgid "Sweden" -msgstr "" - -#: utils/fields.py:192 -msgid "Singapore" -msgstr "" +#~ msgid "Enter your name or company name" +#~ msgstr "Geben Sie Ihren Namen oder der Ihrer Firma ein" -#: utils/fields.py:193 -msgid "St. Helena" -msgstr "" - -#: utils/fields.py:194 -msgid "Slovenia" -msgstr "" - -#: utils/fields.py:195 -msgid "Svalbard & Jan Mayen Islands" -msgstr "" - -#: utils/fields.py:196 -msgid "Slovakia" -msgstr "" - -#: utils/fields.py:197 -msgid "Sierra Leone" -msgstr "" - -#: utils/fields.py:198 -msgid "San Marino" -msgstr "" - -#: utils/fields.py:199 -msgid "Senegal" -msgstr "" - -#: utils/fields.py:200 -msgid "Somalia" -msgstr "" - -#: utils/fields.py:201 -msgid "Suriname" -msgstr "" - -#: utils/fields.py:202 -msgid "Sao Tome & Principe" -msgstr "" - -#: utils/fields.py:203 -msgid "El Salvador" -msgstr "" - -#: utils/fields.py:204 -msgid "Syrian Arab Republic" -msgstr "" - -#: utils/fields.py:205 -msgid "Swaziland" -msgstr "" - -#: utils/fields.py:206 -msgid "Turks & Caicos Islands" -msgstr "" - -#: utils/fields.py:207 -msgid "Chad" -msgstr "" - -#: utils/fields.py:208 -msgid "French Southern Territories" -msgstr "" - -#: utils/fields.py:209 -msgid "Togo" -msgstr "" - -#: utils/fields.py:210 -msgid "Thailand" -msgstr "" - -#: utils/fields.py:211 -msgid "Tajikistan" -msgstr "" - -#: utils/fields.py:212 -msgid "Tokelau" -msgstr "" - -#: utils/fields.py:213 -msgid "Turkmenistan" -msgstr "" - -#: utils/fields.py:214 -msgid "Tunisia" -msgstr "" - -#: utils/fields.py:215 -msgid "Tonga" -msgstr "" - -#: utils/fields.py:216 -msgid "East Timor" -msgstr "" - -#: utils/fields.py:217 -msgid "Turkey" -msgstr "" - -#: utils/fields.py:218 -msgid "Trinidad & Tobago" -msgstr "" - -#: utils/fields.py:219 -msgid "Tuvalu" -msgstr "" - -#: utils/fields.py:220 -msgid "Taiwan, Province of China" -msgstr "" - -#: utils/fields.py:221 -msgid "Tanzania, United Republic of" -msgstr "" - -#: utils/fields.py:222 -msgid "Ukraine" -msgstr "" - -#: utils/fields.py:223 -msgid "Uganda" -msgstr "" - -#: utils/fields.py:224 -msgid "United States Minor Outlying Islands" -msgstr "" - -#: utils/fields.py:225 -msgid "United States of America" -msgstr "" - -#: utils/fields.py:226 -msgid "Uruguay" -msgstr "" - -#: utils/fields.py:227 -msgid "Uzbekistan" -msgstr "" - -#: utils/fields.py:228 -msgid "Vatican City State (Holy See)" -msgstr "" - -#: utils/fields.py:229 -msgid "St. Vincent & the Grenadines" -msgstr "" - -#: utils/fields.py:230 -msgid "Venezuela" -msgstr "" - -#: utils/fields.py:231 -msgid "British Virgin Islands" -msgstr "" - -#: utils/fields.py:232 -msgid "United States Virgin Islands" -msgstr "" - -#: utils/fields.py:233 -msgid "Viet Nam" -msgstr "" - -#: utils/fields.py:234 -msgid "Vanuatu" -msgstr "" - -#: utils/fields.py:235 -msgid "Wallis & Futuna Islands" -msgstr "" - -#: utils/fields.py:236 -msgid "Samoa" -msgstr "" - -#: utils/fields.py:237 -msgid "Yemen" -msgstr "" - -#: utils/fields.py:238 -msgid "Mayotte" -msgstr "" - -#: utils/fields.py:239 -msgid "Yugoslavia" -msgstr "" - -#: utils/fields.py:240 -msgid "South Africa" -msgstr "" - -#: utils/fields.py:241 -msgid "Zambia" -msgstr "" - -#: utils/fields.py:242 -msgid "Zaire" -msgstr "" - -#: utils/fields.py:243 -msgid "Zimbabwe" -msgstr "" - -#: utils/fields.py:244 -msgid "Unknown or unspecified country" -msgstr "" - -#: utils/forms.py:21 -msgid "Enter your name or company name" -msgstr "Geben Sie Ihren Namen oder der Ihrer Firma ein" - -#: utils/forms.py:106 -msgid "Cardholder Name" -msgstr "Name des Kartenbesitzer" - -#: utils/forms.py:122 -msgid "Street Building" -msgstr "" +#~ msgid "Cardholder Name" +#~ msgstr "Name des Kartenbesitzer" -#: utils/forms.py:142 -msgid "Name" -msgstr "Name" +#~ msgid "Name" +#~ msgstr "Name" -#: utils/forms.py:143 -msgid "Email" -msgstr "Email" +#~ msgid "Email" +#~ msgstr "Email" -#: utils/forms.py:144 -msgid "Phone number" -msgstr "Telefon" +#~ msgid "Phone number" +#~ msgstr "Telefon" -#: utils/forms.py:145 -msgid "Message" -msgstr "Nachricht" +#~ msgid "Message" +#~ msgstr "Nachricht" #, fuzzy #~ msgid "Card number" diff --git a/dynamicweb/urls.py b/dynamicweb/urls.py index 699ce50b..884c95b4 100644 --- a/dynamicweb/urls.py +++ b/dynamicweb/urls.py @@ -5,7 +5,9 @@ from django.conf.urls.static import static from django.views import i18n, static as static_view from django.conf import settings -from hosting.views import RailsHostingView, DjangoHostingView, NodeJSHostingView +from hosting.views import ( + RailsHostingView, DjangoHostingView, NodeJSHostingView +) from membership import urls as membership_urls from ungleich_page.views import LandingView from django.views.generic import RedirectView diff --git a/hosting/forms.py b/hosting/forms.py index 056d0004..7be7a588 100644 --- a/hosting/forms.py +++ b/hosting/forms.py @@ -29,6 +29,8 @@ class HostingUserLoginForm(forms.Form): def clean(self): email = self.cleaned_data.get('email') password = self.cleaned_data.get('password') + if self.errors: + return self.cleaned_data is_auth = authenticate(email=email, password=password) if not is_auth: raise forms.ValidationError( diff --git a/hosting/locale/de/LC_MESSAGES/django.po b/hosting/locale/de/LC_MESSAGES/django.po index 52dd33da..b398b22e 100644 --- a/hosting/locale/de/LC_MESSAGES/django.po +++ b/hosting/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-10-06 01:59+0530\n" +"POT-Creation-Date: 2017-10-16 01:06+0530\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -155,9 +155,6 @@ msgstr "Ich möchte einen existierenden SSH-Key nutzen" msgid "Upload" msgstr "Hochladen" -msgid "Your VM hosted in Switzerland" -msgstr "Deine VM in der Schweiz" - msgid "Set your new password" msgstr "Setze Dein neues Passwort" @@ -195,101 +192,78 @@ msgid "Support / Contact" msgstr "Support / Kontakt" #, python-format -msgid "" -"You have ordered a new virtual machine!\n" -"
\n" -"Your order of [%(vm_name)s] has been charged.

\n" -"You can view your invoice by clicking the button below.

\n" -msgstr "" -"Du hast eine neue virtuelle Maschine bestellt!
\n" -"Deine Bestellung von [%(vm_name)s] wurde erhoben.

\n" -"Um die Rechnung zu sehen, klicke auf den Button unten.

\n" +msgid "Your New VM %(vm_name)s" +msgstr "Deine Neue VM %(vm_name)s" -msgid "View Invoice" -msgstr "Zur Rechnung" +msgid "You have ordered a new virtual machine!" +msgstr "Du hast eine neue virtuelle Maschine bestellt!" #, python-format -msgid "" -"You have ordered a new virtual machine!\n" -"Your order of [%(vm_name)s] has been charged.\n" -"You can view your invoice here.\n" -msgstr "" -"Du hast eine neue virtuelle Maschine bestellt!\n" -"Deine Bestellung von [%(vm_name)s] wurde erhoben.\n" -"Um die Rechnung zu sehen, klicke hier.\n" +msgid "Your order of %(vm_name)s has been charged." +msgstr "Deine Bestellung von %(vm_name)s wurde erhoben." + +msgid "You can view your VM detail by clicking the button below." +msgstr "Um die Rechnung zu sehen, klicke auf den Button unten." + +msgid "View Detail" +msgstr "Details anzeigen" + +msgid "Your Data Center Light Team" +msgstr "Dein Data Center Light Team" + +#, python-format +msgid "Your order of %(vm_name)s has been charged." +msgstr "Deine Bestellung von %(vm_name)s wurde erhoben." + +msgid "You can view your VM detail by following the link below." +msgstr "Um die Rechnung zu sehen, klicke auf den Link unten." msgid "Password Reset" msgstr "Passwort zurücksetzen" -#, python-format -msgid "" -"\n" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s.
\n" -"Please go to the following page and choose a new password: %(base_url)s" -"%(password_reset_url)s
\n" -"If you didn't request a new password, ignore this e-mail.
\n" -"Thank you!\n" +msgid "We received a request to reset your password." +msgstr "Wir haben eine Anfrage erhalten, um Dein Passwort zurückzusetzen." + +msgid "If you didn't make this request you can safely ignore this email." msgstr "" -"\n" -"Du erhälst diese E-Mail da Du Dein Passwort für Deinen Account bei " -"%(site_name)s zurücksetzen möchtest.
\n" -"Bitte folge diesem Link und wähle ein neues Passwort: %(base_url)s" -"%(password_reset_url)s Solltest Du kein neues Passwort angefordert haben, " -"dann ignoriere diese E-Mail.
\n" -"Dankeschön!\n" +"Falls Du kein neues Passwort angefragt hast, kannst Du diese E-mail " +"ignorieren." + +msgid "Otherwise, click here to reset your password." +msgstr "Andernfalls klicke hier, um Dein Passwort zurückzusetzen." + +msgid "Thank you!" +msgstr "Dankeschön!" + +msgid "Virtual Machine Cancellation" +msgstr "VM Kündigung" #, python-format msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s.\n" -"Please go to the following page and choose a new password: %(base_url)s" -"%(password_reset_url)s\n" -"If you didn't request a new password, ignore this e-mail.\n" -"Thank you!\n" +"You are receiving this email because your virutal machine " +"%(vm_name)s has been cancelled." msgstr "" -"Du erhälst diese E-Mail da Du Dein Passwort für Deinen Account bei " -"%(site_name)s zurücksetzen möchtest.\n" -"Bitte folge diesem Link und wähle ein neues Passwort: %(base_url)s" -"%(password_reset_url)s Solltest Du kein neues Passwort angefordert haben, " -"dann ignoriere diese E-Mail.\n" -"Dankeschön!\n" +"Du erhälst diese E-Mail, da deine virtuelle Maschine %(vm_name)s gekündigt wurde." + +msgid "You can always order a new VM by clicking the button below." +msgstr "" +"Du kannst einfach eine neue VM bestellen, indem Du den Knopf weiter unten " +"drückst." + +msgid "CREATE VM" +msgstr "NEUE VM" #, python-format msgid "" -"You're receiving this mail because your virtual machine [%(vm_name)s] has " -"been cancelled.
\n" -"You can see your order status by clicking [my VM page] below.
\n" -"If you want to order a new virtual machine, you can do it by clicking this link.
\n" +"You are receiving this email because your virutal machine %(vm_name)s has " +"been cancelled." msgstr "" -"Du erhälst diese E-Mail, Da Deine virtuelle Maschine [%(vm_name)s] gekündigt " -"wurde.
\n" -"Um Deinen Auftragsstatus zu sehen, klicke auf die [my VM page] unten.
\n" -"Falls Du eine neue virtuelle Maschine bestellen möchtest, kannst Du dies " -"tun, indem Du diesen " -"Link klickst.
\n" +"Du erhälst diese E-Mail, da deine virtuelle Maschine %(vm_name)s gekündigt " +"wurde." -msgid "My VM page" -msgstr "Meine VM page" - -#, python-format -msgid "" -"You're receiving this mail because your virtual machine [%(vm_name)s] has " -"been cancelled.\n" -"You can see your order status by clicking here\n" -"%(base_url)s%(vm_order_url)s\n" -"If you want to order a new virtual machine, you can do it by clicking this " -"link.\n" -"%(base_url)s%(my_virtual_machines_url)s\n" +msgid "You can always order a new VM by following the link below." msgstr "" -"Du erhälst diese E-Mail, da Deine virtuelle Maschine [%(vm_name)s] gekündigt " -"wurde.\n" -"Um Deinen Auftragsstatus zu sehen, klicke hier.\n" -"%(base_url)s%(vm_order_url)s\n" -"Falls Du eine neue virtuelle Maschine bestellen möchtest, kannst Du dies " -"tun, indem Du diesen Link klickst.\n" -"%(base_url)s%(my_virtual_machines_url)s\n" msgid "Card Number" msgstr "Kreditkartennummer" @@ -322,13 +296,16 @@ msgstr "Dashboard" msgid "Logout" msgstr "Abmelden" -msgid "Don't have an account yet ? " +msgid "Log in" +msgstr "Anmelden" + +msgid "Don't have an account yet ?" msgstr "Besitzt du kein Benutzerkonto?" msgid "Sign up" msgstr "Registrieren" -msgid "Forgot your password ? " +msgid "Forgot your password ?" msgstr "Passwort vergessen?" msgid "Resend activation link" @@ -485,7 +462,7 @@ msgstr "Deine Kreditkartennummer" msgid "Submit" msgstr "Absenden" -msgid "Reset your password" +msgid "Password reset" msgstr "Passwort zurücksetzen" msgid "UPDATE" @@ -652,12 +629,6 @@ msgstr "" "Um auf Deine VM zuzugreifen, füge Deinen SSH-" "Key hinzu" -msgid "CREATE VM" -msgstr "NEUE VM" - -msgid "View Detail" -msgstr "Details anzeigen" - msgid "login" msgstr "anmelden" @@ -682,6 +653,9 @@ msgstr "Dein Account wurde aktiviert." msgid "You can now" msgstr "Du kannst dich nun" +msgid "Welcome to Data Center Light!" +msgstr "Willkommen beim Data Center Light!" + msgid "Sorry. Your request is invalid." msgstr "Entschuldigung, deine Anfrage ist ungültig." @@ -752,14 +726,21 @@ msgstr "" msgid "Error terminating VM" msgstr "Fehler beenden VM" -msgid "Virtual Machine Cancellation" -msgstr "VM Kündigung" +#, python-format +msgid "Virtual Machine %(vm_name)s Cancelled" +msgstr "Virtuelle Maschine %(vm_name)s Kündigung" msgid "There was an error processing your request. Please try again." msgstr "" "Es gab einen Fehler bei der Bearbeitung Deine Anfrage. Bitte versuche es " "noch einmal." +#~ msgid "Reset your password" +#~ msgstr "Passwort zurücksetzen" + +#~ msgid "My VM page" +#~ msgstr "Meine VM page" + #~ msgid "Invoice Date" #~ msgstr "Rechnung Datum" @@ -787,12 +768,27 @@ msgstr "" #~ msgid "Start VM" #~ msgstr "VM jetzt starten" +#~ msgid "View Invoice" +#~ msgstr "Zur Rechnung" + +#~ msgid "" +#~ "You're receiving this mail because your virtual machine [%(vm_name)s] has " +#~ "been cancelled.
\n" +#~ "You can see your order status by clicking [my VM page] below.
\n" +#~ "If you want to order a new virtual machine, you can do it by clicking this link.
\n" +#~ msgstr "" +#~ "Du erhälst diese E-Mail, da deine virtuelle Maschine [%(vm_name)s] " +#~ "gekündigt wurde.
\n" +#~ "Um deinen Auftragsstatus zu sehen, klicke auf die [my VM page] unten.
\n" +#~ "Falls du eine neue virtuelle Maschine bestellen möchtest, kannst du dies " +#~ "tun, indem du diesen " +#~ "Link klickst.
\n" + #~ msgid "Finish Configuration" #~ msgstr "Konfiguration beenden" -#~ msgid "Your New VM %(vm_name)s at Data Center Light" -#~ msgstr "Deine neue VM %(vm_name)s bei Data Center Light" - #~ msgid "My Virtual Machines" #~ msgstr "Meine virtuellen Maschinen" @@ -841,9 +837,6 @@ msgstr "" #~ msgid "Keys" #~ msgstr "Keys" -#~ msgid "Log in" -#~ msgstr "Anmelden" - #~ msgid "You haven been logged out" #~ msgstr "Du wurdest abgemeldet" diff --git a/hosting/models.py b/hosting/models.py index 49932f69..04f3ae30 100644 --- a/hosting/models.py +++ b/hosting/models.py @@ -1,7 +1,9 @@ import os import logging +from dateutil.relativedelta import relativedelta from django.db import models +from django.utils import timezone from django.utils.functional import cached_property from Crypto.PublicKey import RSA from membership.models import StripeCustomer, CustomUser @@ -172,3 +174,9 @@ class VMDetail(models.Model): ipv6 = models.TextField(default='') created_at = models.DateTimeField(auto_now_add=True) terminated_at = models.DateTimeField(null=True) + + def end_date(self): + end_date = self.terminated_at if self.terminated_at else timezone.now() + months = relativedelta(end_date, self.created_at).months or 1 + end_date = self.created_at + relativedelta(months=months, days=-1) + return end_date diff --git a/hosting/static/hosting/css/commons.css b/hosting/static/hosting/css/commons.css index 7dad471e..9c0d7131 100644 --- a/hosting/static/hosting/css/commons.css +++ b/hosting/static/hosting/css/commons.css @@ -18,7 +18,7 @@ } .content-dashboard{ - min-height: calc(100vh - 70px); + min-height: calc(100vh - 60px); width: 80%; margin: 0 auto; max-width: 1120px; @@ -66,7 +66,9 @@ width: 280px; } .content-dashboard { - width: 90%; + padding-left: 15px; + padding-right: 15px; + width: 100%; } } .btn:focus, .btn:active:focus { @@ -296,10 +298,6 @@ max-width: 360px; } -.btn-wide { - min-width: 100px; -} - .caps-link { font-weight: 600; color: #8da4c0; @@ -395,4 +393,12 @@ .thick-hr { border-top: 5px solid #eee; +} + +.locale_date { + opacity: 0; +} + +.locale_date.done{ + opacity: 1; } \ No newline at end of file diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css index acc488ac..f989d479 100644 --- a/hosting/static/hosting/css/landing-page.css +++ b/hosting/static/hosting/css/landing-page.css @@ -17,9 +17,11 @@ h3, h4, h5, h6 { - /*font-family: 'Lato-Regular', sans-serif;*/ font-family: 'Lato', sans-serif; - /*font-weight: 300;*/ +} + +.allcaps { + text-transform: uppercase; } .topnav { @@ -31,6 +33,11 @@ h6 { .navbar-brand { padding: 10px 15px; } +@media (max-width: 767px) { + .navbar-brand { + padding: 10px 0; + } +} .navbar-default { background: #fff; @@ -46,7 +53,7 @@ h6 { .navbar-transparent { background: transparent; border: none; - padding: 20px; + padding: 20px 0; box-shadow: none; } @@ -72,7 +79,6 @@ h6 { .navbar-transparent #logoWhite{ display: block; width: 220px; - /* color: #fff; */ } .navbar-right .highlights-dropdown .dropdown-menu { @@ -92,16 +98,6 @@ h6 { border-color: #e7e7e7; box-shadow: -8px 14px 20px -5px rgba(77, 77, 77, 0.5); } -/* .navbar-right .highlights-dropdown .dropdown-menu:before { - content: ''; - display: block; - height: 1px; - background: #e7e7e7; - position: absolute; - top: -1px; - left: -1px; - right: -1px; - } */ } .navbar-right .highlights-dropdown .dropdown-menu > li > a{ font-size: 13px; @@ -274,16 +270,15 @@ h6 { /*------Auth section---------*/ .auth-container { - min-height: calc(100vh - 120px); + min-height: calc(100vh - 180px); position: relative; - /* flex-grow: 1; */ display: flex; flex-direction: column; justify-content: center; } .auth-bg { - background: url(../img/auth-bg-sm.jpg); + background: url(../img/pattern.jpg) no-repeat center center; position: fixed; left: 0; top: 0; @@ -293,7 +288,6 @@ h6 { background-position: center center; background-size: cover; background-attachment: fixed; - } .auth-bg::before { @@ -303,7 +297,7 @@ h6 { bottom: 0; left: 0; right: 0; - background: rgba(75, 75, 101, 0.55); + background: rgba(90, 116, 175, 0.7); z-index: 1; } @@ -313,69 +307,38 @@ h6 { .auth-container .auth-content { width: 100%; - margin: 0 auto; - max-width: 390px; + margin: 0 auto 15px; + max-width: 400px; + padding: 0 15px; } -.auth-container .auth-center { - /* position: absolute; */ - /* left: 50%; */ - /* top: 50%; */ - /* transform: translate(-50%, -50%); */ - /* width: 100%; */ -} - -.auth-container .auth-title { - margin-bottom: 50px; -} - -.auth-container .auth-title h2 { - color: #fff; - font-size: 44px; - text-align: center; - width: 425px; - margin: 0 auto; - margin-bottom: 30px; - position: relative; -} - -.auth-container .auth-title h2::after { - content: ""; - position: absolute; - bottom: -20px; - background: #fff; - height: 7px; - width: 70px; - left: 50%; - transform: translate(-50%, 0); +.auth-container .auth-content.wide { + max-width: 480px; } .auth-box { + position: relative; background: #fff; - padding: 0; - padding-bottom: 30px; + padding: 40px 20px 20px; box-sizing: border-box; - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); - border-radius: 4px; + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.09), 0 5px 5px rgba(0, 0, 0, 0.23); z-index: 10; } .auth-box .section-heading { color: #5a5a5a; - padding-top: 30px; - padding-bottom: 5px; + font-weight: 300; text-align: center; - text-transform: uppercase; - letter-spacing: 3px; - font-size: 20px; + letter-spacing: 1px; + font-size: 36px; border-radius: 3px 3px 0px 0px; - margin: 0 auto; + margin: 0 auto 10px; } .auth-box .form { padding: 20px; - width: 80%; margin: 0 auto; + max-width: 360px; } .auth-box .form .red { @@ -383,27 +346,56 @@ h6 { } .auth-box .form .btn { - box-shadow: 0 0px 9px rgba(0, 0, 0, 0.19), 0 3px 5px rgba(0, 0, 0, 0.23); - letter-spacing: 3px; - font-size: 17px; + letter-spacing: 2px; + font-size: 16px; + padding: 6px 12px; + min-width: 140px; + margin-top: 15px; text-transform: uppercase; } .auth-box .form .form-control { - height: 44px; - font-size: 16px; + height: 48px; + font-size: 14px; + padding: 10px 17px; + line-height: 30px; + border-color: #aaa; +} + +.auth-box .form .form-control:focus, +.auth-box .form .form-control:active { + box-shadow: none; + border-radius: 0; +} + +.auth-box .form-control::-webkit-input-placeholder { + color: #aaa; +} + +.auth-box .form-control:-moz-placeholder{ + /* Firefox 18- */ + color: #aaa; +} + +.auth-box .form-control::-moz-placeholder{ + /* Firefox 19+ */ + color: #aaa; +} + +.auth-box .form-control:-ms-input-placeholder { + color: #aaa; } .auth-box .auth-footer { text-align: center; - padding: 10px; + padding: 5px; } -.auth-box .auth-footer .text { +.auth-box .auth-footer { color: #777; } -.auth-box .auth-footer .links a { +.auth-box .auth-footer a { color: #1e94cc; } @@ -411,20 +403,11 @@ h6 { color: #1e94cc; } -.auth-box.sign-up { - padding-bottom: 5px; -} - -.auth-box.sign-up .form { - padding: 15px 20px 0 20px; -} - .sign-up-message { padding: 25px 30px 25px 30px; text-align: center; font-size: 18px; line-height: 30px; - /*font-family: 'Lato' !important;*/ font-weight: 300 !important; } @@ -458,16 +441,7 @@ h6 { } .auth-box .form { - padding: 15px 0px 0 0; - } - - .auth-box.sign-up .form { - padding: 15px 0px 0 0; - } - - .auth-box .form .form-control { - height: 44px; - font-size: 13px; + padding: 15px 0 15px 0; } .auth-container .auth-title { @@ -476,7 +450,7 @@ h6 { } .auth-box .msg-list { - padding: 15px 25px 5px; + padding: 20px 25px 0; text-align: center; } @@ -493,19 +467,14 @@ h6 { margin-bottom: 50px; } - .auth-box .form { - width: 90%; - } - .auth-box .section-heading { - font-size: 15px; + font-size: 32px; } } footer { - padding: 20px; + padding: 20px 0; background-color: #f8f8f8; -/* position: absolute */ right: 0; bottom: 0; left: 0; @@ -537,7 +506,6 @@ a.unlink:hover { /***** DCL payment page **********/ .dcl-order-container { - /*font-family: Lato;*/ font-weight: 300; } @@ -580,9 +548,7 @@ a.unlink:hover { } .dcl-place-order-text{ - /* font-size: 13px; */ color: #808080; - /* margin-bottom: 15px; */ } .dcl-order-table-total .tbl-total { @@ -610,7 +576,6 @@ a.unlink:hover { } .card-warning-content { - /*font-family: Lato;*/ font-weight: 300; border: 1px solid #a1a1a1; border-radius: 3px; @@ -638,18 +603,6 @@ a.unlink:hover { right: 0; } -.brand { -} - -.brand #brand-icon { -} - -.card-number-element { -} - -.card-expiry-element { -} - .card-cvc-element label { padding-left: 10px; } @@ -735,9 +688,6 @@ a.unlink:hover { margin-bottom: 30px; } - .brand { - } - .card-expiry-element { padding-right: 10px; } @@ -802,10 +752,23 @@ a.unlink:hover { } } - -.footer-light a:hover, .footer-light a:focus, .footer-light a:active { +.footer-light { + position: relative; +} +.footer-light footer { + background: transparent; + color: #eee; +} +.footer-light a, +.footer-light .text-muted { color: #ddd; } +.footer-light a:hover, .footer-light a:focus, .footer-light a:active { + color: #fff; +} +.footer-vm p.copyright { + margin-top: 4px; +} .visible-mobile { display: none !important; diff --git a/hosting/static/hosting/img/pattern.jpg b/hosting/static/hosting/img/pattern.jpg new file mode 100644 index 00000000..7c66e007 Binary files /dev/null and b/hosting/static/hosting/img/pattern.jpg differ diff --git a/hosting/static/hosting/img/pattern_original.jpg b/hosting/static/hosting/img/pattern_original.jpg new file mode 100644 index 00000000..8ae4c0f2 Binary files /dev/null and b/hosting/static/hosting/img/pattern_original.jpg differ diff --git a/hosting/static/hosting/js/payment.js b/hosting/static/hosting/js/payment.js index 6149a30a..ef59416b 100644 --- a/hosting/static/hosting/js/payment.js +++ b/hosting/static/hosting/js/payment.js @@ -49,7 +49,7 @@ $(document).ready(function () { var hasCreditcard = window.hasCreditcard || false; - if (!hasCreditcard) { + if (!hasCreditcard && window.stripeKey) { var stripe = Stripe(window.stripeKey); var element_style = { fonts: [{ @@ -88,31 +88,6 @@ $(document).ready(function () { } } }; - var credit_card_cvv_style = { - base: { - iconColor: '#666EE8', - color: '#31325F', - lineHeight: '25px', - fontWeight: 300, - fontFamily: "'lato-regular', sans-serif", - fontSize: '14px', - '::placeholder': { - color: '#555' - } - }, - invalid: { - iconColor: '#eb4d5c', - color: '#eb4d5c', - lineHeight: '25px', - fontWeight: 300, - fontFamily: "'lato-regular', sans-serif", - fontSize: '14px', - '::placeholder': { - color: '#eb4d5c', - fontWeight: 600 - } - } - }; var enter_ccard_text = "Enter your credit card number"; if (typeof window.enter_your_card_text !== 'undefined') { @@ -139,8 +114,6 @@ $(document).ready(function () { } }); } - console.log("has creditcard", hasCreditcard); - // hasCreditcard= true; var submit_form_btn = $('#payment_button_with_creditcard'); submit_form_btn.on('click', submit_payment); @@ -148,11 +121,7 @@ $(document).ready(function () { function submit_payment(e) { e.preventDefault(); - console.log("creditcard sdasd"); - // if (hasCreditcard) { $('#billing-form').submit(); - // } - } @@ -164,7 +133,6 @@ $(document).ready(function () { function stripeTokenHandler(token) { // Insert the token ID into the form so it gets submitted to the server - var form = document.getElementById('payment-form-new'); $('#id_token').val(token.id); $('#billing-form').submit(); } @@ -227,13 +195,5 @@ $(document).ready(function () { $(element).closest('.form-group').append(error); } }); - // $form.find('[type=submit]').prop('disabled', true); - // var readyInterval = setInterval(function() { - // if (paymentFormReady()) { - // $form.find('[type=submit]').prop('disabled', false); - // clearInterval(readyInterval); - // } - // }, 250); - }); diff --git a/hosting/templates/hosting/base_short.html b/hosting/templates/hosting/base_short.html index 07d3a54b..613d67a9 100644 --- a/hosting/templates/hosting/base_short.html +++ b/hosting/templates/hosting/base_short.html @@ -33,7 +33,7 @@ - + @@ -54,19 +54,18 @@ {% include "hosting/includes/_navbar_user.html" %} {% endblock navbar %} - -
+
{% block content %} {% endblock %}
{% if request.user.is_authenticated %} -
-
- -
-
+
+
+ +
+
{% else %}