diff --git a/Changelog b/Changelog index 11d2443f..1eaa55e5 100644 --- a/Changelog +++ b/Changelog @@ -1,10 +1,19 @@ -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 +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 +25,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 +56,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 +102,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 +113,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 +185,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 +204,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 a62dad8a..52d9623e 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-03 23:48+0530\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" diff --git a/datacenterlight/static/datacenterlight/css/landing-page.css b/datacenterlight/static/datacenterlight/css/landing-page.css index 0d0729fb..97599738 100755 --- a/datacenterlight/static/datacenterlight/css/landing-page.css +++ b/datacenterlight/static/datacenterlight/css/landing-page.css @@ -276,7 +276,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 +715,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 { 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/landing_payment.html b/datacenterlight/templates/datacenterlight/landing_payment.html index fa638d77..d195690b 100644 --- a/datacenterlight/templates/datacenterlight/landing_payment.html +++ b/datacenterlight/templates/datacenterlight/landing_payment.html @@ -25,14 +25,15 @@ <h3>{%trans "Log in" %}</h3> <hr class="top-hr"> <p style="margin-bottom: 20px;">{% blocktrans %}Already signed up?<br>By logging in you can retrieve saved billing information.{% endblocktrans %}</p> - <form role="form" id="login-form" method="post" action="{% url 'hosting:login' %}" novalidate> + <form role="form" id="login-form" method="post" action="" novalidate> {% for field in login_form %} {% csrf_token %} {% bootstrap_field field show_label=False type='fields'%} {% endfor %} + <p class="text-danger">{{login_form.non_field_errors|striptags}}</p> <input type='hidden' name='next' value='{{request.path}}'/> <div class="form-group text-right"> - <button type="submit" class="btn btn-wide btn-vm-contact">{% trans "LOGIN" %}</button> + <button type="submit" class="btn btn-wide btn-vm-contact" name="login_form">{% trans "LOGIN" %}</button> </div> </form> <p> @@ -58,7 +59,7 @@ {% endfor %} <form role="form" id="billing-form" method="post" action="" novalidate> {% csrf_token %} - {% for field in form %} + {% for field in billing_address_form %} {% bootstrap_field field show_label=False type='fields'%} {% endfor %} </form> @@ -153,22 +154,12 @@ {% endif %} <div id='payment_error'> {% for message in messages %} - {% if 'failed_payment' in message.tags or 'make_charge_error' in message.tags %} + {% if 'failed_payment' in message.tags or 'make_charge_error' in message.tags or 'error' in message.tags %} <ul class="list-unstyled"> <li><p class="card-warning-content card-warning-error">{{ message|safe }}</p></li> </ul> - {% elif not form.non_field_errors %} - <p class="card-warning-content"> - {% trans "You are not making any payment yet. After placing your order, you will be taken to the Submit Payment Page." %} - </p> {% endif %} {% endfor %} - - {% for error in form.non_field_errors %} - <p class="card-warning-content card-warning-error"> - {{ error|escape }} - </p> - {% endfor %} </div> <div class="text-right"> <button class="btn btn-vm-contact btn-wide" type="submit">{%trans "SUBMIT" %}</button> diff --git a/datacenterlight/urls.py b/datacenterlight/urls.py index 0c225817..2cd0723f 100644 --- a/datacenterlight/urls.py +++ b/datacenterlight/urls.py @@ -6,6 +6,8 @@ from .views import ( WhyDataCenterLightView, ContactUsView ) +from django.views.generic import TemplateView + urlpatterns = [ url(r'^$', IndexView.as_view(), name='index'), @@ -23,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 <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\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<pk>\\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<pk>\\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<pk>\\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<pk>\\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 960fb842..cf76d0b3 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-03 23:48+0530\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" @@ -173,6 +173,9 @@ msgstr "Anmelden" msgid "Create VM" msgstr "VM erstellen" +msgid "Affordable VM hosting based in Switzerland" +msgstr "Bezahlbares VM Hosting in der Schweiz" + msgid "My Dashboard" msgstr "Mein Dashboard" 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..ee4a82eb 100644 --- a/hosting/templates/hosting/base_short.html +++ b/hosting/templates/hosting/base_short.html @@ -33,7 +33,7 @@ <link href='//fonts.googleapis.com/css?family=Raleway' rel='stylesheet' type='text/css'> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"> <link href="//fonts.googleapis.com/css?family=Lato:300,400,500,700,300italic,400italic,700italic" rel="stylesheet" type="text/css"> - <link rel="shortcut icon" href="{% static 'hosting/img/favicon.ico' %}" type="image/x-icon" /> + <link rel="shortcut icon" href="{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon" /> <!-- 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:// --> diff --git a/hosting/templates/hosting/create_virtual_machine.html b/hosting/templates/hosting/create_virtual_machine.html index 4ba5274e..a614dd78 100644 --- a/hosting/templates/hosting/create_virtual_machine.html +++ b/hosting/templates/hosting/create_virtual_machine.html @@ -7,6 +7,7 @@ <div class="col-sm-5"> <div class="dashboard-container-head"> <h3 class="dashboard-title-thin"><img src="{% static 'hosting/img/plusVM.svg' %}" class="un-icon" style="margin-top: -18px;width: 42px;height: 42px;"> {% trans "Create VM" %}</h3> + <p style="padding-left: 16px;">{% trans "Affordable VM hosting based in Switzerland" %}</p> {% if messages %} <div class="alert alert-warning"> {% for message in messages %} diff --git a/hosting/views.py b/hosting/views.py index 007aa3fb..6b314f5b 100644 --- a/hosting/views.py +++ b/hosting/views.py @@ -762,14 +762,15 @@ class OrdersHostingDetailView(LoginRequiredMixin, def post(self, request): template = request.session.get('template') specs = request.session.get('specs') - stripe_customer_id = request.session.get('customer') - customer = StripeCustomer.objects.filter(id=stripe_customer_id).first() + # We assume that if the user is here, his/her StripeCustomer + # object already exists + stripe_customer_id = request.user.stripecustomer.id billing_address_data = request.session.get('billing_address_data') vm_template_id = template.get('id', 1) - + stripe_api_cus_id = self.request.session.get('customer') # Make stripe charge to a customer stripe_utils = StripeUtils() - card_details = stripe_utils.get_card_details(customer.stripe_id, + card_details = stripe_utils.get_card_details(stripe_api_cus_id, request.session.get( 'token')) if not card_details.get('response_object'): @@ -796,7 +797,7 @@ class OrdersHostingDetailView(LoginRequiredMixin, name=plan_name, stripe_plan_id=stripe_plan_id) subscription_result = stripe_utils.subscribe_customer_to_plan( - customer.stripe_id, + stripe_api_cus_id, [{"plan": stripe_plan.get( 'response_object').stripe_plan_id}]) stripe_subscription_obj = subscription_result.get('response_object') diff --git a/membership/locale/de/LC_MESSAGES/django.po b/membership/locale/de/LC_MESSAGES/django.po index 42846dab..970abb81 100644 --- a/membership/locale/de/LC_MESSAGES/django.po +++ b/membership/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-06-23 02:05+0530\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,42 +18,35 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: forms.py:43 msgid "Name" msgstr "" -#: forms.py:43 msgid "Card number" msgstr "" -#: forms.py:43 msgid "Expiry date" msgstr "" -#: forms.py:44 msgid "CCV" msgstr "" -#: models.py:66 msgid "staff status" msgstr "" -#: models.py:68 msgid "Designates whether the user can log into this admin site." msgstr "" -#: models.py:90 -msgid "Activate your " -msgstr "Aktiviere deinen " +msgid "Account Activation" +msgstr "" -#: models.py:90 -msgid " account" -msgstr " Account" - -#: models.py:198 msgid "Use this pattern(MM/YYYY)." msgstr "" -#: models.py:199 msgid "Wrong CCV number." msgstr "" + +#~ msgid "Activate your " +#~ msgstr "Aktiviere deinen " + +#~ msgid " account" +#~ msgstr " Account" diff --git a/ungleich_page/locale/de/LC_MESSAGES/django.po b/ungleich_page/locale/de/LC_MESSAGES/django.po index dfba87c5..78921c45 100644 --- a/ungleich_page/locale/de/LC_MESSAGES/django.po +++ b/ungleich_page/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-13 02:21+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,165 +18,192 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ungleich_page/templates/ungleich_page/includes/_about.html:8 +msgid "Toggle navigation" +msgstr "Umschalten" + +msgid "CONTACT" +msgstr "KONTAKT" + +msgid "HIGH SPEED INTERNET" +msgstr "" + +msgid "Thank you for contacting us." +msgstr "Nachricht gesendet." + +msgid "Your message was successfully sent to our team." +msgstr "Vielen Dank für Deine Nachricht." + +msgid "Name" +msgstr "" + +msgid "Please enter your name." +msgstr "Bitte gib Deinen Namen ein." + +msgid "Email" +msgstr "E-Mail-Adresse" + +msgid "Please enter a valid email address." +msgstr "Bitte gib eine gültige E-Mailadresse ein." + +msgid "Message" +msgstr "Nachricht" + +msgid "Sorry, there was an unexpected error. Kindly retry." +msgstr "" +"Bitte entschuldige, es scheint ein unerwarteter Fehler aufgetreten zu sein. " +"Versuche es doch bitte noch einmal." + +msgid "SUBMIT" +msgstr "ABSENDEN" + msgid "ABOUT" msgstr "Über ungleich" -#: ungleich_page/templates/ungleich_page/includes/_about.html:9 msgid "The timeline of ungleich" msgstr "Die Chronik von ungleich" -#: ungleich_page/templates/ungleich_page/includes/_about.html:24 msgid "The first incarnation of ungleich" msgstr "Die erste Inkarnation von ungleich" -#: ungleich_page/templates/ungleich_page/includes/_about.html:25 msgid "in Germany" msgstr "in Deutschland" -#: ungleich_page/templates/ungleich_page/includes/_about.html:37 msgid "ungleich founded" msgstr "ungleich gegründet" -#: ungleich_page/templates/ungleich_page/includes/_about.html:38 msgid "in Switzerland" msgstr "in der Schweiz" -#: ungleich_page/templates/ungleich_page/includes/_about.html:51 msgid "ungleich present at various conferences" msgstr "ungleich präsent an mehreren Konferenzen" -#: ungleich_page/templates/ungleich_page/includes/_about.html:65 msgid "ungleich introduces HA-Hosting" msgstr "ungleich führt HA-Hosting ein" -#: ungleich_page/templates/ungleich_page/includes/_about.html:66 msgid "and introduces affordable 24X7 support." msgstr "und führt kostengünstigen 24X7 Support ein." -#: ungleich_page/templates/ungleich_page/includes/_about.html:67 msgid "ungleich launches" msgstr "ungleich lanciert" -#: ungleich_page/templates/ungleich_page/includes/_about.html:68 msgid "Digital Glarus project" msgstr "Digital Glarus Projekt" -#: ungleich_page/templates/ungleich_page/includes/_about.html:74 +msgid "" +"ungleich launches <a href=\"https://www.alplora.ch/de/\">Alplora</a>, an " +"animal tracking service with LoraWAN technology." +msgstr "" +"ungleich startet das Projekt <a href=\"https://www.alplora.ch/de/\">AlpLora</" +"a>, mit dem Tiere via LoRaWAN geortet werden können" + +msgid "" +"ungleich sells <a href=\"https://www.alplora.ch/de/\">Alplora</a> to an IoT " +"startup in canton Zürich." +msgstr "" +"ungleich verkauft das Projekt <a href=\"https://www.alplora.ch/de/" +"\">AlpLora</a> an ein IoT-Startup aus dem Kanton Zürich" + +msgid "" +"ungleich showcases the most affordable Swiss VM hosting, Data Center Light." +msgstr "" +"ungleich stellt der Öffentlichkeit das modernste Schweizer Hosting vor, das " +"Data Center Light." + msgid "and" msgstr "und" -#: ungleich_page/templates/ungleich_page/includes/_about.html:74 msgid "the story continues!" msgstr "Die Geschichte geht weiter!" -#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:15 -#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:28 -#: ungleich_page/views.py:36 msgid "Contact Us" msgstr "Kontaktieren Sie uns" -#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:18 msgid "Join us at" msgstr "Schliessen Sie sich uns an" -#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:19 msgid "Digital Glarus" msgstr "Digital Glarus" -#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:20 msgid "a great co-working space in the middle of Alps!" msgstr "ein wunderschöner Co-Working Space mitten in den Alpen" -#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:21 msgid "You can contact us at" msgstr "Sie können uns kontaktieren unter" -#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:26 msgid "or" msgstr "oder" -#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:60 msgid "Submit" msgstr "Absenden" -#: ungleich_page/templates/ungleich_page/includes/_footer.html:8 msgid "Copyright © ungleich GmbH " msgstr "Copyright © ungleich GmbH" -#: ungleich_page/templates/ungleich_page/includes/_footer.html:22 msgid "ungleich Home" msgstr "ungleich Home" -#: ungleich_page/templates/ungleich_page/includes/_header.html:11 msgid "We Design, Configure & Maintain <br> Your Linux Infrastructure " msgstr "Wir designen, erstellen und warten Ihre Linux-Infrastruktur" -#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:8 -#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:9 -msgid "Hosting Products " -msgstr "Hosting Produkte" +msgid "Our Products" +msgstr "Unsere Produkte" -#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:16 -msgid "HA Hosting" -msgstr "HA Hosting" - -#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:18 msgid "" -"We offer high availablity hosting (HA) in Germany and in Switzerland. Our " -"infrastructure is powered by Free and Open Source Software like OpenNebula, " -"Qemu and GlusterFS." +"Our products include an innovative datacenter,<br>affordable VM hosting, and " +"high speed fiber internet for canton Glarus." msgstr "" -"Wir offerieren hohe Verfügbarkeit für das Hosting in Deutschland und in der " -"Schweiz. Unsere Infrastruktur ist unterstützt durch Free and Open Source " -"Software wie OpenNebula." +"Zu unseren Produkten gehört ein innovatives Rechenzentrum,<br>modernes VM-" +"Hosting und Glasfaser-Internet für den Kanton Glarus." + +msgid "Data Center Light" +msgstr "" + +#, python-format +msgid "" +"We offer the most affordable hosting in Switzerland. Data Center Light has " +"full FOSS stack, 100%% IPv6 and 100%% SSD. Choose any configuration among " +"CentOS, Debian, Ubuntu, Devuan, and FreeBSD." +msgstr "" +"Wir bieten Ihnen ein erschwingliches Hosting in der Schweiz. Data Center " +"Light basiert auf FOSS Software, 100%% IPv6 und 100%% SSD. Wählen Sie eine " +"beliebige Konfiguration unter CentOS, Debian, Ubuntu, Devuan oder FreeBSD." -#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:24 msgid "Rails Hosting" msgstr "Rails Hosting" -#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:26 msgid "" "Ready to go live with your Ruby on Rails application? We offer you ready-to-" "deploy virtual machines or configure your existing infrastructure for Ruby " "on Rails." msgstr "Sind bereit mit ihrem Ruby on Rails Applikation live zu gehen?" -#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:32 -msgid " Configuration as a Service" -msgstr "Konfiguration als Service" - -#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:34 -msgid "" -"You are in need for a configuration?<br>With ungleich you have found an " -"experienced team that configure your systems to provide service like DNS, E-" -"Mail, Databases or Webservers." +msgid "High Speed Internet" msgstr "" -"Sie brauchen eine Konfiguration? Mit ungleich haben sie ein erfahrenes Team " -"gefunden, dass ihnen die Konfiguration von DNS, E-Mail, Datenbanken oder " -"Webservern für ihr System anbietet" -#: ungleich_page/templates/ungleich_page/includes/_services.html:8 +msgid "" +"We offer high speed fiber internet in Glarus Süd, Glarus and Glarus Nord. " +"Experience 100 Mbit/s and see how speed can change everything." +msgstr "" +"Wir bieten außerdem Hochgeschwindigkeitsfaser Internet in Glarus Süd, Glarus " +"und Glarus Nord. Surfen Sie mit 100 Mbit/s und erleben Sie, wie " +"Geschwindigkeit alles ändern kann." + msgid "our services" msgstr "Unsere Dienstleistungen" -#: ungleich_page/templates/ungleich_page/includes/_services.html:10 msgid "We support our clients in all areas of Unix infrastructure." msgstr "" "Wir unterstützen unsere Klienten in allen Bereichen der Unix Infrastruktur." -#: ungleich_page/templates/ungleich_page/includes/_services.html:11 msgid "" "Our top notch configuration management is refreshingly simple and reliable." msgstr "" "Unser erstklassiges Konfigurationsmanagement ist erfrischend einfach und " "zuverlässig." -#: ungleich_page/templates/ungleich_page/includes/_services.html:20 msgid "Hosting" msgstr "Hosting" -#: ungleich_page/templates/ungleich_page/includes/_services.html:22 msgid "" "Ruby on Rails. Java hosting, Django hosting, we make it everything run " "smooth and safe." @@ -184,11 +211,9 @@ msgstr "" "Ruby on Rails. Java hosting, Django hosting, wir garantieren einen " "reibungslosen Ablauf" -#: ungleich_page/templates/ungleich_page/includes/_services.html:30 msgid "Configuration as a Service" msgstr "Konfiguration als Service" -#: ungleich_page/templates/ungleich_page/includes/_services.html:32 msgid "" "Ruby on Rails, Django, Java, Webserver, Mailserver, any infrastructure that " "needs to configured, we provide comprehensive solutions. Amazon, rackspace " @@ -198,11 +223,9 @@ msgstr "" "welche eine Konfiguration braucht, wir offerieren umfassende Lösungen, " "Amazon, Rackspace oder Bare Metal Servers, wir konfigurieren alles." -#: ungleich_page/templates/ungleich_page/includes/_services.html:40 msgid "Linux System Engineering" msgstr "Linux System Engineering" -#: ungleich_page/templates/ungleich_page/includes/_services.html:43 msgid "" "Let your developers develop! We take care of your system administration. " "Gentoo, Archlinux, Debian, Ubuntu, and many more." @@ -210,15 +233,12 @@ msgstr "" "Lassen sie ihre Entwickler entwickeln! Wir kümmern uns um ihre " "Systemadministration. Gentoo, Archlinux, Debian, Ubuntu und viele mehr." -#: ungleich_page/templates/ungleich_page/includes/_team.html:8 msgid "Why ungleich?*" msgstr "Warum ungleich?" -#: ungleich_page/templates/ungleich_page/includes/_team.html:9 msgid "What our customers say" msgstr "Was unsere Kunden sagen" -#: ungleich_page/templates/ungleich_page/includes/_team.html:29 msgid "" "\n" "\t\t\t \"ungleich helped us getting started with our internal\n" @@ -247,7 +267,6 @@ msgstr "" "Infrastruktur-Einrichtung erhalten, welche es unseren Technikern ermöglicht " "effizienter und bequemer zu arbeiten als zuvor." -#: ungleich_page/templates/ungleich_page/includes/_team.html:51 msgid "" "\n" "\t\t\t \"Thanks to ungleich team, who has designed and\n" @@ -265,7 +284,6 @@ msgstr "" "nur in der Kosteneinsparung aber auch zur Zeiteinsparung, was für IT-Firmen " "sehr wichtig ist." -#: ungleich_page/templates/ungleich_page/includes/_team.html:67 msgid "" "\n" "\t\t\t \"ungleich provided an excellent service in designing\n" @@ -292,7 +310,6 @@ msgstr "" "allen Firmen empfehlen, bei denen eine solide Infrastruktur stark gefragt " "ist." -#: ungleich_page/templates/ungleich_page/includes/_team.html:82 msgid "" "\n" "\t\t\t <strong>- Sebastian Plattner,</strong>\n" @@ -300,52 +317,60 @@ msgid "" "\t\t\t " msgstr "" -#: ungleich_page/templates/ungleich_page/includes/_team.html:95 msgid "*ungleich means not equal to (≠) U+2260." msgstr "*ungleich bedeutet nicht gleich wie (≠) U+2260." -#: ungleich_page/templates/ungleich_page/landing.html:85 -#, fuzzy -#| msgid "our services" msgid "Services" -msgstr "Unsere Dienstleistungen" +msgstr "Dienstleistungen" -#: ungleich_page/templates/ungleich_page/landing.html:90 msgid "products" msgstr "PRODUKTE" -#: ungleich_page/templates/ungleich_page/landing.html:93 msgid "About" msgstr "Über" -#: ungleich_page/templates/ungleich_page/landing.html:96 msgid "WHY UNGLEICH?" msgstr "WARUM UNGLEICH?" -#: ungleich_page/templates/ungleich_page/landing.html:99 msgid "BLOG" msgstr "BLOG" -#: ungleich_page/templates/ungleich_page/landing.html:102 -msgid "CONTACT" -msgstr "KONTAKT" - -#: ungleich_page/urls.py:8 -#, fuzzy -#| msgid "Contact Us" msgid "contact/$" -msgstr "Kontaktieren Sie uns" +msgstr "kontakt/$" -#: ungleich_page/views.py:26 msgid "Message Successfully Sent" msgstr "Nachricht erfolgreich versendet" -#: ungleich_page/views.py:37 msgid "If you have any question, just send us an email." msgstr "" "Wenn Sie irgendwelche Fragen haben, schicken Sie uns einfach eine E-Mail." -#, fuzzy -#~| msgid "Contact Us" +#~ msgid "Hosting Products " +#~ msgstr "Hosting Produkte" + +#~ msgid "HA Hosting" +#~ msgstr "HA Hosting" + +#~ msgid "" +#~ "We offer high availablity hosting (HA) in Germany and in Switzerland. Our " +#~ "infrastructure is powered by Free and Open Source Software like " +#~ "OpenNebula, Qemu and GlusterFS." +#~ msgstr "" +#~ "Wir offerieren hohe Verfügbarkeit für das Hosting in Deutschland und in " +#~ "der Schweiz. Unsere Infrastruktur ist unterstützt durch Free and Open " +#~ "Source Software wie OpenNebula." + +#~ msgid " Configuration as a Service" +#~ msgstr "Konfiguration als Service" + +#~ msgid "" +#~ "You are in need for a configuration?<br>With ungleich you have found an " +#~ "experienced team that configure your systems to provide service like DNS, " +#~ "E-Mail, Databases or Webservers." +#~ msgstr "" +#~ "Sie brauchen eine Konfiguration? Mit ungleich haben sie ein erfahrenes " +#~ "Team gefunden, dass ihnen die Konfiguration von DNS, E-Mail, Datenbanken " +#~ "oder Webservern für ihr System anbietet" + #~ msgid "Contact" #~ msgstr "Kontaktieren Sie uns" diff --git a/ungleich_page/static/ungleich_page/css/agency.css b/ungleich_page/static/ungleich_page/css/agency.css index 7e94523f..c898aa9f 100755 --- a/ungleich_page/static/ungleich_page/css/agency.css +++ b/ungleich_page/static/ungleich_page/css/agency.css @@ -418,7 +418,6 @@ section h3.section-subheading { #portfolio .portfolio-item .portfolio-caption h4 { margin: 0; - font-size: bold; text-transform: none; color: #494949; } diff --git a/ungleich_page/static/ungleich_page/css/glasfaser.css b/ungleich_page/static/ungleich_page/css/glasfaser.css new file mode 100644 index 00000000..a6518611 --- /dev/null +++ b/ungleich_page/static/ungleich_page/css/glasfaser.css @@ -0,0 +1,224 @@ +.topnav img { + height: 100%; +} + +.navbar-transparent #logoWhite { + width: 140px; +} +.navbar-default { + border-bottom: 1px solid #e7e7e7; +} + +.navbar-default .navbar-nav>li>a { + text-transform: uppercase; + font-weight: 400; + letter-spacing: 1px; + color: #777; +} +.navbar-transparent .navbar-nav>li>a { + color: #fff; +} + +.navbar-transparent .navbar-nav>li>a:hover, +.navbar-transparent .navbar-nav>li>a:focus, +.navbar-transparent .navbar-nav>li>a:focus:active { + color: #fed136; +} + +@media (min-width: 768px) { + .navbar-transparent { + border-color: transparent; + } + + .navbar-transparent { + background: rgba(0,0,0,0.05); + box-shadow: 0 0 55px rgba(0,0,0,0.09); + } +} + +.intro-header { + background: url(../img/glasfaser/header-nico-sans.jpg) no-repeat center center; + background-size: cover; + background-position: left; + background-color: rgb(118, 140, 163); + background-attachment: fixed; + flex-direction: column; + align-items: flex-start; + justify-content: space-between; + padding-top: 70px; +} + +.intro-header:before { + background: transparent; + background: rgba(0,0,0,0.2); +} + +.price-tag-container { + flex-grow: 1; + display: flex; + flex-direction: column; + margin-right: 8%; + margin-left: 10px; + margin-bottom: 20px; + justify-content: center; + position: relative; +} + +.price-tag { + background: url(../img/glasfaser/header-pricetag.png) no-repeat center center; + height: 225px; + width: 225px; + background-size: cover; +} + +.high-speed { + width: 100%; + text-align: right; + margin-bottom: 25px; + position: relative; +} + +.high-speed h1 { + font-size: 32px; + font-weight: 700; + font-family: 'Open Sans Condensed'; + padding: 10px 15px 10px 0; + text-shadow: 0px 2px 2px rgba(0,0,0,0.52); + color: #fff; +} + +.high-speed-border { + background: #fff; + height: 3px; + position: absolute; + right: 10px; + left: 20px; +} + +.high-speed-border:first-of-type { + width: 40%; + left: initial; +} + +.high-speed-border:before { + content: ' '; + display: inline-block; + height: 23px; + width: 23px; + border-radius: 100%; + background: #fff; + position: absolute; + left: -5px; + top: -10px; +} + + +.split-section .container { + max-width: 1120px; +} +.split-section.right .container { + max-width: 840px; +} +.split-section { + padding: 90px 0; + overflow: hidden; +} +.split-section.right { + padding: 100px 0; + background: rgba(0,0,0,0.03); +} +.split-section.right .split-description { + width: 100%; +} +.split-section .split-text .split-title h2, +.split-section.left .split-text .split-title h2 { + font-size: 40px; + letter-spacing: 0.5px; +} +.split-section.left .split-text .split-title::before, +.split-section.right .split-text .split-title::before { + width: 90%; + max-width: 420px; +} + +.team-member h4 { + font-family: 'Raleway', Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif; + font-weight: 700; + margin-bottom: 20px; +} + +.timeline>li .timeline-panel { + display: flex; + min-height: 80px; + align-items: center; + padding-bottom: 15px; +} + +.timeline>li.timeline-inverted>.timeline-panel { + padding-bottom: 0; +} + + +.contact-section h2, +.contact-section h3, +.contact-section p { + color: rgba(255,255,255,0.9); + text-transform: initial; + font-weight: 300; + font-family: 'Lato'; +} + +.contact-section p { + font-size: 20px; +} + +footer { + padding: 20px; +} + +@media(max-width: 767px) { + .split-section .split-text .split-title h2, + .split-section.left .split-text .split-title h2 { + font-size: 32px; + line-height: 40px; + } +} + +@media(min-width: 768px) { + section { + padding: 90px 0; + } +} + +@media (min-width: 768px) { + .intro-header { + align-items: flex-end; + } + .high-speed h1 { + font-size: 88px; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .intro-header { + background-position: -100px; + background-size: auto 110%; + } + .price-tag { + height: 240px; + width: 240px; + } + .timeline>li .timeline-panel { + min-height: 100px; + } +} + +@media (min-width: 992px) { + .price-tag { + min-height: 320px; + width: 320px; + } + .timeline>li .timeline-panel { + min-height: 170px; + } +} \ No newline at end of file diff --git a/ungleich_page/static/ungleich_page/img/about/7.png b/ungleich_page/static/ungleich_page/img/about/7.png new file mode 100644 index 00000000..b8088792 Binary files /dev/null and b/ungleich_page/static/ungleich_page/img/about/7.png differ diff --git a/ungleich_page/static/ungleich_page/img/about/8.png b/ungleich_page/static/ungleich_page/img/about/8.png new file mode 100644 index 00000000..d7291944 Binary files /dev/null and b/ungleich_page/static/ungleich_page/img/about/8.png differ diff --git a/ungleich_page/static/ungleich_page/img/glasfaser/a.jpg b/ungleich_page/static/ungleich_page/img/glasfaser/a.jpg new file mode 100644 index 00000000..d4b03578 Binary files /dev/null and b/ungleich_page/static/ungleich_page/img/glasfaser/a.jpg differ diff --git a/ungleich_page/static/ungleich_page/img/glasfaser/b.jpg b/ungleich_page/static/ungleich_page/img/glasfaser/b.jpg new file mode 100644 index 00000000..5c23814d Binary files /dev/null and b/ungleich_page/static/ungleich_page/img/glasfaser/b.jpg differ diff --git a/ungleich_page/static/ungleich_page/img/glasfaser/business.svg b/ungleich_page/static/ungleich_page/img/glasfaser/business.svg new file mode 100644 index 00000000..ee18a4e3 --- /dev/null +++ b/ungleich_page/static/ungleich_page/img/glasfaser/business.svg @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="196px" + height="196px" viewBox="0 0 196 196" enable-background="new 0 0 196 196" xml:space="preserve"> +<g id="Layer_1"> + <g> + <ellipse fill="#0D2849" cx="96.871" cy="97.632" rx="68.442" ry="67.431"/> + + <ellipse opacity="0.57" fill="none" stroke="#47B9E8" stroke-width="2" stroke-miterlimit="10" cx="96.719" cy="97.321" rx="62.32" ry="61.179"/> + </g> + <g> + <path fill-rule="evenodd" clip-rule="evenodd" fill="#47B9E8" d="M57.043,130.8c0-20.398,0-40.777,0-61.19 + c9.176,0,18.341,0,27.533,0c0-0.142-0.001-0.25,0-0.36c0.021-1.162,0.002-2.325,0.069-3.485c0.066-1.101,0.483-2.09,1.144-2.978 + c0.923-1.239,2.173-1.945,3.664-2.244c0.416-0.082,0.85-0.11,1.275-0.112c4.061-0.007,8.123-0.007,12.179-0.002 + c1.668,0.002,3.154,0.521,4.364,1.683c0.668,0.641,1.144,1.424,1.442,2.312c0.28,0.833,0.355,1.69,0.351,2.561 + c-0.007,0.865-0.003,1.73-0.003,2.616c9.187,0,18.341,0,27.523,0c0,20.406,0,40.794,0,61.201 + C110.086,130.8,83.578,130.8,57.043,130.8z M130.484,75.751c-22.465,0-44.889,0-67.331,0c0,0.123,0,0.224,0,0.325 + c0,5.925,0,11.853,0,17.78c0,0.212,0.001,0.428,0.019,0.641c0.138,1.929,0.936,3.506,2.536,4.634 + c1.15,0.811,2.456,1.086,3.846,1.086c18.178-0.003,36.358-0.002,54.534-0.003c0.225,0,0.449-0.002,0.672-0.018 + c1.933-0.139,3.509-0.933,4.638-2.529c0.8-1.132,1.091-2.417,1.091-3.785c-0.004-5.937-0.004-11.873-0.004-17.81 + C130.484,75.971,130.484,75.87,130.484,75.751z M130.469,104.805c-0.041,0.003-0.063,0-0.078,0.007 + c-1.979,1.076-4.105,1.528-6.347,1.528c-18.199-0.007-36.398-0.003-54.597-0.003c-1.986,0-3.885-0.378-5.675-1.264 + c-0.196-0.098-0.396-0.186-0.594-0.28c0,6.646,0,13.271,0,19.892c22.442,0,44.859,0,67.291,0 + C130.469,118.053,130.469,111.436,130.469,104.805z M90.708,69.586c4.091,0,8.154,0,12.215,0c0-1.017,0-2.012,0-3.011 + c-4.083,0-8.145,0-12.215,0C90.708,67.589,90.708,68.575,90.708,69.586z"/> + <path fill-rule="evenodd" clip-rule="evenodd" fill="#0D2849" d="M130.484,75.751c0,0.119,0,0.22,0,0.321 + c0,5.937,0,11.873,0.004,17.81c0,1.369-0.291,2.653-1.091,3.785c-1.129,1.597-2.705,2.391-4.638,2.529 + c-0.223,0.016-0.447,0.018-0.672,0.018c-18.176,0.001-36.356,0-54.534,0.003c-1.39,0-2.695-0.275-3.846-1.086 + c-1.6-1.128-2.397-2.705-2.536-4.634c-0.017-0.213-0.019-0.428-0.019-0.641c0-5.928,0-11.855,0-17.78c0-0.101,0-0.202,0-0.325 + C85.595,75.751,108.02,75.751,130.484,75.751z M81.511,87.99c-2.049,0-4.07,0-6.093,0c0,3.061,0,6.104,0,9.138 + c2.043,0,4.064,0,6.093,0C81.511,94.078,81.511,91.05,81.511,87.99z M112.144,87.984c0,3.069,0,6.112,0,9.144 + c2.048,0,4.068,0,6.083,0c0-3.06,0-6.095,0-9.144C116.194,87.984,114.18,87.984,112.144,87.984z"/> + <path fill-rule="evenodd" clip-rule="evenodd" fill="#0D2849" d="M130.469,104.805c0,6.631,0,13.248,0,19.88 + c-22.432,0-44.848,0-67.291,0c0-6.621,0-13.245,0-19.892c0.198,0.095,0.398,0.183,0.594,0.28c1.79,0.886,3.689,1.264,5.675,1.264 + c18.199,0,36.397-0.004,54.597,0.003c2.241,0,4.367-0.452,6.347-1.528C130.405,104.805,130.428,104.808,130.469,104.805z"/> + <path fill-rule="evenodd" clip-rule="evenodd" fill="#0D2849" d="M90.708,69.586c0-1.011,0-1.997,0-3.011c4.07,0,8.132,0,12.215,0 + c0,1,0,1.995,0,3.011C98.862,69.586,94.799,69.586,90.708,69.586z"/> + <path fill-rule="evenodd" clip-rule="evenodd" fill="#47B9E8" d="M81.511,87.99c0,3.06,0,6.088,0,9.138c-2.029,0-4.05,0-6.093,0 + c0-3.034,0-6.077,0-9.138C77.441,87.99,79.462,87.99,81.511,87.99z"/> + <path fill-rule="evenodd" clip-rule="evenodd" fill="#47B9E8" d="M112.144,87.984c2.036,0,4.051,0,6.083,0 + c0,3.049,0,6.084,0,9.144c-2.015,0-4.035,0-6.083,0C112.144,94.097,112.144,91.054,112.144,87.984z"/> + </g> + + <image display="none" overflow="visible" width="170" height="166" id="Layer_4_xA0_Image_1_" xlink:href="3DFCBC34760ACD66.png" transform="matrix(1 0 0 1 12.8145 16.6162)"> + </image> + + <rect x="61.251" y="73.602" display="none" fill="none" stroke="#FFFFFF" stroke-width="5.5" stroke-miterlimit="10" width="28.351" height="52.284"/> + + <rect x="103.226" y="74.338" display="none" fill="none" stroke="#FFFFFF" stroke-width="5.5" stroke-miterlimit="10" width="28.351" height="52.284"/> + <rect x="72.665" y="85.384" display="none" fill="#FFFFFF" width="5.155" height="6.996"/> + <rect x="72.665" y="107.477" display="none" fill="#FFFFFF" width="5.155" height="6.995"/> + <rect x="103.226" y="97.321" display="none" fill="#FFFFFF" width="28.351" height="5"/> +</g> +<g id="Layer_2" display="none"> + <g display="inline"> + + <text transform="matrix(1 0 0 1 54.2861 73.6836)" fill="#FFFFFF" font-family="'HelveticaNeue-CondensedBold'" font-size="17.6318">IP-Adressen</text> + <line fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" x1="46.373" y1="116.581" x2="147.75" y2="116.581"/> + <text transform="matrix(1 0 0 1 67.772 108.3828)" fill="#FFFFFF" font-family="'HelveticaNeue-Bold'" font-size="26.4477">IPv6</text> + <line fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" x1="46.373" y1="81.142" x2="147.75" y2="81.142"/> + </g> + + <text transform="matrix(1 0 0 1 67.772 141.3809)" display="inline" fill="#FFFFFF" font-family="'HelveticaNeue-Bold'" font-size="26.4477">IPv4</text> +</g> +</svg> diff --git a/ungleich_page/static/ungleich_page/img/glasfaser/c.jpg b/ungleich_page/static/ungleich_page/img/glasfaser/c.jpg new file mode 100644 index 00000000..ba890bd3 Binary files /dev/null and b/ungleich_page/static/ungleich_page/img/glasfaser/c.jpg differ diff --git a/ungleich_page/static/ungleich_page/img/glasfaser/d.jpg b/ungleich_page/static/ungleich_page/img/glasfaser/d.jpg new file mode 100644 index 00000000..284216d0 Binary files /dev/null and b/ungleich_page/static/ungleich_page/img/glasfaser/d.jpg differ diff --git a/ungleich_page/static/ungleich_page/img/glasfaser/header-nico-sans.jpg b/ungleich_page/static/ungleich_page/img/glasfaser/header-nico-sans.jpg new file mode 100644 index 00000000..d6398b05 Binary files /dev/null and b/ungleich_page/static/ungleich_page/img/glasfaser/header-nico-sans.jpg differ diff --git a/ungleich_page/static/ungleich_page/img/glasfaser/header-pricetag.png b/ungleich_page/static/ungleich_page/img/glasfaser/header-pricetag.png new file mode 100644 index 00000000..68a93682 Binary files /dev/null and b/ungleich_page/static/ungleich_page/img/glasfaser/header-pricetag.png differ diff --git a/ungleich_page/static/ungleich_page/img/glasfaser/ip.svg b/ungleich_page/static/ungleich_page/img/glasfaser/ip.svg new file mode 100644 index 00000000..8067f11d --- /dev/null +++ b/ungleich_page/static/ungleich_page/img/glasfaser/ip.svg @@ -0,0 +1,168 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="196px" height="196px" viewBox="0 0 196 196" enable-background="new 0 0 196 196" xml:space="preserve"> +<g id="Layer_1_1_"> + <g> + <ellipse fill="#0D2849" cx="96.871" cy="97.632" rx="68.441" ry="67.431"/> + + <ellipse opacity="0.57" fill="none" stroke="#47B9E8" stroke-width="2" stroke-miterlimit="10" enable-background="new " cx="96.719" cy="97.321" rx="62.32" ry="61.179"/> + </g> + <g display="none"> + <path display="inline" fill="#FFFFFF" d="M57.043,130.8c0-20.397,0-40.777,0-61.19c9.176,0,18.341,0,27.533,0 + c0-0.142-0.001-0.25,0-0.36c0.021-1.162,0.002-2.325,0.069-3.485c0.066-1.101,0.483-2.09,1.144-2.978 + c0.923-1.239,2.173-1.945,3.664-2.244c0.416-0.082,0.85-0.11,1.275-0.112c4.061-0.007,8.124-0.007,12.179-0.002 + c1.668,0.002,3.153,0.521,4.364,1.683c0.668,0.641,1.144,1.424,1.441,2.312c0.28,0.833,0.355,1.69,0.352,2.561 + c-0.008,0.865-0.004,1.73-0.004,2.616c9.188,0,18.342,0,27.523,0c0,20.406,0,40.793,0,61.201 + C110.086,130.8,83.578,130.8,57.043,130.8z M130.484,75.751c-22.465,0-44.889,0-67.332,0c0,0.123,0,0.224,0,0.325 + c0,5.925,0,11.853,0,17.78c0,0.212,0.001,0.428,0.019,0.641c0.138,1.929,0.936,3.506,2.536,4.634 + c1.15,0.811,2.456,1.086,3.846,1.086c18.178-0.003,36.358-0.002,54.534-0.003c0.225,0,0.449-0.002,0.672-0.019 + c1.934-0.139,3.51-0.932,4.639-2.528c0.8-1.132,1.09-2.417,1.09-3.785c-0.004-5.937-0.004-11.873-0.004-17.81 + C130.484,75.971,130.484,75.87,130.484,75.751z M130.469,104.805c-0.041,0.004-0.062,0-0.078,0.008 + c-1.979,1.076-4.104,1.527-6.347,1.527c-18.198-0.007-36.398-0.003-54.597-0.003c-1.986,0-3.885-0.378-5.675-1.264 + c-0.196-0.099-0.396-0.187-0.594-0.28c0,6.646,0,13.271,0,19.893c22.442,0,44.859,0,67.291,0 + C130.469,118.053,130.469,111.436,130.469,104.805z M90.708,69.586c4.091,0,8.153,0,12.215,0c0-1.017,0-2.012,0-3.011 + c-4.083,0-8.145,0-12.215,0C90.708,67.589,90.708,68.575,90.708,69.586z"/> + <path display="inline" fill="#3077A3" d="M130.484,75.751c0,0.119,0,0.22,0,0.321c0,5.937,0,11.873,0.004,17.81 + c0,1.369-0.291,2.653-1.092,3.785c-1.129,1.597-2.705,2.392-4.638,2.528c-0.223,0.017-0.446,0.019-0.672,0.019 + c-18.176,0.001-36.356,0-54.534,0.003c-1.39,0-2.695-0.275-3.846-1.086c-1.6-1.128-2.397-2.705-2.536-4.634 + c-0.017-0.213-0.019-0.428-0.019-0.641c0-5.928,0-11.855,0-17.78c0-0.101,0-0.202,0-0.325 + C85.595,75.751,108.02,75.751,130.484,75.751z M81.511,87.99c-2.049,0-4.07,0-6.093,0c0,3.061,0,6.104,0,9.138 + c2.043,0,4.064,0,6.093,0C81.511,94.078,81.511,91.05,81.511,87.99z M112.145,87.984c0,3.069,0,6.112,0,9.144 + c2.047,0,4.067,0,6.082,0c0-3.06,0-6.095,0-9.144C116.193,87.984,114.18,87.984,112.145,87.984z"/> + <path display="inline" fill="#3077A3" d="M130.469,104.805c0,6.631,0,13.248,0,19.881c-22.432,0-44.848,0-67.291,0 + c0-6.621,0-13.246,0-19.893c0.198,0.096,0.398,0.184,0.594,0.28c1.79,0.886,3.689,1.264,5.675,1.264 + c18.199,0,36.397-0.004,54.597,0.003c2.241,0,4.367-0.451,6.347-1.527C130.404,104.805,130.428,104.809,130.469,104.805z"/> + <path display="inline" fill="#3077A3" d="M90.708,69.586c0-1.011,0-1.997,0-3.011c4.07,0,8.132,0,12.215,0c0,1,0,1.995,0,3.011 + C98.861,69.586,94.799,69.586,90.708,69.586z"/> + <path display="inline" fill="#FFFFFF" d="M81.511,87.99c0,3.06,0,6.088,0,9.138c-2.029,0-4.05,0-6.093,0c0-3.034,0-6.077,0-9.138 + C77.441,87.99,79.462,87.99,81.511,87.99z"/> + <path display="inline" fill="#FFFFFF" d="M112.145,87.984c2.035,0,4.051,0,6.082,0c0,3.049,0,6.084,0,9.144 + c-2.015,0-4.035,0-6.082,0C112.145,94.097,112.145,91.054,112.145,87.984z"/> + </g> + + <image display="none" overflow="visible" enable-background="new " width="171" height="167" id="Layer_4_xA0_Image_2_" xlink:href="B1D654609C24A42D.png" transform="matrix(0.9941 0 0 0.9941 12.8198 16.6104)"> + </image> + + <rect x="61.251" y="73.602" display="none" fill="none" stroke="#FFFFFF" stroke-width="5.5" stroke-miterlimit="10" width="28.351" height="52.284"/> + + <rect x="103.227" y="74.338" display="none" fill="none" stroke="#FFFFFF" stroke-width="5.5" stroke-miterlimit="10" width="28.351" height="52.284"/> + <rect x="72.665" y="85.384" display="none" fill="#FFFFFF" width="5.155" height="6.996"/> + <rect x="72.665" y="107.477" display="none" fill="#FFFFFF" width="5.155" height="6.996"/> + <rect x="103.227" y="97.321" display="none" fill="#FFFFFF" width="28.351" height="5"/> +</g> +<g id="Layer_2"> + <g> + <g enable-background="new "> + <path fill="#47B9E8" d="M55.291,61.095h2.539v12.589h-2.539V61.095z"/> + <path fill="#47B9E8" d="M64.16,61.095c0.646,0,1.19,0.108,1.631,0.326c0.441,0.218,0.796,0.502,1.067,0.854 + c0.271,0.354,0.464,0.756,0.582,1.208c0.117,0.453,0.176,0.914,0.176,1.385c0,0.646-0.097,1.21-0.291,1.692 + c-0.194,0.481-0.464,0.876-0.811,1.181c-0.347,0.307-0.767,0.535-1.261,0.688c-0.494,0.152-1.04,0.229-1.64,0.229h-1.358v5.025 + h-2.539V61.095H64.16z M63.384,66.79c0.505,0,0.914-0.153,1.226-0.459s0.467-0.781,0.467-1.428c0-0.635-0.135-1.117-0.406-1.446 + s-0.723-0.493-1.357-0.493h-1.058v3.826H63.384z"/> + <path fill="#47B9E8" d="M73.734,69.628h-4.972v-2.08h4.972V69.628z"/> + <path fill="#47B9E8" d="M80.98,61.095l3.333,12.589h-2.645l-0.582-2.662h-3.35l-0.582,2.662H74.51l3.333-12.589H80.98z + M80.646,68.94l-1.216-5.659h-0.036l-1.216,5.659H80.646z"/> + <path fill="#47B9E8" d="M89.955,72.679c-0.271,0.446-0.573,0.758-0.908,0.935c-0.335,0.176-0.75,0.265-1.243,0.265 + c-1,0-1.734-0.382-2.204-1.146c-0.47-0.764-0.705-2.027-0.705-3.791c0-1.763,0.235-3.035,0.705-3.817 + c0.47-0.781,1.205-1.172,2.204-1.172c0.458,0,0.849,0.094,1.172,0.282c0.323,0.188,0.614,0.47,0.873,0.846h0.035v-3.984h2.433 + v12.589H89.99v-1.005H89.955z M87.566,71.276c0.159,0.523,0.502,0.785,1.032,0.785c0.541,0,0.89-0.262,1.049-0.785 + c0.159-0.522,0.238-1.301,0.238-2.336c0-1.034-0.08-1.812-0.238-2.336s-0.508-0.785-1.049-0.785 + c-0.529,0-0.873,0.262-1.032,0.785s-0.238,1.302-0.238,2.336C87.328,69.976,87.407,70.754,87.566,71.276z"/> + <path fill="#47B9E8" d="M96.268,64.197v1.27h0.035c0.247-0.458,0.546-0.825,0.899-1.102c0.353-0.276,0.782-0.414,1.287-0.414 + c0.071,0,0.144,0.003,0.22,0.009s0.15,0.015,0.221,0.026v2.327c-0.129-0.012-0.256-0.021-0.379-0.026 + c-0.124-0.006-0.25-0.009-0.379-0.009c-0.211,0-0.423,0.029-0.635,0.088c-0.211,0.06-0.405,0.156-0.582,0.291 + c-0.176,0.136-0.317,0.312-0.423,0.529c-0.105,0.218-0.159,0.484-0.159,0.802v5.695H93.94v-9.486H96.268z"/> + <path fill="#47B9E8" d="M101.892,70.069c0,0.282,0.021,0.555,0.062,0.819s0.109,0.5,0.203,0.705 + c0.094,0.206,0.217,0.371,0.37,0.494s0.341,0.186,0.564,0.186c0.411,0,0.711-0.147,0.899-0.441 + c0.188-0.293,0.316-0.74,0.388-1.34h2.187c-0.047,1.105-0.342,1.945-0.882,2.521c-0.541,0.576-1.394,0.864-2.557,0.864 + c-0.882,0-1.569-0.147-2.063-0.441c-0.493-0.293-0.857-0.682-1.093-1.163c-0.235-0.482-0.379-1.023-0.433-1.622 + c-0.053-0.6-0.078-1.199-0.078-1.799c0-0.635,0.043-1.246,0.132-1.834c0.088-0.588,0.265-1.11,0.528-1.569 + c0.266-0.458,0.645-0.822,1.138-1.093s1.151-0.405,1.975-0.405c0.706,0,1.284,0.114,1.737,0.344 + c0.452,0.229,0.808,0.553,1.066,0.97c0.258,0.417,0.435,0.923,0.529,1.516c0.094,0.594,0.141,1.255,0.141,1.984v0.546h-4.813 + V70.069z M104.307,66.904c-0.035-0.276-0.097-0.512-0.185-0.705c-0.089-0.194-0.212-0.341-0.37-0.441 + c-0.158-0.1-0.361-0.149-0.608-0.149s-0.45,0.056-0.608,0.167c-0.158,0.112-0.285,0.259-0.379,0.441 + c-0.094,0.182-0.162,0.385-0.203,0.608c-0.041,0.223-0.062,0.446-0.062,0.67v0.37h2.486 + C104.365,67.501,104.342,67.181,104.307,66.904z"/> + <path fill="#47B9E8" d="M109.756,70.897c0,0.412,0.107,0.744,0.326,0.996c0.217,0.253,0.531,0.38,0.943,0.38 + c0.375,0,0.676-0.095,0.898-0.282c0.224-0.188,0.336-0.471,0.336-0.847c0-0.306-0.089-0.538-0.266-0.696 + c-0.176-0.159-0.381-0.285-0.617-0.379l-1.709-0.617c-0.671-0.235-1.176-0.567-1.518-0.996c-0.34-0.43-0.511-0.979-0.511-1.648 + c0-0.389,0.064-0.756,0.194-1.103c0.129-0.347,0.334-0.649,0.617-0.908c0.281-0.258,0.643-0.464,1.084-0.617 + c0.441-0.152,0.973-0.229,1.596-0.229c1.104,0,1.922,0.235,2.451,0.705c0.528,0.47,0.793,1.135,0.793,1.992v0.388h-2.187 + c0-0.493-0.079-0.854-0.237-1.084c-0.159-0.229-0.438-0.344-0.838-0.344c-0.307,0-0.573,0.085-0.803,0.256 + c-0.229,0.17-0.344,0.426-0.344,0.767c0,0.235,0.074,0.447,0.221,0.635c0.146,0.188,0.426,0.347,0.838,0.476l1.463,0.494 + c0.764,0.259,1.305,0.597,1.622,1.014c0.317,0.418,0.476,0.984,0.476,1.701c0,0.506-0.088,0.943-0.264,1.314 + c-0.176,0.37-0.42,0.679-0.732,0.925c-0.311,0.247-0.682,0.424-1.11,0.529s-0.902,0.159-1.419,0.159 + c-0.682,0-1.25-0.065-1.701-0.194c-0.453-0.129-0.812-0.323-1.076-0.582c-0.265-0.258-0.449-0.573-0.555-0.943 + c-0.106-0.37-0.159-0.784-0.159-1.243V70.58h2.187V70.897z"/> + <path fill="#47B9E8" d="M117.584,70.897c0,0.412,0.107,0.744,0.326,0.996c0.217,0.253,0.531,0.38,0.943,0.38 + c0.375,0,0.676-0.095,0.898-0.282c0.224-0.188,0.336-0.471,0.336-0.847c0-0.306-0.089-0.538-0.266-0.696 + c-0.176-0.159-0.381-0.285-0.617-0.379l-1.709-0.617c-0.671-0.235-1.176-0.567-1.518-0.996c-0.34-0.43-0.511-0.979-0.511-1.648 + c0-0.389,0.064-0.756,0.194-1.103c0.129-0.347,0.334-0.649,0.617-0.908c0.281-0.258,0.643-0.464,1.084-0.617 + c0.441-0.152,0.973-0.229,1.596-0.229c1.104,0,1.922,0.235,2.451,0.705c0.528,0.47,0.793,1.135,0.793,1.992v0.388h-2.187 + c0-0.493-0.079-0.854-0.237-1.084c-0.159-0.229-0.438-0.344-0.838-0.344c-0.307,0-0.573,0.085-0.803,0.256 + c-0.229,0.17-0.344,0.426-0.344,0.767c0,0.235,0.074,0.447,0.221,0.635c0.146,0.188,0.426,0.347,0.838,0.476l1.463,0.494 + c0.764,0.259,1.305,0.597,1.622,1.014c0.317,0.418,0.476,0.984,0.476,1.701c0,0.506-0.088,0.943-0.264,1.314 + c-0.176,0.37-0.42,0.679-0.732,0.925c-0.311,0.247-0.682,0.424-1.11,0.529s-0.902,0.159-1.419,0.159 + c-0.682,0-1.25-0.065-1.701-0.194c-0.453-0.129-0.812-0.323-1.076-0.582c-0.265-0.258-0.449-0.573-0.555-0.943 + c-0.106-0.37-0.159-0.784-0.159-1.243V70.58h2.187V70.897z"/> + <path fill="#47B9E8" d="M125.711,70.069c0,0.282,0.021,0.555,0.062,0.819s0.108,0.5,0.203,0.705 + c0.094,0.206,0.217,0.371,0.369,0.494c0.153,0.123,0.342,0.186,0.564,0.186c0.412,0,0.711-0.147,0.899-0.441 + c0.188-0.293,0.317-0.74,0.388-1.34h2.187c-0.047,1.105-0.341,1.945-0.882,2.521s-1.393,0.864-2.557,0.864 + c-0.881,0-1.568-0.147-2.062-0.441c-0.494-0.293-0.858-0.682-1.094-1.163c-0.234-0.482-0.379-1.023-0.432-1.622 + c-0.053-0.6-0.079-1.199-0.079-1.799c0-0.635,0.044-1.246,0.132-1.834s0.265-1.11,0.529-1.569 + c0.265-0.458,0.644-0.822,1.137-1.093c0.494-0.271,1.152-0.405,1.975-0.405c0.706,0,1.285,0.114,1.737,0.344 + c0.452,0.229,0.808,0.553,1.067,0.97c0.258,0.417,0.434,0.923,0.528,1.516c0.095,0.594,0.142,1.255,0.142,1.984v0.546h-4.814 + V70.069z M128.127,66.904c-0.035-0.276-0.098-0.512-0.186-0.705c-0.088-0.194-0.211-0.341-0.369-0.441 + c-0.159-0.1-0.362-0.149-0.609-0.149c-0.246,0-0.449,0.056-0.607,0.167c-0.159,0.112-0.285,0.259-0.379,0.441 + c-0.095,0.182-0.162,0.385-0.203,0.608c-0.041,0.223-0.062,0.446-0.062,0.67v0.37h2.486 + C128.186,67.501,128.162,67.181,128.127,66.904z"/> + <path fill="#47B9E8" d="M134.122,64.197v1.111h0.035c0.259-0.47,0.593-0.813,1.005-1.031c0.411-0.218,0.882-0.326,1.41-0.326 + c0.776,0,1.373,0.211,1.79,0.635c0.417,0.423,0.626,1.11,0.626,2.062v7.035h-2.434v-6.541c0-0.494-0.082-0.838-0.246-1.032 + c-0.165-0.193-0.43-0.291-0.794-0.291c-0.858,0-1.287,0.523-1.287,1.569v6.295h-2.433v-9.486H134.122z"/> + </g> + <line fill="none" stroke="#47B9E8" stroke-width="2" stroke-miterlimit="10" x1="46.373" y1="116.581" x2="147.75" y2="116.581"/> + <g enable-background="new "> + <path fill="#47B9E8" d="M76.196,90.247v17.136h-3.768V90.247H76.196z"/> + <path fill="#47B9E8" d="M87.236,90.247c1.072,0,1.984,0.155,2.736,0.468c0.752,0.312,1.364,0.724,1.836,1.236 + c0.472,0.512,0.816,1.096,1.032,1.752c0.216,0.656,0.324,1.336,0.324,2.04c0,0.688-0.108,1.364-0.324,2.027 + c-0.216,0.664-0.56,1.252-1.032,1.765c-0.472,0.512-1.084,0.924-1.836,1.235c-0.752,0.312-1.665,0.469-2.736,0.469h-3.96v6.144 + h-3.768V90.247H87.236z M86.205,98.311c0.432,0,0.848-0.031,1.248-0.096c0.399-0.063,0.752-0.188,1.056-0.372 + c0.304-0.184,0.548-0.444,0.732-0.78c0.184-0.336,0.276-0.775,0.276-1.319s-0.092-0.984-0.276-1.32 + c-0.184-0.336-0.428-0.596-0.732-0.78c-0.304-0.184-0.656-0.308-1.056-0.372c-0.4-0.063-0.816-0.096-1.248-0.096h-2.928v5.136 + H86.205z"/> + <path fill="#47B9E8" d="M98.229,107.383L93.98,94.975h3.576l2.616,8.473h0.049l2.615-8.473h3.385l-4.2,12.408H98.229z"/> + <path fill="#47B9E8" d="M114.884,93.438c-0.399-0.416-0.896-0.624-1.487-0.624c-0.609,0-1.117,0.181-1.524,0.54 + c-0.408,0.36-0.732,0.801-0.972,1.32c-0.24,0.521-0.417,1.076-0.528,1.668c-0.112,0.592-0.177,1.12-0.192,1.584l0.049,0.048 + c0.463-0.672,1.008-1.151,1.631-1.439c0.625-0.288,1.344-0.433,2.16-0.433c0.721,0,1.424,0.156,2.112,0.469 + c0.688,0.312,1.272,0.731,1.752,1.26c0.448,0.512,0.776,1.096,0.983,1.752c0.209,0.656,0.312,1.319,0.312,1.992 + c0,0.863-0.141,1.668-0.42,2.411c-0.28,0.744-0.68,1.393-1.199,1.944c-0.521,0.552-1.141,0.984-1.861,1.296 + c-0.719,0.312-1.52,0.468-2.399,0.468c-1.265,0-2.312-0.252-3.144-0.756s-1.496-1.164-1.992-1.979 + c-0.496-0.816-0.84-1.74-1.032-2.772c-0.192-1.031-0.288-2.084-0.288-3.155c0-1.04,0.12-2.08,0.359-3.12 + c0.24-1.04,0.625-1.98,1.152-2.82c0.528-0.84,1.208-1.524,2.041-2.052c0.831-0.528,1.848-0.792,3.047-0.792 + c0.721,0,1.393,0.104,2.017,0.312s1.176,0.509,1.655,0.9c0.48,0.392,0.873,0.876,1.177,1.452c0.304,0.575,0.504,1.24,0.6,1.991 + h-3.239C115.539,94.343,115.283,93.855,114.884,93.438z M112.016,98.923c-0.344,0.168-0.628,0.396-0.852,0.684 + c-0.225,0.288-0.393,0.621-0.504,0.996c-0.112,0.376-0.168,0.772-0.168,1.188c0,0.384,0.06,0.764,0.18,1.14 + s0.296,0.712,0.527,1.008c0.232,0.297,0.517,0.532,0.853,0.708c0.336,0.177,0.72,0.265,1.151,0.265 + c0.416,0,0.781-0.088,1.093-0.265c0.312-0.176,0.579-0.407,0.804-0.695s0.393-0.616,0.504-0.984 + c0.112-0.368,0.168-0.744,0.168-1.128c0-0.399-0.052-0.788-0.156-1.164c-0.104-0.376-0.26-0.712-0.467-1.008 + c-0.209-0.296-0.477-0.536-0.805-0.72c-0.328-0.185-0.708-0.276-1.141-0.276C112.756,98.671,112.359,98.755,112.016,98.923z"/> + </g> + <line fill="none" stroke="#47B9E8" stroke-width="2" stroke-miterlimit="10" x1="46.373" y1="81.142" x2="147.75" y2="81.142"/> + </g> + <g enable-background="new "> + <path fill="#47B9E8" d="M76.196,123.245v17.136h-3.768v-17.136H76.196z"/> + <path fill="#47B9E8" d="M87.236,123.245c1.072,0,1.984,0.155,2.736,0.468c0.752,0.312,1.364,0.724,1.836,1.236 + c0.472,0.512,0.816,1.096,1.032,1.752c0.216,0.656,0.324,1.336,0.324,2.04c0,0.688-0.108,1.364-0.324,2.027 + c-0.216,0.664-0.56,1.252-1.032,1.765c-0.472,0.512-1.084,0.924-1.836,1.235c-0.752,0.312-1.665,0.469-2.736,0.469h-3.96v6.144 + h-3.768v-17.136H87.236z M86.205,131.309c0.432,0,0.848-0.031,1.248-0.096c0.399-0.063,0.752-0.188,1.056-0.372 + c0.304-0.184,0.548-0.444,0.732-0.78c0.184-0.336,0.276-0.775,0.276-1.319s-0.092-0.984-0.276-1.32 + c-0.184-0.336-0.428-0.596-0.732-0.78c-0.304-0.184-0.656-0.308-1.056-0.372c-0.4-0.063-0.816-0.096-1.248-0.096h-2.928v5.136 + H86.205z"/> + <path fill="#47B9E8" d="M98.229,140.381l-4.248-12.408h3.576l2.616,8.473h0.049l2.615-8.473h3.385l-4.2,12.408H98.229z"/> + <path fill="#47B9E8" d="M106.724,136.493v-3.12l7.296-9.792h3.049v10.104h2.231v2.809h-2.231v3.888h-3.24v-3.888H106.724z + M113.756,127.853l-4.344,5.832h4.416v-5.832H113.756z"/> + </g> +</g> +</svg> diff --git a/ungleich_page/static/ungleich_page/img/glasfaser/switch.svg b/ungleich_page/static/ungleich_page/img/glasfaser/switch.svg new file mode 100644 index 00000000..dde4ca5a --- /dev/null +++ b/ungleich_page/static/ungleich_page/img/glasfaser/switch.svg @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="196px" height="196px" viewBox="0 0 196 196" enable-background="new 0 0 196 196" xml:space="preserve"> +<g> + <ellipse fill="#0D2849" cx="96.871" cy="97.632" rx="68.441" ry="67.431"/> + + <ellipse opacity="0.57" fill="none" stroke="#47B9E8" stroke-width="2" stroke-miterlimit="10" enable-background="new " cx="96.719" cy="97.321" rx="62.32" ry="61.179"/> +</g> +<g display="none"> + <path display="inline" opacity="0.84" fill="#FFFFFF" enable-background="new " d="M40.517,144.309c0-29.391,0-58.75,0-88.158 + c13.22,0,26.423,0,39.667,0c0-0.204-0.002-0.36,0-0.519c0.03-1.674,0.003-3.351,0.1-5.022c0.094-1.585,0.694-3.012,1.647-4.29 + c1.329-1.784,3.13-2.802,5.277-3.232c0.6-0.118,1.225-0.159,1.838-0.161c5.851-0.011,11.702-0.011,17.547-0.003 + c2.4,0.003,4.544,0.751,6.286,2.425c0.964,0.923,1.646,2.051,2.078,3.329c0.402,1.201,0.512,2.436,0.506,3.69 + c-0.011,1.246-0.005,2.492-0.005,3.768c13.235,0,26.423,0,39.653,0c0,29.4,0,58.772,0,88.173 + C116.934,144.309,78.744,144.309,40.517,144.309z M146.322,64.998c-32.365,0-64.672,0-97.002,0c0,0.177,0,0.323,0,0.468 + c0,8.537,0,17.076,0,25.616c0,0.307,0.003,0.616,0.027,0.923c0.199,2.78,1.349,5.052,3.652,6.677 + c1.658,1.168,3.539,1.563,5.542,1.563c26.189-0.005,52.38-0.003,78.566-0.005c0.324,0,0.646-0.004,0.97-0.024 + c2.782-0.198,5.055-1.343,6.68-3.644c1.152-1.631,1.572-3.48,1.572-5.453c-0.006-8.553-0.006-17.106-0.006-25.659 + C146.322,65.315,146.322,65.169,146.322,64.998z M146.301,106.855c-0.06,0.004-0.092,0-0.113,0.011 + c-2.853,1.55-5.914,2.2-9.145,2.2c-26.219-0.01-52.438-0.004-78.656-0.004c-2.861,0-5.598-0.545-8.176-1.819 + c-0.283-0.142-0.571-0.271-0.856-0.404c0,9.576,0,19.119,0,28.657c32.333,0,64.627,0,96.946,0 + C146.301,125.941,146.301,116.409,146.301,106.855z M89.017,56.116c5.894,0,11.747,0,17.599,0c0-1.464,0-2.898,0-4.338 + c-5.884,0-11.734,0-17.599,0C89.017,53.239,89.017,54.66,89.017,56.116z"/> + <path display="inline" fill="#3077A3" d="M146.322,64.998c0,0.172,0,0.317,0,0.463c0,8.553,0,17.106,0.006,25.659 + c0,1.973-0.42,3.822-1.572,5.453c-1.625,2.301-3.896,3.444-6.68,3.644c-0.323,0.021-0.646,0.024-0.969,0.024 + c-26.188,0.002-52.378,0-78.567,0.005c-2.002,0-3.884-0.396-5.542-1.562c-2.304-1.625-3.453-3.897-3.652-6.678 + c-0.024-0.307-0.027-0.616-0.027-0.923c0-8.54,0-17.079,0-25.616c0-0.146,0-0.291,0-0.468 + C81.65,64.998,113.957,64.998,146.322,64.998z M75.768,82.631c-2.953,0-5.865,0-8.779,0c0,4.411,0,8.795,0,13.166 + c2.944,0,5.856,0,8.779,0C75.768,91.402,75.768,87.039,75.768,82.631z M119.898,82.623c0,4.422,0,8.806,0,13.174 + c2.949,0,5.861,0,8.764,0c0-4.408,0-8.781,0-13.174C125.734,82.623,122.833,82.623,119.898,82.623z"/> + <path display="inline" fill="#3077A3" d="M146.301,106.855c0,9.554,0,19.086,0,28.641c-32.316,0-64.613,0-96.946,0 + c0-9.538,0-19.081,0-28.657c0.285,0.136,0.573,0.265,0.856,0.404c2.578,1.274,5.315,1.819,8.176,1.819 + c26.219,0,52.438-0.006,78.656,0.004c3.229,0,6.292-0.65,9.145-2.2C146.209,106.855,146.241,106.859,146.301,106.855z"/> + <path display="inline" fill="#3077A3" d="M89.017,56.116c0-1.456,0-2.877,0-4.338c5.864,0,11.715,0,17.599,0 + c0,1.44,0,2.874,0,4.338C100.764,56.116,94.911,56.116,89.017,56.116z"/> + <path display="inline" opacity="0.84" fill="#FFFFFF" enable-background="new " d="M75.768,82.631c0,4.408,0,8.771,0,13.166 + c-2.923,0-5.835,0-8.779,0c0-4.371,0-8.754,0-13.166C69.903,82.631,72.815,82.631,75.768,82.631z"/> + <path display="inline" opacity="0.84" fill="#FFFFFF" enable-background="new " d="M119.898,82.623c2.935,0,5.836,0,8.764,0 + c0,4.393,0,8.766,0,13.174c-2.9,0-5.812,0-8.764,0C119.898,91.429,119.898,87.044,119.898,82.623z"/> +</g> +<image display="none" overflow="visible" enable-background="new " width="171" height="167" id="Layer_4_xA0_Image_2_" xlink:href="C949B290C0D038A2.png" transform="matrix(0.9941 0 0 0.9941 12.8198 16.6104)"> +</image> +<rect x="61.251" y="73.602" fill="none" stroke="#47B9E8" stroke-width="5.5" stroke-miterlimit="10" width="28.351" height="52.284"/> +<rect x="103.227" y="74.338" fill="none" stroke="#47B9E8" stroke-width="5.5" stroke-miterlimit="10" width="28.351" height="52.284"/> +<rect x="72.665" y="85.384" fill="#47B9E8" width="5.155" height="6.996"/> +<rect x="72.665" y="107.477" fill="#47B9E8" width="5.155" height="6.996"/> +<rect x="103.227" y="97.321" fill="#47B9E8" width="28.351" height="5"/> +</svg> diff --git a/ungleich_page/static/ungleich_page/img/logo_black.svg b/ungleich_page/static/ungleich_page/img/logo_black.svg new file mode 100644 index 00000000..99e8f590 --- /dev/null +++ b/ungleich_page/static/ungleich_page/img/logo_black.svg @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="448px" height="125px" viewBox="-32.5 -87.5 448 125" enable-background="new -32.5 -87.5 448 125" xml:space="preserve"> +<g> + <path fill="#050505" d="M93.06,20.975c0-1.765,0.621-3.482,1.869-5.161c1.247-1.674,3.027-3.184,5.338-4.517v-0.375 + c-1.208-0.664-2.28-1.59-3.198-2.779c-0.906-1.189-1.364-2.725-1.364-4.609c0-1.462,0.473-2.938,1.419-4.432 + c0.935-1.49,2.265-2.816,3.974-3.967v-0.368c-1.589-1.154-2.929-2.695-4.025-4.613c-1.089-1.916-1.636-4.212-1.636-6.887 + c0-2.498,0.482-4.735,1.456-6.716c0.975-1.978,2.286-3.66,3.932-5.065c1.64-1.401,3.54-2.464,5.703-3.198 + c2.158-0.729,4.455-1.091,6.893-1.091c2.492,0,4.745,0.363,6.759,1.091h18.348v6.85h-11.139c0.918,0.975,1.737,2.18,2.466,3.604 + c0.733,1.438,1.096,3.037,1.096,4.799c0,2.44-0.455,4.607-1.366,6.481c-0.913,1.894-2.164,3.486-3.747,4.796 + c-1.588,1.307-3.438,2.294-5.564,2.961c-2.131,0.668-4.416,1.013-6.852,1.013c-1.092,0-2.265-0.123-3.52-0.371 + c-1.241-0.236-2.473-0.61-3.693-1.097c-2.071,1.345-3.104,2.891-3.104,4.66c0,1.641,0.762,2.834,2.279,3.562 + c1.519,0.735,3.715,1.096,6.576,1.096h9.494c5.854,0,10.179,0.843,13.018,2.509c2.828,1.674,4.242,4.438,4.242,8.267 + c0,2.136-0.597,4.139-1.779,6.025c-1.193,1.889-2.879,3.544-5.072,4.983c-2.188,1.423-4.838,2.552-7.947,3.374 + c-3.098,0.827-6.571,1.234-10.407,1.234c-6.333,0-11.318-1.02-14.969-3.066C94.887,27.934,93.06,24.928,93.06,20.975z + M100.719,19.882c0,2.127,1.174,3.84,3.522,5.155c2.345,1.31,5.737,1.964,10.179,1.964c2.373,0,4.518-0.229,6.438-0.683 + c1.919-0.453,3.562-1.059,4.932-1.824c1.373-0.762,2.412-1.633,3.15-2.601c0.727-0.971,1.091-2.005,1.091-3.106 + c0-1.943-0.809-3.235-2.415-3.875c-1.615-0.644-4.036-0.962-7.26-0.962h-7.853c-1.398,0-2.644-0.042-3.737-0.137 + c-1.1-0.091-2.136-0.285-3.106-0.592c-1.832,1.035-3.105,2.104-3.843,3.196C101.095,17.505,100.719,18.657,100.719,19.882z + M113.416-7.059c2.559,0,4.743-0.848,6.581-2.552c1.822-1.708,2.737-4.077,2.737-7.118c0-2.929-0.918-5.271-2.737-7.033 + c-1.837-1.767-4.021-2.651-6.581-2.651c-2.561,0-4.748,0.885-6.575,2.651c-1.821,1.762-2.739,4.104-2.739,7.033 + c0,3.041,0.92,5.413,2.739,7.118C108.668-7.906,110.855-7.059,113.416-7.059z"/> +</g> +<path fill="#050505" d="M24.585,14.149h-7.651l-0.751-7.646h-0.379c-2.271,2.645-4.743,4.768-7.414,6.378 + c-2.679,1.597-5.777,2.401-9.304,2.401c-5.476,0-9.478-1.585-11.995-4.767c-2.521-3.181-3.776-7.825-3.776-13.932v-23.191 + l-12.225-0.238l21.669-8.342l-0.094,6.301v24.242c0,4.096,0.725,7.102,2.175,9.021C-3.712,6.299-1.229,7.262,2.3,7.262 + c2.394,0,4.579-0.584,6.564-1.752c1.981-1.164,4.112-3.135,6.378-5.898v-31.645h9.352L24.585,14.149L24.585,14.149z"/> +<path fill="#050505" d="M40.078-32.037h7.649l0.755,7.465h0.372c2.333-2.398,4.851-4.427,7.562-6.093 + c2.7-1.67,5.857-2.503,9.445-2.503c5.412,0,9.386,1.608,11.902,4.814c2.517,3.208,3.778,7.845,3.778,13.888v28.613h-9.353v-27.386 + c0-4.027-0.722-7.008-2.167-8.922c-1.447-1.924-3.936-2.889-7.464-2.889c-2.46,0-4.659,0.624-6.616,1.845 + c-1.948,1.229-4.129,3.065-6.518,5.529v31.824h-9.346v-46.184H40.078z"/> +<path fill="#050505" d="M185.909-8.892c0-3.78,0.661-7.167,1.982-10.157c1.32-2.989,3.079-5.543,5.291-7.649 + c2.201-2.109,4.717-3.719,7.562-4.819c2.83-1.101,5.762-1.651,8.772-1.651c3.405,0,6.406,0.535,9.034,1.608 + c2.602,1.07,4.827,2.56,6.65,4.475c1.83,1.931,3.218,4.225,4.156,6.907c0.945,2.673,1.423,5.616,1.423,8.825 + c0,0.955-0.05,1.841-0.147,2.692c-0.094,0.856-0.199,1.56-0.33,2.123h-34.762c0.316,4.537,2,8.081,5.06,10.631 + c3.055,2.549,6.903,3.822,11.566,3.822c2.522,0,4.862-0.346,7.038-1.042c2.176-0.686,4.302-1.661,6.372-2.916L228.88,9.9 + c-2.383,1.514-5.083,2.786-8.069,3.829c-2.991,1.038-6.288,1.554-9.877,1.554c-3.465,0-6.715-0.545-9.768-1.65 + c-3.063-1.102-5.713-2.684-7.983-4.767c-2.271-2.077-4.051-4.615-5.338-7.606C186.555-1.734,185.909-5.119,185.909-8.892z + M222.084-12.952c0-4.161-1.078-7.341-3.215-9.548c-2.142-2.202-5.196-3.3-9.162-3.3c-3.462,0-6.551,1.098-9.259,3.3 + c-2.71,2.209-4.381,5.388-5.002,9.548H222.084z"/> +<path fill="#050505" d="M261.514-33.498l0.027,48.596h-9.352v-35.481h-17.538L261.514-33.498z M256.061-43.024 + c-2.021,0-3.685-0.602-5.008-1.792c-1.315-1.198-1.978-2.806-1.978-4.819c0-2.014,0.657-3.633,1.978-4.862 + c1.324-1.23,2.987-1.84,5.008-1.84c2.011,0,3.685,0.61,5.008,1.84c1.32,1.229,1.985,2.848,1.985,4.862 + c0,2.014-0.665,3.624-1.985,4.819C259.745-43.626,258.071-43.024,256.061-43.024z"/> +<path fill="#050505" d="M274.5-7.952c0-3.839,0.694-7.275,2.081-10.291c1.386-3.027,3.278-5.571,5.672-7.658 + c2.388-2.072,5.143-3.642,8.265-4.717c3.121-1.069,6.438-1.603,9.965-1.603c3.777,0,7.085,0.644,9.918,1.931 + c2.834,1.291,5.199,2.857,7.088,4.678l-4.535,5.95c-1.829-1.513-3.72-2.69-5.676-3.541c-1.943-0.853-4.059-1.276-6.326-1.276 + c-2.446,0-4.715,0.393-6.796,1.185c-2.07,0.786-3.857,1.9-5.331,3.35c-1.478,1.448-2.628,3.197-3.452,5.244 + c-0.814,2.044-1.225,4.305-1.225,6.75c0,2.456,0.394,4.711,1.185,6.758c0.785,2.047,1.913,3.791,3.396,5.238 + c1.48,1.44,3.226,2.572,5.242,3.356c2.015,0.781,4.245,1.174,6.708,1.174c2.832,0,5.386-0.531,7.646-1.597 + c2.267-1.074,4.306-2.361,6.142-3.875l3.969,6.047c-2.645,2.267-5.545,4.013-8.691,5.238c-3.145,1.224-6.426,1.838-9.821,1.838 + c-3.59,0-6.942-0.533-10.058-1.602c-3.118-1.065-5.807-2.644-8.081-4.726c-2.263-2.082-4.041-4.613-5.333-7.606 + C275.146-0.69,274.5-4.107,274.5-7.952z"/> +<path fill="#050505" d="M318.894-51.604l19.584-9.712v27.204l-0.569,10.388c2.332-2.388,4.849-4.407,7.562-6.045 + c2.706-1.632,5.855-2.45,9.443-2.45c5.411,0,9.38,1.603,11.899,4.814c2.517,3.212,3.774,7.841,3.774,13.89v28.615h-9.351v-27.398 + c0-4.029-0.728-7.004-2.178-8.921c-1.441-1.919-3.923-2.885-7.454-2.885c-2.455,0-4.665,0.615-6.612,1.844 + c-1.955,1.228-4.131,3.067-6.521,5.529v31.827h-9.354l-0.193-67.096L318.894-51.604z"/> +<g> + <polygon fill="#050505" points="372.346,-72.483 369.194,-65.904 408.349,-65.739 411.5,-72.447 "/> + <polygon fill="#050505" points="369.249,-58.129 365.997,-51.223 405.206,-51.144 408.349,-57.973 "/> + <polygon fill="#050505" points="376.891,-43.389 394.854,-81.627 401.77,-81.529 384.02,-43.38 "/> +</g> +<g> + <path fill="#050505" d="M162.481-0.869c0,3.097,0.775,5.34,2.332,6.713c1.552,1.364,3.569,2.056,6.069,2.056 + c1.214,0,2.468-0.155,3.748-0.461c1.277-0.306,2.711-0.792,4.293-1.463l2.19,6.765c-1.039,0.358-2.028,0.691-2.968,1.003 + c-0.954,0.302-1.902,0.556-2.877,0.768c-0.973,0.219-1.991,0.4-3.058,0.55c-1.068,0.149-2.239,0.232-3.518,0.232 + c-4.993,0-8.783-1.43-11.37-4.297c-2.588-2.859-3.877-6.994-3.877-12.416v-60.796H138.84l23.641-16.66"/> +</g> +</svg> diff --git a/ungleich_page/static/ungleich_page/img/portfolio/datacenterlight.png b/ungleich_page/static/ungleich_page/img/portfolio/datacenterlight.png new file mode 100644 index 00000000..9b82ba55 Binary files /dev/null and b/ungleich_page/static/ungleich_page/img/portfolio/datacenterlight.png differ diff --git a/ungleich_page/static/ungleich_page/img/portfolio/glasfaser.png b/ungleich_page/static/ungleich_page/img/portfolio/glasfaser.png new file mode 100644 index 00000000..9f43e4e3 Binary files /dev/null and b/ungleich_page/static/ungleich_page/img/portfolio/glasfaser.png differ diff --git a/ungleich_page/templates/ungleich_page/glasfaser.html b/ungleich_page/templates/ungleich_page/glasfaser.html new file mode 100644 index 00000000..486e4334 --- /dev/null +++ b/ungleich_page/templates/ungleich_page/glasfaser.html @@ -0,0 +1,323 @@ +{% load static bootstrap3 i18n %} +{% get_current_language as LANGUAGE_CODE %} + +<!DOCTYPE html> +<html lang="de"> + +<head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta name="description" content=""> + <meta name="author" content=""> + + <title>ungleich GmbH + + + + + + + + + + + + + + + + + + + {% include "google_analytics.html" %} + + + + + + + + + +
+
+
+
+
+
+

{% trans "HIGH SPEED INTERNET" %}

+
+
+
+ +
+
+
+
+

Unser Glasfaser-Angebot für Glarus Nord, Glarus und Glarus Süd

+
+
+

Surfen Sie mit 100 Mbit/s im Internet!

+

Mit dem neuen Glasfaser-Angebot der ungleich macht das Arbeiten im Internet richtig Spass. Das beste daran: die Geschwindigkeit symmetrisch in beide Richtungen verfügbar. Damit kann ihr Firmennetzwerk auch Dienste bereitstellen.

+

Dieses Angebot ist im Moment ausschliesslich für Firmenkunden verfügbar. Die Aufschaltkosten der Glasfaserleitung sind von der Entfernung zum nächsten Anschlusspunkt abhängig. Fragen Sie noch heute nach einem individuellem Angebot.

+
+
+
+
+
+
+
+
+

Was ist es?

+

+
+
+

Bei diesem Angebot handelt es sich um einen Internetzugang für Firmenkunden.

+

Sie erhalten in Zusammenarbeit mit unseren Partnern einen Glasfaseranschluss und eine Internetverbindung.

+
+
+
+
+ +
+
+
+

Technische Details

+

Im Angebot enthalten sind

+
+
+
+
+ +
+

Business-Internet

+

Symmetrische Internetleitung 100 Mbit/s upload und 100 Mbit/s download

+

Glasfaser-Installation bis ins Haus (keine Hausverkabelung)

+
+
+
+
+
+ +
+

Erreichbarkeit im Internet

+

1 öffentliches IPv6-Netzwerk (/64)

+

1 öffentliche IPv4-Adresse

+
+
+
+
+
+ +
+

Einfach zu nutzen

+

2 vorkonfigurierte Endgeräte (benötigt zwei Steckdosen auf Ihrer Seite)

+

Einfach einstecken und los!

+
+
+
+
+
+
+ + +
+
+
+

Wie funktioniert es?

+

So kommen Sie in wenigen einfachen Schritten zu Ihrem High-Speed-Internet

+
+
+
+
    +
  • +
    + +
    +
    +
    +

    Senden Sie uns via E-Mail Ihren Firmennamen und Ihre Anschrift zu.

    +
    +
    +
  • +
  • +
    + +
    +
    +
    +

    Wir prüfen dann die Entfernung zum nächsten Anschlusspunkt und schicken Ihnen eine Offerte zu.

    +
    +
    +
  • +
  • +
    + +
    +
    +
    +

    Sollten Sie dem Angebot zustimmen, wird die Glasfaser zu Ihrem Standort verlegt und die Endgeräte installiert.

    +
    +
    +
  • +
  • +
    + +
    +
    +
    +

    Sie müssen dann nur noch Ihre Geräte anschliessen und schon surfen Sie bllitzschnell im Internet!

    +
    +
    +
  • +
+
+
+
+
+ + +
+
+
+
+
+
+

Kontakt

+
+
+
+

ungleich GmbH

+
+
+

glasfaser@ungleich.ch

+

In der Au 7, Schwanden 8762

+

Switzerland

+
+
+ +
+
+
+ {% if success %} +
+
+

{% trans "Thank you for contacting us." %}

+
+

+ {% trans "Your message was successfully sent to our team." %} +

+
+ {% else %} +
+
+
+

Senden Sie uns eine Nachricht.

+
+
+
+
+ {% csrf_token %} + +
+ +
+ + {{contact_form.name.errors}} +
+
+
+ +
+ + {{contact_form.email.errors}} +
+
+
+ +
+ + {{contact_form.message.errors}} +
+
+
+
+
{% trans "Sorry, there was an unexpected error. Kindly retry." %}
+ +
+
+
+ {% endif %} +
+
+
+
+
+
+ + + + {% include "ungleich_page/includes/_footer.html" %} + + + + + + + + + + + + + + + + + + + + diff --git a/ungleich_page/templates/ungleich_page/includes/_about.html b/ungleich_page/templates/ungleich_page/includes/_about.html index e1abb545..0b8218d9 100644 --- a/ungleich_page/templates/ungleich_page/includes/_about.html +++ b/ungleich_page/templates/ungleich_page/includes/_about.html @@ -2,81 +2,103 @@ {% load i18n %}
-
-
-
-

{% trans "ABOUT" %}

-

{% trans "The timeline of ungleich" %}

-
-
-
-
-
    -
  • -
    - -
    -
    -
    -

    2000

    -
    -
    -

    {% trans "The first incarnation of ungleich" %}

    -

    {% trans "in Germany" %}

    -
    -
  • -
  • -
    - -
    -
    -
    -

    2013

    -
    -
    -

    {% trans "ungleich founded" %}

    -

    {% trans "in Switzerland" %}

    -
    -
    -
  • -
  • -
    - -
    -
    -
    -

    2014

    -
    -
    -

    {% trans "ungleich present at various conferences" %}:
    Linuxtag, UCMS, Linux Erfa, ETH Zurich
    -

    -
    -
    -
  • -
  • -
    - -
    -
    -
    -

    2015

    -
    -
    -

    {% trans "ungleich introduces HA-Hosting" %}

    -

    {% trans "and introduces affordable 24X7 support." %}

    -

    {% trans "ungleich launches" %} - {% trans "Digital Glarus project" %}

    -
    -
    -
  • -
  • -
    -

    {% trans "and" %}
    {% trans "the story continues!" %}

    -

     

    -
    -
  • -
-
-
+
+
+

{% trans "ABOUT" %}

+

{% trans "The timeline of ungleich" %}

+
    +
  • +
    + +
    +
    +
    +

    2000

    +
    +
    +

    {% trans "The first incarnation of ungleich" %}

    +

    {% trans "in Germany" %}

    +
    +
    +
  • +
  • +
    + +
    +
    +
    +

    2013

    +
    +
    +

    {% trans "ungleich founded" %}

    +

    {% trans "in Switzerland" %}

    +
    +
    +
  • +
  • +
    + +
    +
    +
    +

    2014

    +
    +
    +

    {% trans "ungleich present at various conferences" %}:
    Linuxtag, UCMS, Linux Erfa, ETH Zurich
    +

    +
    +
    +
  • +
  • +
    + +
    +
    +
    +

    2015

    +
    +
    +

    {% trans "ungleich introduces HA-Hosting" %}

    +

    {% trans "and introduces affordable 24X7 support." %}

    +

    {% trans "ungleich launches" %} + {% trans "Digital Glarus project" %}

    +
    +
    +
  • +
  • +
    + +
    +
    +
    +

    2016

    +
    +
    +

    {% blocktrans %}ungleich launches Alplora, an animal tracking service with LoraWAN technology.{% endblocktrans %}

    +
    +
    +
  • +
  • +
    + +
    +
    +
    +

    2017

    +
    +
    +

    {% blocktrans %}ungleich sells Alplora to an IoT startup in canton Zürich.{% endblocktrans %}

    +

    {% trans "ungleich showcases the most affordable Swiss VM hosting, Data Center Light." %}

    +
    +
    +
  • +
  • +
    +

    {% trans "and" %}
    {% trans "the story continues!" %}

    +

     

    +
    +
  • +
+
diff --git a/ungleich_page/templates/ungleich_page/includes/_portfolio.html b/ungleich_page/templates/ungleich_page/includes/_portfolio.html index 409bd546..0df3b4c2 100644 --- a/ungleich_page/templates/ungleich_page/includes/_portfolio.html +++ b/ungleich_page/templates/ungleich_page/includes/_portfolio.html @@ -5,33 +5,33 @@
-

{% trans "Hosting Products " %}

-

{% trans "Hosting Products " %}

+

{% trans "Our Products" %}

+

{% blocktrans %}Our products include an innovative datacenter,
affordable VM hosting, and high speed fiber internet for canton Glarus.{% endblocktrans %}

- +
-

{% trans "HA Hosting" %}

-

 

-

{% trans "We offer high availablity hosting (HA) in Germany and in Switzerland. Our infrastructure is powered by Free and Open Source Software like OpenNebula, Qemu and GlusterFS." %}

+

{% trans "Data Center Light" %}

+

 

+

{% trans "We offer the most affordable hosting in Switzerland. Data Center Light has full FOSS stack, 100% IPv6 and 100% SSD. Choose any configuration among CentOS, Debian, Ubuntu, Devuan, and FreeBSD." %}

- +

{% trans "Rails Hosting" %}

-

 

+

 

{% trans "Ready to go live with your Ruby on Rails application? We offer you ready-to-deploy virtual machines or configure your existing infrastructure for Ruby on Rails." %}

- +
-

{% trans " Configuration as a Service" %}

-

 

-

{% trans "You are in need for a configuration?
With ungleich you have found an experienced team that configure your systems to provide service like DNS, E-Mail, Databases or Webservers." %}

+

{% trans "High Speed Internet" %}

+

 

+

{% trans "We offer high speed fiber internet in Glarus Süd, Glarus and Glarus Nord. Experience 100 Mbit/s and see how speed can change everything." %}

diff --git a/ungleich_page/templates/ungleich_page/landing.html b/ungleich_page/templates/ungleich_page/landing.html index 6d9e4a5e..ebfd346c 100644 --- a/ungleich_page/templates/ungleich_page/landing.html +++ b/ungleich_page/templates/ungleich_page/landing.html @@ -18,10 +18,6 @@ - - - - + + {% include "google_analytics.html" %} - + + - - + + {% include "ungleich_page/includes/_header.html" %} - -{% include "ungleich_page/includes/_header.html" %} + + {% include "ungleich_page/includes/_services.html" %} + + + {% include "ungleich_page/includes/_portfolio.html" %} + + + {% include "ungleich_page/includes/_about.html" %} + + + {% include "ungleich_page/includes/_team.html" %} + + + {% include "ungleich_page/includes/_softwares.html" %} + + + {% include "ungleich_page/includes/_contact_us.html" %} + + + {% include "ungleich_page/includes/_footer.html" %} + + + + + + + + + + + + + + + + + + + + + + + + + - -{% include "ungleich_page/includes/_services.html" %} + + + + - -{% include "ungleich_page/includes/_portfolio.html" %} + + - -{% include "ungleich_page/includes/_about.html" %}$ - - -{% include "ungleich_page/includes/_team.html" %} - - -{% include "ungleich_page/includes/_softwares.html" %} - - -{% include "ungleich_page/includes/_contact_us.html" %} - - -{% include "ungleich_page/includes/_footer.html" %} - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + diff --git a/utils/locale/de/LC_MESSAGES/django.po b/utils/locale/de/LC_MESSAGES/django.po index e8d6fd0c..a8926cd0 100644 --- a/utils/locale/de/LC_MESSAGES/django.po +++ b/utils/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-09-29 20:33+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" @@ -790,8 +790,7 @@ msgid "Message" msgstr "Nachricht" msgid "An email with the activation link has been sent to you" -msgstr "" -"Es wurde eine E-Mail mit dem Aktivierungslink an Dich gesendet." +msgstr "Es wurde eine E-Mail mit dem Aktivierungslink an Dich gesendet." msgid "Account Activation" msgstr "Accountaktivierung"