merged master and added translations
This commit is contained in:
		
				commit
				
					
						5d9a20dd94
					
				
			
		
					 23 changed files with 1406 additions and 894 deletions
				
			
		| 
						 | 
					@ -96,8 +96,11 @@ msgstr ""
 | 
				
			||||||
msgid "SUBMIT"
 | 
					msgid "SUBMIT"
 | 
				
			||||||
msgstr "ABSENDEN"
 | 
					msgstr "ABSENDEN"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Your Data Center Light Team"
 | 
				
			||||||
 | 
					msgstr "Dein Data Center Light Team"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Thank you for your request."
 | 
					msgid "Thank you for your request."
 | 
				
			||||||
msgstr "Vielen Dank für Ihre Anfrage."
 | 
					msgstr "Vielen Dank für Deine Anfrage."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "You are one step away from being our beta tester!"
 | 
					msgid "You are one step away from being our beta tester!"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -119,47 +122,35 @@ msgstr ""
 | 
				
			||||||
msgid "Thank you!"
 | 
					msgid "Thank you!"
 | 
				
			||||||
msgstr "Vielen Dank!"
 | 
					msgstr "Vielen Dank!"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "account activation"
 | 
					msgid "Account Activation"
 | 
				
			||||||
msgstr "Accountaktivierung"
 | 
					msgstr "Account Aktivierung"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#, python-format
 | 
					#, python-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"                You can activate your %(dcl_text)s account by <a href="
 | 
					"You can activate your Data Center Light account by <a href=\"%(base_url)s"
 | 
				
			||||||
"\"%(base_url)s%(activation_link)s\">clicking here</a>.<br/><br/>\n"
 | 
					"%(activation_link)s\">clicking here</a>.<br/>\n"
 | 
				
			||||||
"                You can also copy and paste the following link into the "
 | 
					"You can also copy and paste the following link into the address bar of your "
 | 
				
			||||||
"address bar of your browser and follow the link in order to activate your "
 | 
					"browser<br/>\n"
 | 
				
			||||||
"datacenterlight account.<br/>\n"
 | 
					"to activate your Data Center Light account.<br/>\n"
 | 
				
			||||||
"                %(base_url)s%(activation_link)s\n"
 | 
					"%(base_url)s%(activation_link)s\n"
 | 
				
			||||||
"                "
 | 
					 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"                <a href=\"%(base_url)s%(activation_link)s\">Klicke hier</a> "
 | 
					"<a href=\"%(base_url)s%(activation_link)s\">Klicke hier</a> um deinen Data "
 | 
				
			||||||
"um deinen %(dcl_text)s zu aktivieren.<br/><br/>\n"
 | 
					"Center Light Account zu aktivieren oder kopiere den folgenden Link in die "
 | 
				
			||||||
"                Oder kopiere den folgenden Link in die Adressleiste deines "
 | 
					"Adressleiste deines Browsers.<br/>\n"
 | 
				
			||||||
"Browsers und folge dann dem Link um deinen %(dcl_text)s Account zu "
 | 
					"%(base_url)s%(activation_link)s\n"
 | 
				
			||||||
"aktivieren.<br/>\n"
 | 
					 | 
				
			||||||
"                %(base_url)s%(activation_link)s\n"
 | 
					 | 
				
			||||||
"                "
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
msgid "Your"
 | 
					 | 
				
			||||||
msgstr "Dein"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
msgid "team"
 | 
					 | 
				
			||||||
msgstr "Team"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#, python-format
 | 
					#, python-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"\n"
 | 
					"You can activate your Data Center Light account by clicking here.\n"
 | 
				
			||||||
"Hi,\n"
 | 
					"You can also copy and paste the following link into the address bar of your "
 | 
				
			||||||
"\n"
 | 
					"browser\n"
 | 
				
			||||||
"You can activate your %(dcl_text)s account by clicking here %(base_url)s"
 | 
					"to activate your Data Center Light account.\n"
 | 
				
			||||||
"%(activation_link)s\n"
 | 
					"%(base_url)s%(activation_link)s\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"\n"
 | 
					"Klicke hier, um deinen Data Center Light Account zu aktivieren oder kopiere "
 | 
				
			||||||
"Hallo,\n"
 | 
					"den folgenden Link in die Adressleiste deines Browsers.\n"
 | 
				
			||||||
"\n"
 | 
					 | 
				
			||||||
"Du kannst deinen %(dcl_text)s Account aktivieren, indem du hier klickst "
 | 
					 | 
				
			||||||
"%(base_url)s%(activation_link)s\n"
 | 
					"%(base_url)s%(activation_link)s\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Home"
 | 
					msgid "Home"
 | 
				
			||||||
| 
						 | 
					@ -260,6 +251,7 @@ msgstr ""
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Review your billing address and card details and proceed to make payment."
 | 
					"Review your billing address and card details and proceed to make payment."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"Überprüfe die Rechnungsadresse und Kreditkartendaten und fahre mit der Zahlung fort."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Log in"
 | 
					msgid "Log in"
 | 
				
			||||||
msgstr "Anmelden"
 | 
					msgstr "Anmelden"
 | 
				
			||||||
| 
						 | 
					@ -268,6 +260,7 @@ msgid ""
 | 
				
			||||||
"Already signed up?<br>By logging in you can retrieve saved billing "
 | 
					"Already signed up?<br>By logging in you can retrieve saved billing "
 | 
				
			||||||
"information."
 | 
					"information."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"Bereits eingeloggt? Nach der Anmeldung kannst Du gespeicherte Rechnungsinformationen abrufen."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "LOGIN"
 | 
					msgid "LOGIN"
 | 
				
			||||||
msgstr "ANMELDEN"
 | 
					msgstr "ANMELDEN"
 | 
				
			||||||
| 
						 | 
					@ -276,7 +269,7 @@ msgid "Don't have an account yet?"
 | 
				
			||||||
msgstr "Besitzt du kein Benutzerkonto?"
 | 
					msgstr "Besitzt du kein Benutzerkonto?"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "You can sign up by filling in the information below."
 | 
					msgid "You can sign up by filling in the information below."
 | 
				
			||||||
msgstr ""
 | 
					msgstr "Du kannst Dich anmelden, indem Du die die untenstehenden Informationen ausfüllst."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Forgot password?"
 | 
					msgid "Forgot password?"
 | 
				
			||||||
msgstr "Passwort vergessen?"
 | 
					msgstr "Passwort vergessen?"
 | 
				
			||||||
| 
						 | 
					@ -516,6 +509,25 @@ msgstr "ist keine gültige E-Mailadresse"
 | 
				
			||||||
#~ msgid "Your Email"
 | 
					#~ msgid "Your Email"
 | 
				
			||||||
#~ msgstr "Deine E-Mail"
 | 
					#~ msgstr "Deine E-Mail"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#~ msgid ""
 | 
				
			||||||
 | 
					#~ "\n"
 | 
				
			||||||
 | 
					#~ "Hi,\n"
 | 
				
			||||||
 | 
					#~ "\n"
 | 
				
			||||||
 | 
					#~ "You can activate your %(dcl_text)s account by clicking here %(base_url)s"
 | 
				
			||||||
 | 
					#~ "%(activation_link)s\n"
 | 
				
			||||||
 | 
					#~ msgstr ""
 | 
				
			||||||
 | 
					#~ "\n"
 | 
				
			||||||
 | 
					#~ "Hallo,\n"
 | 
				
			||||||
 | 
					#~ "\n"
 | 
				
			||||||
 | 
					#~ "Du kannst deinen %(dcl_text)s Account aktivieren, indem du hier klickst "
 | 
				
			||||||
 | 
					#~ "%(base_url)s%(activation_link)s\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#~ msgid "Your"
 | 
				
			||||||
 | 
					#~ msgstr "Dein"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#~ msgid "team"
 | 
				
			||||||
 | 
					#~ msgstr "Team"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#~ msgid "Questions?"
 | 
					#~ msgid "Questions?"
 | 
				
			||||||
#~ msgstr "Fragen?"
 | 
					#~ msgstr "Fragen?"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								datacenterlight/static/datacenterlight/img/dcl-email-bg.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								datacenterlight/static/datacenterlight/img/dcl-email-bg.jpg
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 1.9 KiB  | 
| 
						 | 
					@ -0,0 +1,176 @@
 | 
				
			||||||
 | 
					{% load static from staticfiles %}
 | 
				
			||||||
 | 
					{% load i18n %}
 | 
				
			||||||
 | 
					<!-- Inliner Build Version 4380b7741bb759d6cb997545f3add21ad48f010b -->
 | 
				
			||||||
 | 
					<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
 | 
				
			||||||
 | 
					<html xmlns="http://www.w3.org/1999/xhtml"
 | 
				
			||||||
 | 
					      style="font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 | 
				
			||||||
 | 
					    <meta name="viewport" content="width=device-width, initial-scale=1">
 | 
				
			||||||
 | 
					    <title>{{dcl_text}}</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body bgcolor="#ffffff"
 | 
				
			||||||
 | 
					      style="font-family: 'Lato', 'sans-serif' !important; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; width: 100% !important; height: 100%; color: white; margin: 0;">
 | 
				
			||||||
 | 
					<style type="text/css">
 | 
				
			||||||
 | 
					@media only screen and (max-width: 480px) {
 | 
				
			||||||
 | 
					  table[class*="container-for-gmail-android"] {
 | 
				
			||||||
 | 
					    min-width: 290px !important; width: 100% !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  img[class="force-width-gmail"] {
 | 
				
			||||||
 | 
					    display: none !important; width: 0 !important; height: 0 !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  table[class="w320"] {
 | 
				
			||||||
 | 
					    width: 320px !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  td[class*="mobile-header-padding-left"] {
 | 
				
			||||||
 | 
					    width: 160px !important; padding-left: 0 !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  td[class*="mobile-header-padding-right"] {
 | 
				
			||||||
 | 
					    width: 160px !important; padding-right: 0 !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  td[class="header-lg"] {
 | 
				
			||||||
 | 
					    font-size: 24px !important; padding-bottom: 5px !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  td[class="content-padding"] {
 | 
				
			||||||
 | 
					    padding: 5px 0 5px !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  td[class="button"] {
 | 
				
			||||||
 | 
					    padding: 5px 5px 30px !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  td[class*="free-text"] {
 | 
				
			||||||
 | 
					    padding: 10px 18px 30px !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  td[class~="mobile-hide-img"] {
 | 
				
			||||||
 | 
					    display: none !important; height: 0 !important; width: 0 !important; line-height: 0 !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  td[class~="item"] {
 | 
				
			||||||
 | 
					    width: 140px !important; vertical-align: top !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  td[class~="quantity"] {
 | 
				
			||||||
 | 
					    width: 50px !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  td[class~="price"] {
 | 
				
			||||||
 | 
					    width: 90px !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  td[class="item-table"] {
 | 
				
			||||||
 | 
					    padding: 30px 20px !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  td[class="mini-container-left"] {
 | 
				
			||||||
 | 
					    padding: 0 15px 15px !important; display: block !important; width: 290px !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  td[class="mini-container-right"] {
 | 
				
			||||||
 | 
					    padding: 0 15px 15px !important; display: block !important; width: 290px !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
 | 
					<table align="center" cellpadding="0" cellspacing="0"
 | 
				
			||||||
 | 
					       class="container-for-gmail-android" width="100%"
 | 
				
			||||||
 | 
					       style="border-collapse: collapse !important; min-width: 600px; font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					    <tr style="font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					        <td align="left" valign="top" width="100%"
 | 
				
			||||||
 | 
					            style="border-collapse: collapse; font-family: 'Lato', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #ffffff url(http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg) repeat-x;"
 | 
				
			||||||
 | 
					            bgcolor="#ffffff">
 | 
				
			||||||
 | 
					            <center style="font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					                <table cellspacing="0" cellpadding="0" width="100%"
 | 
				
			||||||
 | 
					                       bgcolor="#ffffff"
 | 
				
			||||||
 | 
					                       background="{{base_url}}{% static 'datacenterlight/img/dcl-email-bg.jpg' %}"
 | 
				
			||||||
 | 
					                       style="border-collapse: collapse !important; font-family: 'Lato', 'sans-serif' !important; background: transparent;">
 | 
				
			||||||
 | 
					                    <tr style="font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					                        <td width="100%" height="80" valign="top"
 | 
				
			||||||
 | 
					                            style="text-align: center; vertical-align: middle; border-collapse: collapse; font-family: 'Lato', 'sans-serif' !important; font-size: 14px; color: #777777; line-height: 21px; background-color: #ffffff"
 | 
				
			||||||
 | 
					                            align="center">
 | 
				
			||||||
 | 
					                            <!--[if gte mso 9]>
 | 
				
			||||||
 | 
					                            <v:rect xmlns:v="urn:schemas-microsoft-com:vml"
 | 
				
			||||||
 | 
					                                    fill="true" stroke="false"
 | 
				
			||||||
 | 
					                                    style="mso-width-percent:1000;height:80px; v-text-anchor:middle;">
 | 
				
			||||||
 | 
					                                <v:fill type="tile"
 | 
				
			||||||
 | 
					                                        src="{{base_url}}{% static 'datacenterlight/img/dcl-email-bg.jpg' %}"
 | 
				
			||||||
 | 
					                                        color="#ffffff"/>
 | 
				
			||||||
 | 
					                                <v:textbox inset="0,0,0,0">
 | 
				
			||||||
 | 
					                            <![endif]-->
 | 
				
			||||||
 | 
					                            <center style="font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					                                <table cellpadding="0" cellspacing="0"
 | 
				
			||||||
 | 
					                                       width="600" class="w320"
 | 
				
			||||||
 | 
					                                       style="border-collapse: collapse !important; font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					                                    <tr style="font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					                                        <td class="pull-left mobile-header-padding-left"
 | 
				
			||||||
 | 
					                                            style="vertical-align: middle; border-collapse: collapse; font-family: 'Lato', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 290px; padding-left: 0px;"
 | 
				
			||||||
 | 
					                                            align="left" valign="middle">
 | 
				
			||||||
 | 
					                                            <a href="{{base_url}}"
 | 
				
			||||||
 | 
					                                               style="font-family: 'Lato', 'sans-serif' !important; color: #676767; text-decoration: none !important;"><img
 | 
				
			||||||
 | 
					                                                    width="137"
 | 
				
			||||||
 | 
					                                                    src="{{base_url}}{% static 'datacenterlight/img/datacenterlight.png' %}"
 | 
				
			||||||
 | 
					                                                    alt="logo"
 | 
				
			||||||
 | 
					                                                    style="max-width: 600px; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; font-family: 'Lato', 'sans-serif' !important; border: none;"></a>
 | 
				
			||||||
 | 
					                                        </td>
 | 
				
			||||||
 | 
					                                        <td class="pull-right mobile-header-padding-right"
 | 
				
			||||||
 | 
					                                            style="color: #4d4d4d; border-collapse: collapse; font-family: 'Lato', 'sans-serif' !important; font-size: 14px; text-align: right; line-height: 21px; width: 290px; padding-left: 10px;"
 | 
				
			||||||
 | 
					                                            align="right">
 | 
				
			||||||
 | 
					                                        </td>
 | 
				
			||||||
 | 
					                                    </tr>
 | 
				
			||||||
 | 
					                                </table>
 | 
				
			||||||
 | 
					                            </center>
 | 
				
			||||||
 | 
					                            <!--[if gte mso 9]>
 | 
				
			||||||
 | 
					                            </v:textbox>
 | 
				
			||||||
 | 
					                            </v:rect>
 | 
				
			||||||
 | 
					                            <![endif]-->
 | 
				
			||||||
 | 
					                        </td>
 | 
				
			||||||
 | 
					                    </tr>
 | 
				
			||||||
 | 
					                </table>
 | 
				
			||||||
 | 
					            </center>
 | 
				
			||||||
 | 
					        </td>
 | 
				
			||||||
 | 
					    </tr>
 | 
				
			||||||
 | 
					    <tr style="font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					        <td align="center" valign="top" width="100%"
 | 
				
			||||||
 | 
					            style="border-collapse: collapse; font-family: 'Lato', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #ffffff; padding: 20px 0 5px;"
 | 
				
			||||||
 | 
					            class="content-padding" bgcolor="#f7f7f7">
 | 
				
			||||||
 | 
					            <center style="font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					                <table cellspacing="0" cellpadding="0" width="600" class="w320"
 | 
				
			||||||
 | 
					                       style="border-collapse: collapse !important; font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					                    <tr style="font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					                        <td class="header-lg"
 | 
				
			||||||
 | 
					                            style="border-collapse: collapse; font-family: 'Lato', 'sans-serif' !important; font-size: 32px; color: #4d4d4d; text-align: left; line-height: normal; font-weight: 400; padding: 35px 5px 0px;"
 | 
				
			||||||
 | 
					                            align="center">
 | 
				
			||||||
 | 
					                            {% block email_head %}
 | 
				
			||||||
 | 
					                            {% endblock %}
 | 
				
			||||||
 | 
					                        </td>
 | 
				
			||||||
 | 
					                    </tr>
 | 
				
			||||||
 | 
					                    <tr style="font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					                        <td class="free-text"
 | 
				
			||||||
 | 
					                            style="border-collapse: collapse; font-family: 'Lato', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 100% !important; padding: 40px 5px 20px;"
 | 
				
			||||||
 | 
					                            align="center">
 | 
				
			||||||
 | 
					                            <p>
 | 
				
			||||||
 | 
					                                {% block email_body %}
 | 
				
			||||||
 | 
					                                {% endblock %}
 | 
				
			||||||
 | 
					                            </p></td>
 | 
				
			||||||
 | 
					                    </tr>
 | 
				
			||||||
 | 
					                    <tr style="font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					                        <td class="button"
 | 
				
			||||||
 | 
					                            style="border-collapse: collapse; font-family: 'Lato', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; padding: 0;"
 | 
				
			||||||
 | 
					                            align="center"> 
 | 
				
			||||||
 | 
					                        </td>
 | 
				
			||||||
 | 
					                    </tr>
 | 
				
			||||||
 | 
					                </table>
 | 
				
			||||||
 | 
					            </center>
 | 
				
			||||||
 | 
					        </td>
 | 
				
			||||||
 | 
					    </tr>
 | 
				
			||||||
 | 
					    <tr style="font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					        <td align="center" valign="top" width="100%"
 | 
				
			||||||
 | 
					            style="height: 100px; border-collapse: collapse; font-family: 'Lato', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #ffffff;"
 | 
				
			||||||
 | 
					            bgcolor="#ffffff">
 | 
				
			||||||
 | 
					            <center style="font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					                <table cellspacing="0" cellpadding="0" width="600" class="w320"
 | 
				
			||||||
 | 
					                       style="border-collapse: collapse !important; font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					                    <tr style="font-family: 'Lato', 'sans-serif' !important;">
 | 
				
			||||||
 | 
					                        <td style="border-collapse: collapse; font-family: 'Lato', 'sans-serif' !important; font-size: 14px; font-weight: 600; color: #7293de; padding: 25px 5px 0px;text-align: left; line-height: 21px;;"
 | 
				
			||||||
 | 
					                            align="left">{% trans 'Your Data Center Light Team' %}
 | 
				
			||||||
 | 
					                        </td>
 | 
				
			||||||
 | 
					                    </tr>
 | 
				
			||||||
 | 
					                </table>
 | 
				
			||||||
 | 
					            </center>
 | 
				
			||||||
 | 
					        </td>
 | 
				
			||||||
 | 
					    </tr>
 | 
				
			||||||
 | 
					</table>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					{% load static from staticfiles %}
 | 
				
			||||||
 | 
					{% load i18n %}
 | 
				
			||||||
 | 
					{% block email_head %}
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					{% block email_body %}
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					{% trans 'Your Data Center Light Team' %}
 | 
				
			||||||
| 
						 | 
					@ -74,7 +74,7 @@
 | 
				
			||||||
            <![endif]-->
 | 
					            <![endif]-->
 | 
				
			||||||
              <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					              <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
                <table cellpadding="0" cellspacing="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					                <table cellpadding="0" cellspacing="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
<td class="pull-left mobile-header-padding-left" style="vertical-align: middle; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 290px; padding-left: 10px;" align="left" valign="middle">
 | 
					<td class="pull-left mobile-header-padding-left" style="vertical-align: middle; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 290px; padding-left: 0px;" align="left" valign="middle">
 | 
				
			||||||
                      <a href="{{base_url}}" style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; color: #676767; text-decoration: none !important;"><img width="137" src="{{base_url}}{% static 'datacenterlight/img/datacenterlight.png' %}" alt="logo" style="max-width: 600px; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; border: none;"></a>
 | 
					                      <a href="{{base_url}}" style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; color: #676767; text-decoration: none !important;"><img width="137" src="{{base_url}}{% static 'datacenterlight/img/datacenterlight.png' %}" alt="logo" style="max-width: 600px; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; border: none;"></a>
 | 
				
			||||||
                    </td>
 | 
					                    </td>
 | 
				
			||||||
                    <td class="pull-right mobile-header-padding-right" style="color: #4d4d4d; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; text-align: right; line-height: 21px; width: 290px; padding-left: 10px;" align="right">
 | 
					                    <td class="pull-right mobile-header-padding-right" style="color: #4d4d4d; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; text-align: right; line-height: 21px; width: 290px; padding-left: 10px;" align="right">
 | 
				
			||||||
| 
						 | 
					@ -95,12 +95,12 @@
 | 
				
			||||||
      <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					      <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
<td class="header-lg" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 32px; color: #4d4d4d; text-align: left; line-height: normal; font-weight: 400; padding: 35px 5 0;" align="center">
 | 
					<td class="header-lg" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 32px; color: #4d4d4d; text-align: left; line-height: normal; font-weight: 400; padding: 35px 5px 0px;" align="center">
 | 
				
			||||||
              {% trans "Thank you for your request." %}
 | 
					              {% trans "Thank you for your request." %}
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
          </tr>
 | 
					          </tr>
 | 
				
			||||||
<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
<td class="free-text" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 100% !important; padding: 40px 7px 20px;" align="center">
 | 
					<td class="free-text" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 100% !important; padding: 40px 5px 20px;" align="center">
 | 
				
			||||||
             <p>{% trans "You are one step away from being our beta tester!" %}  <br/><br/> 
 | 
					             <p>{% trans "You are one step away from being our beta tester!" %}  <br/><br/> 
 | 
				
			||||||
               {% trans "Currently we are running our tests to make sure everything runs perfectly." %}<br/>
 | 
					               {% trans "Currently we are running our tests to make sure everything runs perfectly." %}<br/>
 | 
				
			||||||
             {% trans "In the meantime, we would like to ask you a little patience<br/> until our team contacts you with beta access." %}<br/>
 | 
					             {% trans "In the meantime, we would like to ask you a little patience<br/> until our team contacts you with beta access." %}<br/>
 | 
				
			||||||
| 
						 | 
					@ -117,7 +117,7 @@
 | 
				
			||||||
<td align="center" valign="top" width="100%" style="height: 100px; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #ffffff;" bgcolor="#ffffff">
 | 
					<td align="center" valign="top" width="100%" style="height: 100px; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #ffffff;" bgcolor="#ffffff">
 | 
				
			||||||
      <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					      <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
<td style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: 600; color: #7293de; padding: 25px 9px 0px;text-align: left; line-height: 21px;;" align="left">Your data center light team<br style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					<td style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: 600; color: #7293de; padding: 25px 5px 0px;text-align: left; line-height: 21px;;" align="left">Your data center light team<br style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
</td>
 | 
					</td>
 | 
				
			||||||
          </tr></table>
 | 
					          </tr></table>
 | 
				
			||||||
</center>
 | 
					</center>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -73,7 +73,7 @@
 | 
				
			||||||
            <![endif]-->
 | 
					            <![endif]-->
 | 
				
			||||||
              <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					              <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
                <table cellpadding="0" cellspacing="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					                <table cellpadding="0" cellspacing="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
<td class="pull-left mobile-header-padding-left" style="vertical-align: middle; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 290px; padding-left: 10px;" align="left" valign="middle">
 | 
					<td class="pull-left mobile-header-padding-left" style="vertical-align: middle; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 290px; padding-left: 0px;" align="left" valign="middle">
 | 
				
			||||||
                      <a href="{{base_url}}" style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; color: #676767; text-decoration: none !important;"><img width="137" src="{{base_url}}{% static 'datacenterlight/img/datacenterlight.png' %}" alt="logo" style="max-width: 600px; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; border: none;"></a>
 | 
					                      <a href="{{base_url}}" style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; color: #676767; text-decoration: none !important;"><img width="137" src="{{base_url}}{% static 'datacenterlight/img/datacenterlight.png' %}" alt="logo" style="max-width: 600px; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; border: none;"></a>
 | 
				
			||||||
                    </td>
 | 
					                    </td>
 | 
				
			||||||
                    <td class="pull-right mobile-header-padding-right" style="color: #4d4d4d; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; text-align: right; line-height: 21px; width: 290px; padding-left: 10px;" align="right">
 | 
					                    <td class="pull-right mobile-header-padding-right" style="color: #4d4d4d; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; text-align: right; line-height: 21px; width: 290px; padding-left: 10px;" align="right">
 | 
				
			||||||
| 
						 | 
					@ -94,12 +94,12 @@
 | 
				
			||||||
      <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					      <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
<td class="header-lg" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 32px; color: #4d4d4d; text-align: left; line-height: normal; font-weight: 400; padding: 35px 5 0;" align="center">
 | 
					<td class="header-lg" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 32px; color: #4d4d4d; text-align: left; line-height: normal; font-weight: 400; padding: 35px 5px 0px;" align="center">
 | 
				
			||||||
              An user requested a beta access
 | 
					              An user requested a beta access
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
          </tr>
 | 
					          </tr>
 | 
				
			||||||
<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
<td class="free-text" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 100% !important; padding: 40px 7px 20px;" align="center">
 | 
					<td class="free-text" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 100% !important; padding: 40px 5px 20px;" align="center">
 | 
				
			||||||
             <p>User {{email}} requested beta access         </p></td>
 | 
					             <p>User {{email}} requested beta access         </p></td>
 | 
				
			||||||
          </tr>
 | 
					          </tr>
 | 
				
			||||||
<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
| 
						 | 
					@ -113,7 +113,7 @@
 | 
				
			||||||
<td align="center" valign="top" width="100%" style="height: 100px; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #ffffff;" bgcolor="#ffffff">
 | 
					<td align="center" valign="top" width="100%" style="height: 100px; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #ffffff;" bgcolor="#ffffff">
 | 
				
			||||||
      <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					      <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
<td style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: 600; color: #7293de; padding: 25px 9px 0px;text-align: left; line-height: 21px;;" align="left">Your data center light team<br style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					<td style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: 600; color: #7293de; padding: 25px 5px 0px;text-align: left; line-height: 21px;;" align="left">Your data center light team<br style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
</td>
 | 
					</td>
 | 
				
			||||||
          </tr></table>
 | 
					          </tr></table>
 | 
				
			||||||
</center>
 | 
					</center>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -73,7 +73,7 @@
 | 
				
			||||||
            <![endif]-->
 | 
					            <![endif]-->
 | 
				
			||||||
              <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					              <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
                <table cellpadding="0" cellspacing="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					                <table cellpadding="0" cellspacing="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
<td class="pull-left mobile-header-padding-left" style="vertical-align: middle; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 290px; padding-left: 10px;" align="left" valign="middle">
 | 
					<td class="pull-left mobile-header-padding-left" style="vertical-align: middle; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 290px; padding-left: 0px;" align="left" valign="middle">
 | 
				
			||||||
                      <a href="{{base_url}}" style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; color: #676767; text-decoration: none !important;"><img width="137" src="{{base_url}}{% static 'datacenterlight/img/datacenterlight.png' %}" alt="logo" style="max-width: 600px; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; border: none;"></a>
 | 
					                      <a href="{{base_url}}" style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; color: #676767; text-decoration: none !important;"><img width="137" src="{{base_url}}{% static 'datacenterlight/img/datacenterlight.png' %}" alt="logo" style="max-width: 600px; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; border: none;"></a>
 | 
				
			||||||
                    </td>
 | 
					                    </td>
 | 
				
			||||||
                    <td class="pull-right mobile-header-padding-right" style="color: #4d4d4d; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; text-align: right; line-height: 21px; width: 290px; padding-left: 10px;" align="right">
 | 
					                    <td class="pull-right mobile-header-padding-right" style="color: #4d4d4d; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; text-align: right; line-height: 21px; width: 290px; padding-left: 10px;" align="right">
 | 
				
			||||||
| 
						 | 
					@ -94,14 +94,14 @@
 | 
				
			||||||
      <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					      <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
<td class="header-lg" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 32px; color: #4d4d4d; text-align: left; line-height: normal; font-weight: 400; padding: 35px 5 0;" align="center">
 | 
					<td class="header-lg" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 32px; color: #4d4d4d; text-align: left; line-height: normal; font-weight: 400; padding: 35px 5px 0px;" align="center">
 | 
				
			||||||
              An user requested a beta access
 | 
					              An user requested a beta access
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
          </tr>
 | 
					          </tr>
 | 
				
			||||||
<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
<td class="free-text" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 100% !important; padding: 40px 7px 20px;" align="center">
 | 
					<td class="free-text" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 100% !important; padding: 40px 5px 20px;" align="center">
 | 
				
			||||||
             <p>User {{email}} requested beta access         </p>
 | 
					             <p>User {{email}} requested beta access         </p>
 | 
				
			||||||
             {% for vm in vms %}
 | 
					             {% for vm in vms %}
 | 
				
			||||||
                Type: {{vm.type}} - Amount: {{vm.amount}}
 | 
					                Type: {{vm.type}} - Amount: {{vm.amount}}
 | 
				
			||||||
| 
						 | 
					@ -119,7 +119,7 @@
 | 
				
			||||||
<td align="center" valign="top" width="100%" style="height: 100px; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #ffffff;" bgcolor="#ffffff">
 | 
					<td align="center" valign="top" width="100%" style="height: 100px; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #ffffff;" bgcolor="#ffffff">
 | 
				
			||||||
      <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					      <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
<td style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: 600; color: #7293de; padding: 25px 9px 0px;text-align: left; line-height: 21px;;" align="left">Your data center light team<br style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					<td style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: 600; color: #7293de; padding: 25px 5px 0px;text-align: left; line-height: 21px;;" align="left">Your data center light team<br style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
				
			||||||
</td>
 | 
					</td>
 | 
				
			||||||
          </tr></table>
 | 
					          </tr></table>
 | 
				
			||||||
</center>
 | 
					</center>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,132 +1,14 @@
 | 
				
			||||||
 | 
					{% extends "datacenterlight/emails/base_email_datacenterlight.html" %}
 | 
				
			||||||
{% load static from staticfiles %}
 | 
					{% load static from staticfiles %}
 | 
				
			||||||
{% load i18n %}
 | 
					{% load i18n %}
 | 
				
			||||||
<!-- Inliner Build Version 4380b7741bb759d6cb997545f3add21ad48f010b -->
 | 
					{% block email_head %}
 | 
				
			||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
 | 
					{{dcl_text}} {% trans 'Account Activation' %}
 | 
				
			||||||
<html xmlns="http://www.w3.org/1999/xhtml" style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					{% endblock %}
 | 
				
			||||||
<head>
 | 
					{% block email_body %}
 | 
				
			||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 | 
					{% blocktrans %}
 | 
				
			||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
 | 
					You can activate your Data Center Light account by <a href="{{base_url}}{{activation_link}}">clicking here</a>.<br/>
 | 
				
			||||||
<title>{{dcl_text}}</title>
 | 
					You can also copy and paste the following link into the address bar of your browser<br/>
 | 
				
			||||||
</head>
 | 
					to activate your Data Center Light account.<br/>
 | 
				
			||||||
<body bgcolor="#ffffff" style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; width: 100% !important; height: 100%; color: white; margin: 0;">
 | 
					{{base_url}}{{activation_link}}
 | 
				
			||||||
<style type="text/css">
 | 
					{% endblocktrans %}
 | 
				
			||||||
@media only screen and (max-width: 480px) {
 | 
					{% endblock %}
 | 
				
			||||||
  table[class*="container-for-gmail-android"] {
 | 
					 | 
				
			||||||
    min-width: 290px !important; width: 100% !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  img[class="force-width-gmail"] {
 | 
					 | 
				
			||||||
    display: none !important; width: 0 !important; height: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  table[class="w320"] {
 | 
					 | 
				
			||||||
    width: 320px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class*="mobile-header-padding-left"] {
 | 
					 | 
				
			||||||
    width: 160px !important; padding-left: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class*="mobile-header-padding-right"] {
 | 
					 | 
				
			||||||
    width: 160px !important; padding-right: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="header-lg"] {
 | 
					 | 
				
			||||||
    font-size: 24px !important; padding-bottom: 5px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="content-padding"] {
 | 
					 | 
				
			||||||
    padding: 5px 0 5px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="button"] {
 | 
					 | 
				
			||||||
    padding: 5px 5px 30px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class*="free-text"] {
 | 
					 | 
				
			||||||
    padding: 10px 18px 30px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="mobile-hide-img"] {
 | 
					 | 
				
			||||||
    display: none !important; height: 0 !important; width: 0 !important; line-height: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="item"] {
 | 
					 | 
				
			||||||
    width: 140px !important; vertical-align: top !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="quantity"] {
 | 
					 | 
				
			||||||
    width: 50px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="price"] {
 | 
					 | 
				
			||||||
    width: 90px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="item-table"] {
 | 
					 | 
				
			||||||
    padding: 30px 20px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="mini-container-left"] {
 | 
					 | 
				
			||||||
    padding: 0 15px 15px !important; display: block !important; width: 290px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="mini-container-right"] {
 | 
					 | 
				
			||||||
    padding: 0 15px 15px !important; display: block !important; width: 290px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
<table align="center" cellpadding="0" cellspacing="0" class="container-for-gmail-android" width="100%" style="border-collapse: collapse !important; min-width: 600px; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td align="left" valign="top" width="100%" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #ffffff url(http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg) repeat-x;" bgcolor="#ffffff">
 | 
					 | 
				
			||||||
      <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
      <table cellspacing="0" cellpadding="0" width="100%" bgcolor="#ffffff" background="http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; background: transparent;"><tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td width="100%" height="80" valign="top" style="text-align: center; vertical-align: middle; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; line-height: 21px; background-color: #ffffff" align="center">
 | 
					 | 
				
			||||||
            <!--[if gte mso 9]>
 | 
					 | 
				
			||||||
            <v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="mso-width-percent:1000;height:80px; v-text-anchor:middle;">
 | 
					 | 
				
			||||||
              <v:fill type="tile" src="http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg" color="#ffffff" />
 | 
					 | 
				
			||||||
              <v:textbox inset="0,0,0,0">
 | 
					 | 
				
			||||||
            <![endif]-->
 | 
					 | 
				
			||||||
              <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
                <table cellpadding="0" cellspacing="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="pull-left mobile-header-padding-left" style="vertical-align: middle; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 290px; padding-left: 10px;" align="left" valign="middle">
 | 
					 | 
				
			||||||
                      <a href="{{base_url}}" style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; color: #676767; text-decoration: none !important;"><img width="137" src="{{base_url}}{% static 'datacenterlight/img/datacenterlight.png' %}" alt="logo" style="max-width: 600px; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; border: none;"></a>
 | 
					 | 
				
			||||||
                    </td>
 | 
					 | 
				
			||||||
                    <td class="pull-right mobile-header-padding-right" style="color: #4d4d4d; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; text-align: right; line-height: 21px; width: 290px; padding-left: 10px;" align="right">
 | 
					 | 
				
			||||||
                    </td>
 | 
					 | 
				
			||||||
                  </tr></table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
              <!--[if gte mso 9]>
 | 
					 | 
				
			||||||
              </v:textbox>
 | 
					 | 
				
			||||||
            </v:rect>
 | 
					 | 
				
			||||||
            <![endif]-->
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr></table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
  </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td align="center" valign="top" width="100%" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #ffffff; padding: 20px 0 5px;" class="content-padding" bgcolor="#f7f7f7">
 | 
					 | 
				
			||||||
      <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="header-lg" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 32px; color: #4d4d4d; text-align: left; line-height: normal; font-weight: 400; padding: 35px 5 0;" align="center">
 | 
					 | 
				
			||||||
              {{dcl_text}} {% trans 'account activation' %}
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="free-text" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 100% !important; padding: 40px 7px 20px;" align="center">
 | 
					 | 
				
			||||||
             <p>
 | 
					 | 
				
			||||||
                {% blocktrans %}
 | 
					 | 
				
			||||||
                You can activate your {{dcl_text}} account by <a href="{{base_url}}{{activation_link}}">clicking here</a>.<br/><br/>
 | 
					 | 
				
			||||||
                You can also copy and paste the following link into the address bar of your browser and follow the link in order to activate your datacenterlight account.<br/>
 | 
					 | 
				
			||||||
                {{base_url}}{{activation_link}}
 | 
					 | 
				
			||||||
                {% endblocktrans %}
 | 
					 | 
				
			||||||
             </p></td>
 | 
					 | 
				
			||||||
          </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="button" style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; padding: 0;" align="center"> </td>
 | 
					 | 
				
			||||||
          </tr>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
  </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td align="center" valign="top" width="100%" style="height: 100px; border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #ffffff;" bgcolor="#ffffff">
 | 
					 | 
				
			||||||
      <center style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td style="border-collapse: collapse; font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: 600; color: #7293de; padding: 25px 9px 0px;text-align: left; line-height: 21px;;" align="left">{% trans 'Your' %} {{dcl_text}} {% trans 'team' %}<br style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
</td>
 | 
					 | 
				
			||||||
          </tr></table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
  </tr>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,10 @@
 | 
				
			||||||
{% load static from staticfiles %}
 | 
					{% extends "datacenterlight/emails/base_email_datacenterlight.txt" %}
 | 
				
			||||||
{% load i18n %}
 | 
					{% load i18n %}
 | 
				
			||||||
{{dcl_text}} {% trans 'account activation' %}
 | 
					{% block email_head %}{{dcl_text}} {% trans 'Account Activation' %}{% endblock %}
 | 
				
			||||||
 | 
					{% block email_body %}
 | 
				
			||||||
{% blocktrans %}
 | 
					{% blocktrans %}You can activate your Data Center Light account by clicking here.
 | 
				
			||||||
Hi,
 | 
					You can also copy and paste the following link into the address bar of your browser
 | 
				
			||||||
 | 
					to activate your Data Center Light account.
 | 
				
			||||||
You can activate your {{dcl_text}} account by clicking here {{base_url}}{{activation_link}}
 | 
					{{base_url}}{{activation_link}}
 | 
				
			||||||
{% endblocktrans %}
 | 
					{% endblocktrans %}
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
{% trans 'Your' %} {{dcl_text}} {% trans 'team' %}
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,21 +33,6 @@ msgstr "Gebe deinem SSH-Key einen Name"
 | 
				
			||||||
msgid "Key name"
 | 
					msgid "Key name"
 | 
				
			||||||
msgstr "Key-Name"
 | 
					msgstr "Key-Name"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "My Virtual Machines"
 | 
					 | 
				
			||||||
msgstr "Meine virtuellen Maschinen"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
msgid "My Orders"
 | 
					 | 
				
			||||||
msgstr "Meine Bestellungen"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
msgid "SSH Keys"
 | 
					 | 
				
			||||||
msgstr "SSH Key"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
msgid "Notifications "
 | 
					 | 
				
			||||||
msgstr "Benachrichtigungen"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
msgid "Logout"
 | 
					 | 
				
			||||||
msgstr "Abmelden"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
msgid "All Rights Reserved"
 | 
					msgid "All Rights Reserved"
 | 
				
			||||||
msgstr "Alle Rechte vorbehalten"
 | 
					msgstr "Alle Rechte vorbehalten"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -195,19 +180,109 @@ msgstr "Support / Kontakt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#, python-format
 | 
					#, python-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
 | 
					"You have ordered a new virtual machine!\n"
 | 
				
			||||||
 | 
					"<br/>\n"
 | 
				
			||||||
 | 
					"Your order of [%(vm_name)s] has been charged.<br/><br/>\n"
 | 
				
			||||||
 | 
					"You can view your invoice by clicking the button below.<br/><br/>\n"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"Du hast eine neue virtuelle Maschine bestellt!<br/>\n"
 | 
				
			||||||
 | 
					"Deine Bestellung von [%(vm_name)s] wurde erhoben.<br/><br/>\n"
 | 
				
			||||||
 | 
					"Um die Rechnung zu sehen, klicke auf den Button unten.<br/><br/>\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "View Invoice"
 | 
				
			||||||
 | 
					msgstr "Zur Rechnung"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#, python-format
 | 
				
			||||||
 | 
					msgid ""
 | 
				
			||||||
 | 
					"You have ordered a new virtual machine!\n"
 | 
				
			||||||
 | 
					"Your order of [%(vm_name)s] has been charged.\n"
 | 
				
			||||||
 | 
					"You can view your invoice here.\n"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"Du hast eine neue virtuelle Maschine bestellt!\n"
 | 
				
			||||||
 | 
					"Deine Bestellung von [%(vm_name)s] wurde erhoben.\n"
 | 
				
			||||||
 | 
					"Um die Rechnung zu sehen, klicke hier.\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Password Reset"
 | 
				
			||||||
 | 
					msgstr "Passwort zurücksetzen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#, python-format
 | 
				
			||||||
 | 
					msgid ""
 | 
				
			||||||
 | 
					"\n"
 | 
				
			||||||
"You're receiving this email because you requested a password reset for your "
 | 
					"You're receiving this email because you requested a password reset for your "
 | 
				
			||||||
"user account at %(site_name)s."
 | 
					"user account at %(site_name)s.<br/>\n"
 | 
				
			||||||
 | 
					"Please go to the following page and choose a new password: %(base_url)s"
 | 
				
			||||||
 | 
					"%(password_reset_url)s<br/>\n"
 | 
				
			||||||
 | 
					"If you didn't request a new password, ignore this e-mail.<br/>\n"
 | 
				
			||||||
 | 
					"Thank you!\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"\n"
 | 
				
			||||||
 | 
					"Du erhälst diese E-Mail da du dein Passwort für deinen Account bei "
 | 
				
			||||||
 | 
					"%(site_name)s zurücksetzen möchtest.<br/>\n"
 | 
				
			||||||
 | 
					"Bitte folge diesem Link und wähle ein neues Passwort: %(base_url)s"
 | 
				
			||||||
 | 
					"%(password_reset_url)s Solltest du kein neues Passwort angefordert haben, "
 | 
				
			||||||
 | 
					"dann ignoriere diese E-Mail.<br/>\n"
 | 
				
			||||||
 | 
					"Dankeschön!\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Please go to the following page and choose a new password:"
 | 
					#, python-format
 | 
				
			||||||
 | 
					msgid ""
 | 
				
			||||||
 | 
					"You're receiving this email because you requested a password reset for your "
 | 
				
			||||||
 | 
					"user account at %(site_name)s.\n"
 | 
				
			||||||
 | 
					"Please go to the following page and choose a new password: %(base_url)s"
 | 
				
			||||||
 | 
					"%(password_reset_url)s\n"
 | 
				
			||||||
 | 
					"If you didn't request a new password, ignore this e-mail.\n"
 | 
				
			||||||
 | 
					"Thank you!\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"Du erhälst diese E-Mail da du dein Passwort für deinen Account bei "
 | 
				
			||||||
 | 
					"%(site_name)s zurücksetzen möchtest.\n"
 | 
				
			||||||
 | 
					"Bitte folge diesem Link und wähle ein neues Passwort: %(base_url)s"
 | 
				
			||||||
 | 
					"%(password_reset_url)s Solltest du kein neues Passwort angefordert haben, "
 | 
				
			||||||
 | 
					"dann ignoriere diese E-Mail.\n"
 | 
				
			||||||
 | 
					"Dankeschön!\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Thanks for using our site!"
 | 
					#, python-format
 | 
				
			||||||
 | 
					msgid ""
 | 
				
			||||||
 | 
					"You're receiving this mail because your virtual machine [%(vm_name)s] has "
 | 
				
			||||||
 | 
					"been cancelled.<br/>\n"
 | 
				
			||||||
 | 
					"You can see your order status by clicking [my VM page] below.<br/>\n"
 | 
				
			||||||
 | 
					"If you want to order a new virtual machine, you can do it by clicking <a "
 | 
				
			||||||
 | 
					"href=\"%(base_url)s%(my_virtual_machines_url)s\">this link</a>.<br/>\n"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"Du erhälst diese E-Mail, da deine virtuelle Maschine [%(vm_name)s] gekündigt "
 | 
				
			||||||
 | 
					"wurde.<br/>\n"
 | 
				
			||||||
 | 
					"Um deinen Auftragsstatus zu sehen, klicke auf die [my VM page] unten.<br/>\n"
 | 
				
			||||||
 | 
					"Falls du eine neue virtuelle Maschine bestellen möchtest, kannst du dies "
 | 
				
			||||||
 | 
					"tun, indem du <a href=\"%(base_url)s%(my_virtual_machines_url)s\">diesen "
 | 
				
			||||||
 | 
					"Link klickst</a>.<br/>\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "My VM page"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#, python-format
 | 
					#, python-format
 | 
				
			||||||
msgid "The %(site_name)s team"
 | 
					msgid ""
 | 
				
			||||||
 | 
					"You're receiving this mail because your virtual machine [%(vm_name)s] has "
 | 
				
			||||||
 | 
					"been cancelled.\n"
 | 
				
			||||||
 | 
					"You can see your order status by clicking here\n"
 | 
				
			||||||
 | 
					"%(base_url)s%(vm_order_url)s\n"
 | 
				
			||||||
 | 
					"If you want to order a new virtual machine, you can do it by clicking this "
 | 
				
			||||||
 | 
					"link.\n"
 | 
				
			||||||
 | 
					"%(base_url)s%(my_virtual_machines_url)s\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"Du erhälst diese E-Mail, da deine virtuelle Maschine [%(vm_name)s] gekündigt "
 | 
				
			||||||
 | 
					"wurde.\n"
 | 
				
			||||||
 | 
					"Um deinen Auftragsstatus zu sehen, klicke hier.\n"
 | 
				
			||||||
 | 
					"%(base_url)s%(vm_order_url)s\n"
 | 
				
			||||||
 | 
					"Falls du eine neue virtuelle Maschine bestellen möchtest, kannst du dies "
 | 
				
			||||||
 | 
					"tun, indem du diesen Link klickst.\n"
 | 
				
			||||||
 | 
					"%(base_url)s%(my_virtual_machines_url)s\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Toggle navigation"
 | 
				
			||||||
 | 
					msgstr "Konfiguration"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Dashboard"
 | 
				
			||||||
 | 
					msgstr "Mein Dashboard"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Logout"
 | 
				
			||||||
 | 
					msgstr "Abmelden"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Don't have an account yet ? "
 | 
					msgid "Don't have an account yet ? "
 | 
				
			||||||
msgstr "Besitzt du kein Benutzerkonto?"
 | 
					msgstr "Besitzt du kein Benutzerkonto?"
 | 
				
			||||||
| 
						 | 
					@ -521,17 +596,53 @@ msgstr "Du kannst dich nun"
 | 
				
			||||||
msgid "Sorry. Your request is invalid."
 | 
					msgid "Sorry. Your request is invalid."
 | 
				
			||||||
msgstr "Entschuldigung, deine Anfrage ist ungültig."
 | 
					msgstr "Entschuldigung, deine Anfrage ist ungültig."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Password has been reset."
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Password reset has not been successful."
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "The reset password link is no longer valid."
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Invalid credit card"
 | 
					msgid "Invalid credit card"
 | 
				
			||||||
msgstr "Ungültige Kreditkarte"
 | 
					msgstr "Ungültige Kreditkarte"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#, python-format
 | 
				
			||||||
 | 
					msgid "Your New VM %(vm_name)s at Data Center Light"
 | 
				
			||||||
 | 
					msgstr "Deine neue VM %(vm_name)s bei Data Center Light"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Confirm Order"
 | 
					msgid "Confirm Order"
 | 
				
			||||||
msgstr "Bestellung Bestätigen"
 | 
					msgstr "Bestellung Bestätigen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "In order to create a VM, you need to create/upload your SSH KEY first."
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"Um eine VM zu erstellen musst du zuerst einen SSH-Key erstellen / hochladen."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"We could not find the requested VM. Please                            "
 | 
					"We could not find the requested VM. Please                            "
 | 
				
			||||||
"contact Data Center Light Support."
 | 
					"contact Data Center Light Support."
 | 
				
			||||||
msgstr "Kontaktiere den Data Center Light Support."
 | 
					msgstr "Kontaktiere den Data Center Light Support."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Virtual Machine Cancellation"
 | 
				
			||||||
 | 
					msgstr "VM Kündigung"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#, python-format
 | 
				
			||||||
 | 
					msgid "VM %(VM_ID)s terminated successfully"
 | 
				
			||||||
 | 
					msgstr "VM %(VM_ID)s erfolgreich beendet"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#~ msgid "My Virtual Machines"
 | 
				
			||||||
 | 
					#~ msgstr "Meine virtuellen Maschinen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#~ msgid "My Orders"
 | 
				
			||||||
 | 
					#~ msgstr "Meine Bestellungen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#~ msgid "SSH Keys"
 | 
				
			||||||
 | 
					#~ msgstr "SSH Key"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#~ msgid "Notifications "
 | 
				
			||||||
 | 
					#~ msgstr "Benachrichtigungen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#~ msgid "REMOVE CARD"
 | 
					#~ msgid "REMOVE CARD"
 | 
				
			||||||
#~ msgstr "KARTE ENTFERNEN"
 | 
					#~ msgstr "KARTE ENTFERNEN"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,140 +1,14 @@
 | 
				
			||||||
{% load static from staticfiles %}
 | 
					{% extends "datacenterlight/emails/base_email_datacenterlight.html" %}
 | 
				
			||||||
<!-- Inliner Build Version 4380b7741bb759d6cb997545f3add21ad48f010b -->
 | 
					{% load i18n %}
 | 
				
			||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
 | 
					{% block email_head %}{{page_header}}{% endblock %}
 | 
				
			||||||
<html xmlns="http://www.w3.org/1999/xhtml" style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					{% block email_body %}
 | 
				
			||||||
<head>
 | 
					{% url 'hosting:orders' order.id as order_url %}
 | 
				
			||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 | 
					{% blocktrans with vm.name as vm_name %}You have ordered a new virtual machine!
 | 
				
			||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
 | 
					<br/>
 | 
				
			||||||
<title>Oxygen Invoice</title>
 | 
					Your order of [{{vm_name}}] has been charged.<br/><br/>
 | 
				
			||||||
</head>
 | 
					You can view your invoice by clicking the button below.<br/><br/>
 | 
				
			||||||
<body bgcolor="#f7f7f7" style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; width: 100% !important; height: 100%; color: white; margin: 0;">
 | 
					{% endblocktrans %}
 | 
				
			||||||
<style type="text/css">
 | 
					<div class="button" style="border-collapse: collapse; font-family: 'Lato', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; padding: 30px 0;" align="center">
 | 
				
			||||||
@media only screen and (max-width: 480px) {
 | 
					    <a href="{{ base_url }}{{order_url}}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">{% trans 'View Invoice' %}</a>
 | 
				
			||||||
  table[class*="container-for-gmail-android"] {
 | 
					 | 
				
			||||||
    min-width: 290px !important; width: 100% !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  img[class="force-width-gmail"] {
 | 
					 | 
				
			||||||
    display: none !important; width: 0 !important; height: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  table[class="w320"] {
 | 
					 | 
				
			||||||
    width: 320px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class*="mobile-header-padding-left"] {
 | 
					 | 
				
			||||||
    width: 160px !important; padding-left: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class*="mobile-header-padding-right"] {
 | 
					 | 
				
			||||||
    width: 160px !important; padding-right: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="header-lg"] {
 | 
					 | 
				
			||||||
    font-size: 24px !important; padding-bottom: 5px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="content-padding"] {
 | 
					 | 
				
			||||||
    padding: 5px 0 5px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="button"] {
 | 
					 | 
				
			||||||
    padding: 5px 5px 30px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class*="free-text"] {
 | 
					 | 
				
			||||||
    padding: 10px 18px 30px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="mobile-hide-img"] {
 | 
					 | 
				
			||||||
    display: none !important; height: 0 !important; width: 0 !important; line-height: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="item"] {
 | 
					 | 
				
			||||||
    width: 140px !important; vertical-align: top !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="quantity"] {
 | 
					 | 
				
			||||||
    width: 50px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="price"] {
 | 
					 | 
				
			||||||
    width: 90px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="item-table"] {
 | 
					 | 
				
			||||||
    padding: 30px 20px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="mini-container-left"] {
 | 
					 | 
				
			||||||
    padding: 0 15px 15px !important; display: block !important; width: 290px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="mini-container-right"] {
 | 
					 | 
				
			||||||
    padding: 0 15px 15px !important; display: block !important; width: 290px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
<table align="center" cellpadding="0" cellspacing="0" class="container-for-gmail-android" width="100%" style="border-collapse: collapse !important; min-width: 600px; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td align="left" valign="top" width="100%" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #ffffff url(http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg) repeat-x;" bgcolor="#ffffff">
 | 
					 | 
				
			||||||
      <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
      <table cellspacing="0" cellpadding="0" width="100%" bgcolor="#ffffff" background="http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; background: transparent;"><tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td width="100%" height="80" valign="top" style="text-align: center; vertical-align: middle; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; line-height: 21px;" align="center">
 | 
					 | 
				
			||||||
            <!--[if gte mso 9]>
 | 
					 | 
				
			||||||
            <v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="mso-width-percent:1000;height:80px; v-text-anchor:middle;">
 | 
					 | 
				
			||||||
              <v:fill type="tile" src="http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg" color="#ffffff" />
 | 
					 | 
				
			||||||
              <v:textbox inset="0,0,0,0">
 | 
					 | 
				
			||||||
            <![endif]-->
 | 
					 | 
				
			||||||
              <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
                <table cellpadding="0" cellspacing="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="pull-left mobile-header-padding-left" style="vertical-align: middle; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 290px; padding-left: 10px;" align="left" valign="middle">
 | 
					 | 
				
			||||||
                      <a href="{{base_url}}" style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; color: #676767; text-decoration: none !important;"><img width="137" src="{{base_url}}{% static "hosting/img/logo_black.png" %}" alt="logo" style="max-width: 600px; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; border: none;"></a>
 | 
					 | 
				
			||||||
                    </td>
 | 
					 | 
				
			||||||
                    <td class="pull-right mobile-header-padding-right" style="color: #4d4d4d; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; text-align: right; line-height: 21px; width: 290px; padding-left: 10px;" align="right">
 | 
					 | 
				
			||||||
                    </td>
 | 
					 | 
				
			||||||
                  </tr></table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
              <!--[if gte mso 9]>
 | 
					 | 
				
			||||||
              </v:textbox>
 | 
					 | 
				
			||||||
            </v:rect>
 | 
					 | 
				
			||||||
            <![endif]-->
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr></table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
  </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td align="center" valign="top" width="100%" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #f7f7f7; padding: 20px 0 5px;" class="content-padding" bgcolor="#f7f7f7">
 | 
					 | 
				
			||||||
      <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="header-lg" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 32px; color: #4d4d4d; text-align: center; line-height: normal; font-weight: 700; padding: 35px 0 0;" align="center">
 | 
					 | 
				
			||||||
              You have booked a virtual machine!
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="free-text" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; width: 100% !important; padding: 10px 60px 0px;" align="center">
 | 
					 | 
				
			||||||
             Your virtual machine {{vm.name}} subscription has been charged, 
 | 
					 | 
				
			||||||
             <br/>
 | 
					 | 
				
			||||||
             we are going to contact you as soon your virtual machine has been activated.
 | 
					 | 
				
			||||||
             <br/> 
 | 
					 | 
				
			||||||
             You can view your invoice clicking on the button below. 
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="button" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; padding: 30px 0;" align="center">
 | 
					 | 
				
			||||||
              <div style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<!--[if mso]>
 | 
					 | 
				
			||||||
                <v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="http://" style="height:45px;v-text-anchor:middle;width:155px;" arcsize="15%" strokecolor="#ffffff" fillcolor="#ff6f6f">
 | 
					 | 
				
			||||||
                  <w:anchorlock/>
 | 
					 | 
				
			||||||
                  <center style="color:#ffffff;font-family:Helvetica, Arial, sans-serif;font-size:14px;font-weight:regular;">My Account</center>
 | 
					 | 
				
			||||||
                </v:roundrect>
 | 
					 | 
				
			||||||
              <![endif]--><a href="{{ base_url }}{% url 'hosting:orders' order.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">View Invoice</a>
 | 
					 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
            </td>
 | 
					{% endblock %}
 | 
				
			||||||
          </tr>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
  </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td align="center" valign="top" width="100%" style="height: 100px; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #f7f7f7;" bgcolor="#f7f7f7">
 | 
					 | 
				
			||||||
      <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; padding: 25px 0;" align="center">
 | 
					 | 
				
			||||||
              <strong style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">ungleich</strong><br style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
</td>
 | 
					 | 
				
			||||||
          </tr></table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
  </tr>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,140 +1,11 @@
 | 
				
			||||||
{% load static from staticfiles %}
 | 
					{% extends "datacenterlight/emails/base_email_datacenterlight.txt" %}
 | 
				
			||||||
<!-- Inliner Build Version 4380b7741bb759d6cb997545f3add21ad48f010b -->
 | 
					{% load i18n %}
 | 
				
			||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
 | 
					{% block email_head %}{{page_header}}{% endblock %}
 | 
				
			||||||
<html xmlns="http://www.w3.org/1999/xhtml" style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					{% block email_body %}
 | 
				
			||||||
<head>
 | 
					{% url 'hosting:orders' order.id as order_url %}
 | 
				
			||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 | 
					{% blocktrans with vm.name as vm_name %}You have ordered a new virtual machine!
 | 
				
			||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
 | 
					Your order of [{{vm_name}}] has been charged.
 | 
				
			||||||
<title>Oxygen Invoice</title>
 | 
					You can view your invoice here.
 | 
				
			||||||
</head>
 | 
					{% endblocktrans %}
 | 
				
			||||||
<body bgcolor="#f7f7f7" style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; width: 100% !important; height: 100%; color: white; margin: 0;">
 | 
					{{ base_url }}{{order_url}}
 | 
				
			||||||
<style type="text/css">
 | 
					{% endblock %}
 | 
				
			||||||
@media only screen and (max-width: 480px) {
 | 
					 | 
				
			||||||
  table[class*="container-for-gmail-android"] {
 | 
					 | 
				
			||||||
    min-width: 290px !important; width: 100% !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  img[class="force-width-gmail"] {
 | 
					 | 
				
			||||||
    display: none !important; width: 0 !important; height: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  table[class="w320"] {
 | 
					 | 
				
			||||||
    width: 320px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class*="mobile-header-padding-left"] {
 | 
					 | 
				
			||||||
    width: 160px !important; padding-left: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class*="mobile-header-padding-right"] {
 | 
					 | 
				
			||||||
    width: 160px !important; padding-right: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="header-lg"] {
 | 
					 | 
				
			||||||
    font-size: 24px !important; padding-bottom: 5px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="content-padding"] {
 | 
					 | 
				
			||||||
    padding: 5px 0 5px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="button"] {
 | 
					 | 
				
			||||||
    padding: 5px 5px 30px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class*="free-text"] {
 | 
					 | 
				
			||||||
    padding: 10px 18px 30px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="mobile-hide-img"] {
 | 
					 | 
				
			||||||
    display: none !important; height: 0 !important; width: 0 !important; line-height: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="item"] {
 | 
					 | 
				
			||||||
    width: 140px !important; vertical-align: top !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="quantity"] {
 | 
					 | 
				
			||||||
    width: 50px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="price"] {
 | 
					 | 
				
			||||||
    width: 90px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="item-table"] {
 | 
					 | 
				
			||||||
    padding: 30px 20px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="mini-container-left"] {
 | 
					 | 
				
			||||||
    padding: 0 15px 15px !important; display: block !important; width: 290px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="mini-container-right"] {
 | 
					 | 
				
			||||||
    padding: 0 15px 15px !important; display: block !important; width: 290px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
<table align="center" cellpadding="0" cellspacing="0" class="container-for-gmail-android" width="100%" style="border-collapse: collapse !important; min-width: 600px; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td align="left" valign="top" width="100%" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #ffffff url(http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg) repeat-x;" bgcolor="#ffffff">
 | 
					 | 
				
			||||||
      <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
      <table cellspacing="0" cellpadding="0" width="100%" bgcolor="#ffffff" background="http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; background: transparent;"><tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td width="100%" height="80" valign="top" style="text-align: center; vertical-align: middle; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; line-height: 21px;" align="center">
 | 
					 | 
				
			||||||
            <!--[if gte mso 9]>
 | 
					 | 
				
			||||||
            <v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="mso-width-percent:1000;height:80px; v-text-anchor:middle;">
 | 
					 | 
				
			||||||
              <v:fill type="tile" src="http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg" color="#ffffff" />
 | 
					 | 
				
			||||||
              <v:textbox inset="0,0,0,0">
 | 
					 | 
				
			||||||
            <![endif]-->
 | 
					 | 
				
			||||||
              <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
                <table cellpadding="0" cellspacing="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="pull-left mobile-header-padding-left" style="vertical-align: middle; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 290px; padding-left: 10px;" align="left" valign="middle">
 | 
					 | 
				
			||||||
                      <a href="{{base_url}}" style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; color: #676767; text-decoration: none !important;"><img width="137" src="{{base_url}}{% static "hosting/img/logo_black.png" %}" alt="logo" style="max-width: 600px; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; border: none;"></a>
 | 
					 | 
				
			||||||
                    </td>
 | 
					 | 
				
			||||||
                    <td class="pull-right mobile-header-padding-right" style="color: #4d4d4d; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; text-align: right; line-height: 21px; width: 290px; padding-left: 10px;" align="right">
 | 
					 | 
				
			||||||
                    </td>
 | 
					 | 
				
			||||||
                  </tr></table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
              <!--[if gte mso 9]>
 | 
					 | 
				
			||||||
              </v:textbox>
 | 
					 | 
				
			||||||
            </v:rect>
 | 
					 | 
				
			||||||
            <![endif]-->
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr></table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
  </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td align="center" valign="top" width="100%" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #f7f7f7; padding: 20px 0 5px;" class="content-padding" bgcolor="#f7f7f7">
 | 
					 | 
				
			||||||
      <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="header-lg" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 32px; color: #4d4d4d; text-align: center; line-height: normal; font-weight: 700; padding: 35px 0 0;" align="center">
 | 
					 | 
				
			||||||
              You have booked a virtual machine!
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="free-text" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; width: 100% !important; padding: 10px 60px 0px;" align="center">
 | 
					 | 
				
			||||||
             Your virtual machine {{vm.name}} subscription has been charged, 
 | 
					 | 
				
			||||||
             <br/>
 | 
					 | 
				
			||||||
             we are going to contact you as soon your virtual machine has been activated.
 | 
					 | 
				
			||||||
             <br/> 
 | 
					 | 
				
			||||||
             You can view your invoice clicking on the button below. 
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="button" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; padding: 30px 0;" align="center">
 | 
					 | 
				
			||||||
              <div style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<!--[if mso]>
 | 
					 | 
				
			||||||
                <v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="http://" style="height:45px;v-text-anchor:middle;width:155px;" arcsize="15%" strokecolor="#ffffff" fillcolor="#ff6f6f">
 | 
					 | 
				
			||||||
                  <w:anchorlock/>
 | 
					 | 
				
			||||||
                  <center style="color:#ffffff;font-family:Helvetica, Arial, sans-serif;font-size:14px;font-weight:regular;">My Account</center>
 | 
					 | 
				
			||||||
                </v:roundrect>
 | 
					 | 
				
			||||||
              <![endif]--><a href="{{ base_url }}{% url 'hosting:orders' order.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">View Invoice</a>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
  </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td align="center" valign="top" width="100%" style="height: 100px; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #f7f7f7;" bgcolor="#f7f7f7">
 | 
					 | 
				
			||||||
      <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; padding: 25px 0;" align="center">
 | 
					 | 
				
			||||||
              <strong style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">ungleich</strong><br style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
</td>
 | 
					 | 
				
			||||||
          </tr></table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
  </tr>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,13 +1,14 @@
 | 
				
			||||||
{% load i18n %}{% autoescape off %}
 | 
					{% extends "datacenterlight/emails/base_email_datacenterlight.html" %}
 | 
				
			||||||
{% blocktrans %}You're receiving this email because you requested a password reset for your user account at {{ site_name }}.{% endblocktrans %}
 | 
					{% load i18n %}
 | 
				
			||||||
 | 
					{% block email_head %}
 | 
				
			||||||
{% trans "Please go to the following page and choose a new password:" %}
 | 
					{% trans 'Password Reset' %}
 | 
				
			||||||
    {% block reset_link %}
 | 
					{% endblock %}
 | 
				
			||||||
        {{ base_url }}{% url 'hosting:reset_password_confirm' uidb64=uid token=token %} 
 | 
					{% block email_body %}
 | 
				
			||||||
    {% endblock %}
 | 
					{% url 'hosting:reset_password_confirm' uidb64=uid token=token as password_reset_url %}
 | 
				
			||||||
 | 
					{% blocktrans %}
 | 
				
			||||||
{% trans "Thanks for using our site!" %}
 | 
					You're receiving this email because you requested a password reset for your user account at {{site_name}}.<br/>
 | 
				
			||||||
 | 
					Please go to the following page and choose a new password: {{base_url}}{{ password_reset_url }}<br/>
 | 
				
			||||||
{% blocktrans %}The {{ site_name }} team{% endblocktrans %}
 | 
					If you didn't request a new password, ignore this e-mail.<br/>
 | 
				
			||||||
 | 
					Thank you!
 | 
				
			||||||
{% endautoescape %}
 | 
					{% endblocktrans %}
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,13 +1,11 @@
 | 
				
			||||||
{% load i18n %}{% autoescape off %}
 | 
					{% extends "datacenterlight/emails/base_email_datacenterlight.txt" %}
 | 
				
			||||||
{% blocktrans %}You're receiving this email because you requested a password reset for your user account at {{ site_name }}.{% endblocktrans %}
 | 
					{% load i18n %}
 | 
				
			||||||
 | 
					{% block email_head %}{% trans 'Password Reset' %}{% endblock %}
 | 
				
			||||||
{% trans "Please go to the following page and choose a new password:" %}
 | 
					{% block email_body %}
 | 
				
			||||||
    {% block reset_link %}
 | 
					{% url 'hosting:reset_password_confirm' uidb64=uid token=token as password_reset_url %}
 | 
				
			||||||
        {{ base_url }}{% url 'hosting:reset_password_confirm' uidb64=uid token=token %} 
 | 
					{% blocktrans %}You're receiving this email because you requested a password reset for your user account at {{site_name}}.
 | 
				
			||||||
    {% endblock %}
 | 
					Please go to the following page and choose a new password: {{base_url}}{{ password_reset_url }}
 | 
				
			||||||
 | 
					If you didn't request a new password, ignore this e-mail.
 | 
				
			||||||
{% trans "Thanks for using our site!" %}
 | 
					Thank you!
 | 
				
			||||||
 | 
					{% endblocktrans %}
 | 
				
			||||||
{% blocktrans %}The {{ site_name }} team{% endblocktrans %}
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					 | 
				
			||||||
{% endautoescape %}
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										15
									
								
								hosting/templates/hosting/emails/vm_canceled.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								hosting/templates/hosting/emails/vm_canceled.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					{% extends "datacenterlight/emails/base_email_datacenterlight.html" %}
 | 
				
			||||||
 | 
					{% load i18n %}
 | 
				
			||||||
 | 
					{% block email_head %}{{page_header}}{% endblock %}
 | 
				
			||||||
 | 
					{% block email_body %}
 | 
				
			||||||
 | 
					{% url 'hosting:virtual_machines' as my_virtual_machines_url %}
 | 
				
			||||||
 | 
					{% url 'hosting:orders' as vm_orders_url %}
 | 
				
			||||||
 | 
					{% blocktrans with vm.name as vm_name %}You're receiving this mail because your virtual machine [{{vm_name}}] has been cancelled.<br/>
 | 
				
			||||||
 | 
					You can see your order status by clicking [my VM page] below.<br/>
 | 
				
			||||||
 | 
					If you want to order a new virtual machine, you can do it by clicking <a href="{{base_url}}{{my_virtual_machines_url}}">this link</a>.<br/>
 | 
				
			||||||
 | 
					{% endblocktrans %}
 | 
				
			||||||
 | 
					<div class="button" style="border-collapse: collapse; font-family: 'Lato', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; padding: 30px 0;" align="center">
 | 
				
			||||||
 | 
					    <a href="{{ base_url }}{{vm_orders_url}}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">{% trans 'My VM page' %}</a>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										13
									
								
								hosting/templates/hosting/emails/vm_canceled.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								hosting/templates/hosting/emails/vm_canceled.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					{% extends "datacenterlight/emails/base_email_datacenterlight.txt" %}
 | 
				
			||||||
 | 
					{% load i18n %}
 | 
				
			||||||
 | 
					{% block email_head %}{{page_header}}{% endblock %}
 | 
				
			||||||
 | 
					{% block email_body %}
 | 
				
			||||||
 | 
					{% url 'hosting:virtual_machines' as my_virtual_machines_url %}
 | 
				
			||||||
 | 
					{% url 'hosting:orders' order.id as vm_order_url %}
 | 
				
			||||||
 | 
					{% blocktrans with vm.name as vm_name %}You're receiving this mail because your virtual machine [{{vm_name}}] has been cancelled.
 | 
				
			||||||
 | 
					You can see your order status by clicking here
 | 
				
			||||||
 | 
					{{base_url}}{{vm_order_url}}
 | 
				
			||||||
 | 
					If you want to order a new virtual machine, you can do it by clicking this link.
 | 
				
			||||||
 | 
					{{base_url}}{{my_virtual_machines_url}}
 | 
				
			||||||
 | 
					{% endblocktrans %}
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
| 
						 | 
					@ -1,136 +0,0 @@
 | 
				
			||||||
{% load static from staticfiles %}
 | 
					 | 
				
			||||||
<!-- Inliner Build Version 4380b7741bb759d6cb997545f3add21ad48f010b -->
 | 
					 | 
				
			||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
 | 
					 | 
				
			||||||
<html xmlns="http://www.w3.org/1999/xhtml" style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<head>
 | 
					 | 
				
			||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 | 
					 | 
				
			||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
 | 
					 | 
				
			||||||
<title>Oxygen Invoice</title>
 | 
					 | 
				
			||||||
</head>
 | 
					 | 
				
			||||||
<body bgcolor="#f7f7f7" style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; width: 100% !important; height: 100%; color: white; margin: 0;">
 | 
					 | 
				
			||||||
<style type="text/css">
 | 
					 | 
				
			||||||
@media only screen and (max-width: 480px) {
 | 
					 | 
				
			||||||
  table[class*="container-for-gmail-android"] {
 | 
					 | 
				
			||||||
    min-width: 290px !important; width: 100% !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  img[class="force-width-gmail"] {
 | 
					 | 
				
			||||||
    display: none !important; width: 0 !important; height: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  table[class="w320"] {
 | 
					 | 
				
			||||||
    width: 320px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class*="mobile-header-padding-left"] {
 | 
					 | 
				
			||||||
    width: 160px !important; padding-left: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class*="mobile-header-padding-right"] {
 | 
					 | 
				
			||||||
    width: 160px !important; padding-right: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="header-lg"] {
 | 
					 | 
				
			||||||
    font-size: 24px !important; padding-bottom: 5px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="content-padding"] {
 | 
					 | 
				
			||||||
    padding: 5px 0 5px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="button"] {
 | 
					 | 
				
			||||||
    padding: 5px 5px 30px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class*="free-text"] {
 | 
					 | 
				
			||||||
    padding: 10px 18px 30px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="mobile-hide-img"] {
 | 
					 | 
				
			||||||
    display: none !important; height: 0 !important; width: 0 !important; line-height: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="item"] {
 | 
					 | 
				
			||||||
    width: 140px !important; vertical-align: top !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="quantity"] {
 | 
					 | 
				
			||||||
    width: 50px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="price"] {
 | 
					 | 
				
			||||||
    width: 90px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="item-table"] {
 | 
					 | 
				
			||||||
    padding: 30px 20px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="mini-container-left"] {
 | 
					 | 
				
			||||||
    padding: 0 15px 15px !important; display: block !important; width: 290px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="mini-container-right"] {
 | 
					 | 
				
			||||||
    padding: 0 15px 15px !important; display: block !important; width: 290px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
<table align="center" cellpadding="0" cellspacing="0" class="container-for-gmail-android" width="100%" style="border-collapse: collapse !important; min-width: 600px; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td align="left" valign="top" width="100%" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #f7f7f7 url(http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg) repeat-x;" bgcolor="#ffffff">
 | 
					 | 
				
			||||||
      <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
  <table cellspacing="0" cellpadding="0" width="100%" bgcolor="#ffffff" background="http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; background: transparent;"><tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td width="100%" height="80" valign="top" style="text-align: center; vertical-align: middle; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; line-height: 21px;" align="center">
 | 
					 | 
				
			||||||
            <!--[if gte mso 9]>
 | 
					 | 
				
			||||||
            <v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="mso-width-percent:1000;height:80px; v-text-anchor:middle;">
 | 
					 | 
				
			||||||
              <v:fill type="tile" src="http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg" color="#ffffff" />
 | 
					 | 
				
			||||||
              <v:textbox inset="0,0,0,0">
 | 
					 | 
				
			||||||
            <![endif]-->
 | 
					 | 
				
			||||||
              <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
                <table cellpadding="0" cellspacing="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="pull-left mobile-header-padding-left" style="vertical-align: middle; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 290px; padding-left: 10px;" align="left" valign="middle">
 | 
					 | 
				
			||||||
                      <a href="{{base_url}}" style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; color: #676767; text-decoration: none !important;"><img width="137" src="{{base_url}}{% static "hosting/img/logo_black.png" %}" alt="logo" style="max-width: 600px; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; border: none;"></a>
 | 
					 | 
				
			||||||
                    </td>
 | 
					 | 
				
			||||||
                    <td class="pull-right mobile-header-padding-right" style="color: #4d4d4d; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; text-align: right; line-height: 21px; width: 290px; padding-left: 10px;" align="right">
 | 
					 | 
				
			||||||
                    </td>
 | 
					 | 
				
			||||||
                  </tr></table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
              <!--[if gte mso 9]>
 | 
					 | 
				
			||||||
              </v:textbox>
 | 
					 | 
				
			||||||
            </v:rect>
 | 
					 | 
				
			||||||
            <![endif]-->
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr></table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
  </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td align="center" valign="top" width="100%" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #f7f7f7; padding: 20px 0 5px;" class="content-padding" bgcolor="#f7f7f7">
 | 
					 | 
				
			||||||
      <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="header-lg" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 32px; color: #4d4d4d; text-align: center; line-height: normal; font-weight: 700; padding: 35px 0 0;" align="center">
 | 
					 | 
				
			||||||
               Your virtual machine {{vm.name}} status has been updated to {{vm.get_status_display}}
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="free-text" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; width: 100% !important; padding: 10px 60px 0px;" align="center">
 | 
					 | 
				
			||||||
              You can manage your vm clicking on the button below
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="button" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; padding: 30px 0;" align="center">
 | 
					 | 
				
			||||||
              <div style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<!--[if mso]>
 | 
					 | 
				
			||||||
                <v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="http://" style="height:45px;v-text-anchor:middle;width:155px;" arcsize="15%" strokecolor="#ffffff" fillcolor="#ff6f6f">
 | 
					 | 
				
			||||||
                  <w:anchorlock/>
 | 
					 | 
				
			||||||
                  <center style="color:#ffffff;font-family:Helvetica, Arial, sans-serif;font-size:14px;font-weight:regular;">My Account</center>
 | 
					 | 
				
			||||||
                </v:roundrect>
 | 
					 | 
				
			||||||
              <![endif]--><a href="{{base_url}}{% url 'hosting:virtual_machines' vm.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">VM Dashboard</a>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
  </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td align="center" valign="top" width="100%" style="height: 100px; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #f7f7f7;" bgcolor="#f7f7f7">
 | 
					 | 
				
			||||||
      <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; padding: 25px 0;" align="center">
 | 
					 | 
				
			||||||
              <strong style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">ungleich</strong><br style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
</td>
 | 
					 | 
				
			||||||
          </tr></table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
  </tr>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,136 +0,0 @@
 | 
				
			||||||
{% load static from staticfiles %}
 | 
					 | 
				
			||||||
<!-- Inliner Build Version 4380b7741bb759d6cb997545f3add21ad48f010b -->
 | 
					 | 
				
			||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
 | 
					 | 
				
			||||||
<html xmlns="http://www.w3.org/1999/xhtml" style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<head>
 | 
					 | 
				
			||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 | 
					 | 
				
			||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
 | 
					 | 
				
			||||||
<title>Oxygen Invoice</title>
 | 
					 | 
				
			||||||
</head>
 | 
					 | 
				
			||||||
<body bgcolor="#f7f7f7" style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; width: 100% !important; height: 100%; color: white; margin: 0;">
 | 
					 | 
				
			||||||
<style type="text/css">
 | 
					 | 
				
			||||||
@media only screen and (max-width: 480px) {
 | 
					 | 
				
			||||||
  table[class*="container-for-gmail-android"] {
 | 
					 | 
				
			||||||
    min-width: 290px !important; width: 100% !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  img[class="force-width-gmail"] {
 | 
					 | 
				
			||||||
    display: none !important; width: 0 !important; height: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  table[class="w320"] {
 | 
					 | 
				
			||||||
    width: 320px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class*="mobile-header-padding-left"] {
 | 
					 | 
				
			||||||
    width: 160px !important; padding-left: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class*="mobile-header-padding-right"] {
 | 
					 | 
				
			||||||
    width: 160px !important; padding-right: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="header-lg"] {
 | 
					 | 
				
			||||||
    font-size: 24px !important; padding-bottom: 5px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="content-padding"] {
 | 
					 | 
				
			||||||
    padding: 5px 0 5px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="button"] {
 | 
					 | 
				
			||||||
    padding: 5px 5px 30px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class*="free-text"] {
 | 
					 | 
				
			||||||
    padding: 10px 18px 30px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="mobile-hide-img"] {
 | 
					 | 
				
			||||||
    display: none !important; height: 0 !important; width: 0 !important; line-height: 0 !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="item"] {
 | 
					 | 
				
			||||||
    width: 140px !important; vertical-align: top !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="quantity"] {
 | 
					 | 
				
			||||||
    width: 50px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class~="price"] {
 | 
					 | 
				
			||||||
    width: 90px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="item-table"] {
 | 
					 | 
				
			||||||
    padding: 30px 20px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="mini-container-left"] {
 | 
					 | 
				
			||||||
    padding: 0 15px 15px !important; display: block !important; width: 290px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  td[class="mini-container-right"] {
 | 
					 | 
				
			||||||
    padding: 0 15px 15px !important; display: block !important; width: 290px !important;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
<table align="center" cellpadding="0" cellspacing="0" class="container-for-gmail-android" width="100%" style="border-collapse: collapse !important; min-width: 600px; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td align="left" valign="top" width="100%" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #f7f7f7 url(http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg) repeat-x;" bgcolor="#ffffff">
 | 
					 | 
				
			||||||
      <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
  <table cellspacing="0" cellpadding="0" width="100%" bgcolor="#ffffff" background="http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; background: transparent;"><tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td width="100%" height="80" valign="top" style="text-align: center; vertical-align: middle; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; line-height: 21px;" align="center">
 | 
					 | 
				
			||||||
            <!--[if gte mso 9]>
 | 
					 | 
				
			||||||
            <v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="mso-width-percent:1000;height:80px; v-text-anchor:middle;">
 | 
					 | 
				
			||||||
              <v:fill type="tile" src="http://s3.amazonaws.com/swu-filepicker/4E687TRe69Ld95IDWyEg_bg_top_02.jpg" color="#ffffff" />
 | 
					 | 
				
			||||||
              <v:textbox inset="0,0,0,0">
 | 
					 | 
				
			||||||
            <![endif]-->
 | 
					 | 
				
			||||||
              <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
                <table cellpadding="0" cellspacing="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="pull-left mobile-header-padding-left" style="vertical-align: middle; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: left; line-height: 21px; width: 290px; padding-left: 10px;" align="left" valign="middle">
 | 
					 | 
				
			||||||
                      <a href="{{base_url}}" style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; color: #676767; text-decoration: none !important;"><img width="137" src="{{base_url}}{% static "hosting/img/logo_black.png" %}" alt="logo" style="max-width: 600px; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; border: none;"></a>
 | 
					 | 
				
			||||||
                    </td>
 | 
					 | 
				
			||||||
                    <td class="pull-right mobile-header-padding-right" style="color: #4d4d4d; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; text-align: right; line-height: 21px; width: 290px; padding-left: 10px;" align="right">
 | 
					 | 
				
			||||||
                    </td>
 | 
					 | 
				
			||||||
                  </tr></table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
              <!--[if gte mso 9]>
 | 
					 | 
				
			||||||
              </v:textbox>
 | 
					 | 
				
			||||||
            </v:rect>
 | 
					 | 
				
			||||||
            <![endif]-->
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr></table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
  </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td align="center" valign="top" width="100%" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #f7f7f7; padding: 20px 0 5px;" class="content-padding" bgcolor="#f7f7f7">
 | 
					 | 
				
			||||||
      <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="header-lg" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 32px; color: #4d4d4d; text-align: center; line-height: normal; font-weight: 700; padding: 35px 0 0;" align="center">
 | 
					 | 
				
			||||||
               Your virtual machine {{vm.name}} status has been updated to {{vm.get_status_display}}
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="free-text" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; width: 100% !important; padding: 10px 60px 0px;" align="center">
 | 
					 | 
				
			||||||
              You can manage your vm clicking on the button below
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td class="button" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; padding: 30px 0;" align="center">
 | 
					 | 
				
			||||||
              <div style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<!--[if mso]>
 | 
					 | 
				
			||||||
                <v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="http://" style="height:45px;v-text-anchor:middle;width:155px;" arcsize="15%" strokecolor="#ffffff" fillcolor="#ff6f6f">
 | 
					 | 
				
			||||||
                  <w:anchorlock/>
 | 
					 | 
				
			||||||
                  <center style="color:#ffffff;font-family:Helvetica, Arial, sans-serif;font-size:14px;font-weight:regular;">My Account</center>
 | 
					 | 
				
			||||||
                </v:roundrect>
 | 
					 | 
				
			||||||
              <![endif]--><a href="{{base_url}}{% url 'hosting:virtual_machines' vm.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">VM Dashboard</a>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
            </td>
 | 
					 | 
				
			||||||
          </tr>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
  </tr>
 | 
					 | 
				
			||||||
<tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td align="center" valign="top" width="100%" style="height: 100px; border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; background: #f7f7f7;" bgcolor="#f7f7f7">
 | 
					 | 
				
			||||||
      <center style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
        <table cellspacing="0" cellpadding="0" width="600" class="w320" style="border-collapse: collapse !important; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"><tr style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
<td style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; padding: 25px 0;" align="center">
 | 
					 | 
				
			||||||
              <strong style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">ungleich</strong><br style="font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important;">
 | 
					 | 
				
			||||||
</td>
 | 
					 | 
				
			||||||
          </tr></table>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
  </tr>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
{% load staticfiles %}
 | 
					{% load staticfiles %}
 | 
				
			||||||
 | 
					{% load i18n %}
 | 
				
			||||||
<footer>
 | 
					<footer>
 | 
				
			||||||
    <div class="container">
 | 
					    <div class="container">
 | 
				
			||||||
        <div class="row">
 | 
					        <div class="row">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										146
									
								
								hosting/views.py
									
										
									
									
									
								
							
							
						
						
									
										146
									
								
								hosting/views.py
									
										
									
									
									
								
							| 
						 | 
					@ -1,40 +1,41 @@
 | 
				
			||||||
import uuid
 | 
					import uuid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from django.core.files.base import ContentFile
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
from oca.pool import WrongNameError, WrongIdError
 | 
					 | 
				
			||||||
from django.shortcuts import render
 | 
					 | 
				
			||||||
from django.http import Http404
 | 
					 | 
				
			||||||
from django.core.urlresolvers import reverse_lazy, reverse
 | 
					 | 
				
			||||||
from django.contrib.auth.mixins import LoginRequiredMixin
 | 
					 | 
				
			||||||
from django.views.generic import View, CreateView, FormView, ListView, DetailView, \
 | 
					 | 
				
			||||||
    DeleteView, TemplateView, UpdateView
 | 
					 | 
				
			||||||
from django.http import HttpResponseRedirect
 | 
					 | 
				
			||||||
from django.contrib import messages
 | 
					 | 
				
			||||||
from django.conf import settings
 | 
					from django.conf import settings
 | 
				
			||||||
from django.shortcuts import redirect
 | 
					from django.contrib import messages
 | 
				
			||||||
from django.utils.http import urlsafe_base64_decode
 | 
					from django.contrib.auth.mixins import LoginRequiredMixin
 | 
				
			||||||
from django.contrib.auth.tokens import default_token_generator
 | 
					from django.contrib.auth.tokens import default_token_generator
 | 
				
			||||||
 | 
					from django.core.files.base import ContentFile
 | 
				
			||||||
from guardian.mixins import PermissionRequiredMixin
 | 
					from django.core.urlresolvers import reverse_lazy, reverse
 | 
				
			||||||
from stored_messages.settings import stored_messages_settings
 | 
					from django.http import Http404
 | 
				
			||||||
from stored_messages.models import Message
 | 
					from django.http import HttpResponseRedirect
 | 
				
			||||||
from stored_messages.api import mark_read
 | 
					from django.shortcuts import redirect
 | 
				
			||||||
 | 
					from django.shortcuts import render
 | 
				
			||||||
 | 
					from django.utils.http import urlsafe_base64_decode
 | 
				
			||||||
from django.utils.safestring import mark_safe
 | 
					from django.utils.safestring import mark_safe
 | 
				
			||||||
 | 
					from django.utils.translation import ugettext_lazy as _
 | 
				
			||||||
 | 
					from django.views.generic import View, CreateView, FormView, ListView, \
 | 
				
			||||||
 | 
					    DetailView, \
 | 
				
			||||||
 | 
					    DeleteView, TemplateView, UpdateView
 | 
				
			||||||
 | 
					from guardian.mixins import PermissionRequiredMixin
 | 
				
			||||||
 | 
					from oca.pool import WrongNameError, WrongIdError
 | 
				
			||||||
 | 
					from stored_messages.api import mark_read
 | 
				
			||||||
 | 
					from stored_messages.models import Message
 | 
				
			||||||
 | 
					from stored_messages.settings import stored_messages_settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from membership.models import CustomUser, StripeCustomer
 | 
					from membership.models import CustomUser, StripeCustomer
 | 
				
			||||||
from utils.stripe_utils import StripeUtils
 | 
					 | 
				
			||||||
from utils.forms import BillingAddressForm, PasswordResetRequestForm, UserBillingAddressForm
 | 
					 | 
				
			||||||
from utils.views import PasswordResetViewMixin, PasswordResetConfirmViewMixin, LoginViewMixin
 | 
					 | 
				
			||||||
from utils.mailer import BaseEmail
 | 
					 | 
				
			||||||
from .models import HostingOrder, HostingBill, HostingPlan, UserHostingKey
 | 
					 | 
				
			||||||
from .forms import HostingUserSignupForm, HostingUserLoginForm, UserHostingKeyForm, generate_ssh_key_name
 | 
					 | 
				
			||||||
from .mixins import ProcessVMSelectionMixin
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
from opennebula_api.models import OpenNebulaManager
 | 
					from opennebula_api.models import OpenNebulaManager
 | 
				
			||||||
from opennebula_api.serializers import VirtualMachineSerializer, \
 | 
					from opennebula_api.serializers import VirtualMachineSerializer, \
 | 
				
			||||||
    VirtualMachineTemplateSerializer
 | 
					    VirtualMachineTemplateSerializer
 | 
				
			||||||
from django.utils.translation import ugettext_lazy as _
 | 
					from utils.forms import BillingAddressForm, PasswordResetRequestForm, \
 | 
				
			||||||
 | 
					    UserBillingAddressForm
 | 
				
			||||||
 | 
					from utils.mailer import BaseEmail
 | 
				
			||||||
 | 
					from utils.stripe_utils import StripeUtils
 | 
				
			||||||
 | 
					from utils.views import PasswordResetViewMixin, PasswordResetConfirmViewMixin, \
 | 
				
			||||||
 | 
					    LoginViewMixin
 | 
				
			||||||
 | 
					from .forms import HostingUserSignupForm, HostingUserLoginForm, \
 | 
				
			||||||
 | 
					    UserHostingKeyForm, generate_ssh_key_name
 | 
				
			||||||
 | 
					from .mixins import ProcessVMSelectionMixin
 | 
				
			||||||
 | 
					from .models import HostingOrder, HostingBill, HostingPlan, UserHostingKey
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CONNECTION_ERROR = "Your VMs cannot be displayed at the moment due to a backend \
 | 
					CONNECTION_ERROR = "Your VMs cannot be displayed at the moment due to a backend \
 | 
				
			||||||
                    connection error. please try again in a few minutes."
 | 
					                    connection error. please try again in a few minutes."
 | 
				
			||||||
| 
						 | 
					@ -296,12 +297,13 @@ class PasswordResetConfirmView(PasswordResetConfirmViewMixin):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        form = self.form_class(request.POST)
 | 
					        form = self.form_class(request.POST)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if user is not None and default_token_generator.check_token(user, token):
 | 
					        if user is not None and default_token_generator.check_token(user,
 | 
				
			||||||
 | 
					                                                                    token):
 | 
				
			||||||
            if form.is_valid():
 | 
					            if form.is_valid():
 | 
				
			||||||
                new_password = form.cleaned_data['new_password2']
 | 
					                new_password = form.cleaned_data['new_password2']
 | 
				
			||||||
                user.set_password(new_password)
 | 
					                user.set_password(new_password)
 | 
				
			||||||
                user.save()
 | 
					                user.save()
 | 
				
			||||||
                messages.success(request, 'Password has been reset.')
 | 
					                messages.success(request, _('Password has been reset.'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                # Change opennebula password
 | 
					                # Change opennebula password
 | 
				
			||||||
                opennebula_client.change_user_password(new_password)
 | 
					                opennebula_client.change_user_password(new_password)
 | 
				
			||||||
| 
						 | 
					@ -309,14 +311,15 @@ class PasswordResetConfirmView(PasswordResetConfirmViewMixin):
 | 
				
			||||||
                return self.form_valid(form)
 | 
					                return self.form_valid(form)
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                messages.error(
 | 
					                messages.error(
 | 
				
			||||||
                    request, 'Password reset has not been successful.')
 | 
					                    request, _('Password reset has not been successful.'))
 | 
				
			||||||
                form.add_error(None, 'Password reset has not been successful.')
 | 
					                form.add_error(None,
 | 
				
			||||||
 | 
					                               _('Password reset has not been successful.'))
 | 
				
			||||||
                return self.form_invalid(form)
 | 
					                return self.form_invalid(form)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            messages.error(
 | 
					            error_msg = _('The reset password link is no longer valid.')
 | 
				
			||||||
                request, 'The reset password link is no longer valid.')
 | 
					            messages.error(request, _(error_msg))
 | 
				
			||||||
            form.add_error(None, 'The reset password link is no longer valid.')
 | 
					            form.add_error(None, error_msg)
 | 
				
			||||||
            return self.form_invalid(form)
 | 
					            return self.form_invalid(form)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -397,7 +400,8 @@ class SSHKeyListView(LoginRequiredMixin, ListView):
 | 
				
			||||||
    def render_to_response(self, context, **response_kwargs):
 | 
					    def render_to_response(self, context, **response_kwargs):
 | 
				
			||||||
        if not self.queryset:
 | 
					        if not self.queryset:
 | 
				
			||||||
            return HttpResponseRedirect(reverse('hosting:choice_ssh_keys'))
 | 
					            return HttpResponseRedirect(reverse('hosting:choice_ssh_keys'))
 | 
				
			||||||
        return super(SSHKeyListView, self).render_to_response(context, **response_kwargs)
 | 
					        return super(SSHKeyListView, self).render_to_response(context,
 | 
				
			||||||
 | 
					                                                              **response_kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class SSHKeyChoiceView(LoginRequiredMixin, View):
 | 
					class SSHKeyChoiceView(LoginRequiredMixin, View):
 | 
				
			||||||
| 
						 | 
					@ -622,8 +626,10 @@ class PaymentVMView(LoginRequiredMixin, FormView):
 | 
				
			||||||
            if not customer:
 | 
					            if not customer:
 | 
				
			||||||
                msg = _("Invalid credit card")
 | 
					                msg = _("Invalid credit card")
 | 
				
			||||||
                messages.add_message(
 | 
					                messages.add_message(
 | 
				
			||||||
                    self.request, messages.ERROR, msg, extra_tags='make_charge_error')
 | 
					                    self.request, messages.ERROR, msg,
 | 
				
			||||||
                return HttpResponseRedirect(reverse('hosting:payment') + '#payment_error')
 | 
					                    extra_tags='make_charge_error')
 | 
				
			||||||
 | 
					                return HttpResponseRedirect(
 | 
				
			||||||
 | 
					                    reverse('hosting:payment') + '#payment_error')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # Create Billing Address
 | 
					            # Create Billing Address
 | 
				
			||||||
            billing_address = form.save()
 | 
					            billing_address = form.save()
 | 
				
			||||||
| 
						 | 
					@ -637,8 +643,10 @@ class PaymentVMView(LoginRequiredMixin, FormView):
 | 
				
			||||||
            if not charge_response.get('response_object'):
 | 
					            if not charge_response.get('response_object'):
 | 
				
			||||||
                msg = charge_response.get('error')
 | 
					                msg = charge_response.get('error')
 | 
				
			||||||
                messages.add_message(
 | 
					                messages.add_message(
 | 
				
			||||||
                    self.request, messages.ERROR, msg, extra_tags='make_charge_error')
 | 
					                    self.request, messages.ERROR, msg,
 | 
				
			||||||
                return HttpResponseRedirect(reverse('hosting:payment') + '#payment_error')
 | 
					                    extra_tags='make_charge_error')
 | 
				
			||||||
 | 
					                return HttpResponseRedirect(
 | 
				
			||||||
 | 
					                    reverse('hosting:payment') + '#payment_error')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            charge = charge_response.get('response_object')
 | 
					            charge = charge_response.get('response_object')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -646,7 +654,8 @@ class PaymentVMView(LoginRequiredMixin, FormView):
 | 
				
			||||||
            manager = OpenNebulaManager(email=owner.email,
 | 
					            manager = OpenNebulaManager(email=owner.email,
 | 
				
			||||||
                                        password=owner.password)
 | 
					                                        password=owner.password)
 | 
				
			||||||
            # Get user ssh key
 | 
					            # Get user ssh key
 | 
				
			||||||
            if not UserHostingKey.objects.filter(user=self.request.user).exists():
 | 
					            if not UserHostingKey.objects.filter(
 | 
				
			||||||
 | 
					                    user=self.request.user).exists():
 | 
				
			||||||
                context.update({
 | 
					                context.update({
 | 
				
			||||||
                    'sshError': 'error',
 | 
					                    'sshError': 'error',
 | 
				
			||||||
                    'form': form
 | 
					                    'form': form
 | 
				
			||||||
| 
						 | 
					@ -694,31 +703,37 @@ class PaymentVMView(LoginRequiredMixin, FormView):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            vm = VirtualMachineSerializer(manager.get_vm(vm_id)).data
 | 
					            vm = VirtualMachineSerializer(manager.get_vm(vm_id)).data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # Send notification to ungleich as soon as VM has been booked
 | 
					            # Send notification to the user as soon as VM has been booked
 | 
				
			||||||
            context = {
 | 
					            context = {
 | 
				
			||||||
                'vm': vm,
 | 
					                'vm': vm,
 | 
				
			||||||
                'order': order,
 | 
					                'order': order,
 | 
				
			||||||
                'base_url': "{0}://{1}".format(request.scheme, request.get_host())
 | 
					                'base_url': "{0}://{1}".format(request.scheme,
 | 
				
			||||||
 | 
					                                               request.get_host()),
 | 
				
			||||||
 | 
					                'page_header': _(
 | 
				
			||||||
 | 
					                    'Your New VM %(vm_name)s at Data Center Light') % {
 | 
				
			||||||
 | 
					                                   'vm_name': vm.get('name')}
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            email_data = {
 | 
					            email_data = {
 | 
				
			||||||
                'subject': 'New VM request',
 | 
					                'subject': context.get('page_header'),
 | 
				
			||||||
                'to': request.user.email,
 | 
					                'to': request.user.email,
 | 
				
			||||||
                'context': context,
 | 
					                'context': context,
 | 
				
			||||||
                'template_name': 'new_booked_vm',
 | 
					                'template_name': 'new_booked_vm',
 | 
				
			||||||
                'template_path': 'hosting/emails/'
 | 
					                'template_path': 'hosting/emails/',
 | 
				
			||||||
 | 
					                'from_address': settings.DCL_SUPPORT_FROM_ADDRESS,
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            email = BaseEmail(**email_data)
 | 
					            email = BaseEmail(**email_data)
 | 
				
			||||||
            email.send()
 | 
					            email.send()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return HttpResponseRedirect(
 | 
					            return HttpResponseRedirect(
 | 
				
			||||||
                "{url}?{query_params}".format(url=reverse('hosting:orders', kwargs={'pk': order.id}),
 | 
					                "{url}?{query_params}".format(
 | 
				
			||||||
 | 
					                    url=reverse('hosting:orders', kwargs={'pk': order.id}),
 | 
				
			||||||
                    query_params='page=payment'))
 | 
					                    query_params='page=payment'))
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            return self.form_invalid(form)
 | 
					            return self.form_invalid(form)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class OrdersHostingDetailView(PermissionRequiredMixin, LoginRequiredMixin, DetailView):
 | 
					class OrdersHostingDetailView(PermissionRequiredMixin, LoginRequiredMixin,
 | 
				
			||||||
 | 
					                              DetailView):
 | 
				
			||||||
    template_name = "hosting/order_detail.html"
 | 
					    template_name = "hosting/order_detail.html"
 | 
				
			||||||
    context_object_name = "order"
 | 
					    context_object_name = "order"
 | 
				
			||||||
    login_url = reverse_lazy('hosting:login')
 | 
					    login_url = reverse_lazy('hosting:login')
 | 
				
			||||||
| 
						 | 
					@ -748,7 +763,8 @@ class OrdersHostingDetailView(PermissionRequiredMixin, LoginRequiredMixin, Detai
 | 
				
			||||||
            context['error'] = 'WrongIdError'
 | 
					            context['error'] = 'WrongIdError'
 | 
				
			||||||
        except ConnectionRefusedError:
 | 
					        except ConnectionRefusedError:
 | 
				
			||||||
            messages.error(self.request,
 | 
					            messages.error(self.request,
 | 
				
			||||||
                           'In order to create a VM, you need to create/upload your SSH KEY first.'
 | 
					                           _(
 | 
				
			||||||
 | 
					                               'In order to create a VM, you need to create/upload your SSH KEY first.')
 | 
				
			||||||
                           )
 | 
					                           )
 | 
				
			||||||
        return context
 | 
					        return context
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -816,7 +832,8 @@ class CreateVirtualMachinesView(LoginRequiredMixin, View):
 | 
				
			||||||
        if not UserHostingKey.objects.filter(user=self.request.user).exists():
 | 
					        if not UserHostingKey.objects.filter(user=self.request.user).exists():
 | 
				
			||||||
            messages.success(
 | 
					            messages.success(
 | 
				
			||||||
                request,
 | 
					                request,
 | 
				
			||||||
                'In order to create a VM, you need to create/upload your SSH KEY first.'
 | 
					                _(
 | 
				
			||||||
 | 
					                    'In order to create a VM, you need to create/upload your SSH KEY first.')
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
            return HttpResponseRedirect(reverse('hosting:ssh_keys'))
 | 
					            return HttpResponseRedirect(reverse('hosting:ssh_keys'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -826,7 +843,8 @@ class CreateVirtualMachinesView(LoginRequiredMixin, View):
 | 
				
			||||||
            configuration_options = HostingPlan.get_serialized_configs()
 | 
					            configuration_options = HostingPlan.get_serialized_configs()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            context = {
 | 
					            context = {
 | 
				
			||||||
                'templates': VirtualMachineTemplateSerializer(templates, many=True).data,
 | 
					                'templates': VirtualMachineTemplateSerializer(templates,
 | 
				
			||||||
 | 
					                                                              many=True).data,
 | 
				
			||||||
                'configuration_options': configuration_options,
 | 
					                'configuration_options': configuration_options,
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        except:
 | 
					        except:
 | 
				
			||||||
| 
						 | 
					@ -897,7 +915,8 @@ class VirtualMachineView(LoginRequiredMixin, View):
 | 
				
			||||||
            serializer = VirtualMachineSerializer(vm)
 | 
					            serializer = VirtualMachineSerializer(vm)
 | 
				
			||||||
            context = {
 | 
					            context = {
 | 
				
			||||||
                'virtual_machine': serializer.data,
 | 
					                'virtual_machine': serializer.data,
 | 
				
			||||||
                'order': HostingOrder.objects.get(vm_id=serializer.data['vm_id'])
 | 
					                'order': HostingOrder.objects.get(
 | 
				
			||||||
 | 
					                    vm_id=serializer.data['vm_id'])
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        except:
 | 
					        except:
 | 
				
			||||||
            pass
 | 
					            pass
 | 
				
			||||||
| 
						 | 
					@ -914,7 +933,7 @@ class VirtualMachineView(LoginRequiredMixin, View):
 | 
				
			||||||
            email=owner.email,
 | 
					            email=owner.email,
 | 
				
			||||||
            password=owner.password
 | 
					            password=owner.password
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					        vm_data = VirtualMachineSerializer(manager.get_vm(vm.id)).data
 | 
				
			||||||
        terminated = manager.delete_vm(
 | 
					        terminated = manager.delete_vm(
 | 
				
			||||||
            vm.id
 | 
					            vm.id
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
| 
						 | 
					@ -925,30 +944,34 @@ class VirtualMachineView(LoginRequiredMixin, View):
 | 
				
			||||||
                'Error terminating VM %s' % (opennebula_vm_id)
 | 
					                'Error terminating VM %s' % (opennebula_vm_id)
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
            return HttpResponseRedirect(self.get_success_url())
 | 
					            return HttpResponseRedirect(self.get_success_url())
 | 
				
			||||||
 | 
					 | 
				
			||||||
        context = {
 | 
					        context = {
 | 
				
			||||||
            'vm': vm,
 | 
					            'vm': vm_data,
 | 
				
			||||||
            'base_url': "{0}://{1}".format(self.request.scheme, self.request.get_host())
 | 
					            'base_url': "{0}://{1}".format(self.request.scheme,
 | 
				
			||||||
 | 
					                                           self.request.get_host()),
 | 
				
			||||||
 | 
					            'page_header': _('Virtual Machine Cancellation')
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        email_data = {
 | 
					        email_data = {
 | 
				
			||||||
            'subject': 'Virtual machine plan canceled',
 | 
					            'subject': context['page_header'],
 | 
				
			||||||
            'to': self.request.user.email,
 | 
					            'to': self.request.user.email,
 | 
				
			||||||
            'context': context,
 | 
					            'context': context,
 | 
				
			||||||
            'template_name': 'vm_status_changed',
 | 
					            'template_name': 'vm_canceled',
 | 
				
			||||||
            'template_path': 'hosting/emails/'
 | 
					            'template_path': 'hosting/emails/',
 | 
				
			||||||
 | 
					            'from_address': settings.DCL_SUPPORT_FROM_ADDRESS,
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        email = BaseEmail(**email_data)
 | 
					        email = BaseEmail(**email_data)
 | 
				
			||||||
        email.send()
 | 
					        email.send()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        messages.error(
 | 
					        messages.error(
 | 
				
			||||||
            request,
 | 
					            request,
 | 
				
			||||||
            'VM %s terminated successfully' % (opennebula_vm_id)
 | 
					            _('VM %(VM_ID)s terminated successfully') % {
 | 
				
			||||||
 | 
					                'VM_ID': opennebula_vm_id}
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return HttpResponseRedirect(self.get_success_url())
 | 
					        return HttpResponseRedirect(self.get_success_url())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class HostingBillListView(PermissionRequiredMixin, LoginRequiredMixin, ListView):
 | 
					class HostingBillListView(PermissionRequiredMixin, LoginRequiredMixin,
 | 
				
			||||||
 | 
					                          ListView):
 | 
				
			||||||
    template_name = "hosting/bills.html"
 | 
					    template_name = "hosting/bills.html"
 | 
				
			||||||
    login_url = reverse_lazy('hosting:login')
 | 
					    login_url = reverse_lazy('hosting:login')
 | 
				
			||||||
    permission_required = ['view_hostingview']
 | 
					    permission_required = ['view_hostingview']
 | 
				
			||||||
| 
						 | 
					@ -958,7 +981,8 @@ class HostingBillListView(PermissionRequiredMixin, LoginRequiredMixin, ListView)
 | 
				
			||||||
    ordering = '-id'
 | 
					    ordering = '-id'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class HostingBillDetailView(PermissionRequiredMixin, LoginRequiredMixin, DetailView):
 | 
					class HostingBillDetailView(PermissionRequiredMixin, LoginRequiredMixin,
 | 
				
			||||||
 | 
					                            DetailView):
 | 
				
			||||||
    template_name = "hosting/bill_detail.html"
 | 
					    template_name = "hosting/bill_detail.html"
 | 
				
			||||||
    login_url = reverse_lazy('hosting:login')
 | 
					    login_url = reverse_lazy('hosting:login')
 | 
				
			||||||
    permission_required = ['view_hostingview']
 | 
					    permission_required = ['view_hostingview']
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,17 +1,19 @@
 | 
				
			||||||
from datetime import datetime
 | 
					from datetime import datetime
 | 
				
			||||||
from django.db import models
 | 
					 | 
				
			||||||
from django.utils.translation import ugettext_lazy as _
 | 
					 | 
				
			||||||
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, PermissionsMixin
 | 
					 | 
				
			||||||
from django.contrib.auth.hashers import make_password
 | 
					 | 
				
			||||||
from django.core.validators import RegexValidator
 | 
					 | 
				
			||||||
from django.contrib.sites.models import Site
 | 
					 | 
				
			||||||
from django.conf import settings
 | 
					 | 
				
			||||||
from django.utils.crypto import get_random_string
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
from utils.stripe_utils import StripeUtils
 | 
					from django.conf import settings
 | 
				
			||||||
from utils.mailer import DigitalGlarusRegistrationMailer
 | 
					from django.contrib.auth.hashers import make_password
 | 
				
			||||||
 | 
					from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, \
 | 
				
			||||||
 | 
					    PermissionsMixin
 | 
				
			||||||
 | 
					from django.contrib.sites.models import Site
 | 
				
			||||||
from django.core.urlresolvers import reverse
 | 
					from django.core.urlresolvers import reverse
 | 
				
			||||||
 | 
					from django.core.validators import RegexValidator
 | 
				
			||||||
 | 
					from django.db import models
 | 
				
			||||||
 | 
					from django.utils.crypto import get_random_string
 | 
				
			||||||
 | 
					from django.utils.translation import ugettext_lazy as _
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from utils.mailer import BaseEmail
 | 
					from utils.mailer import BaseEmail
 | 
				
			||||||
 | 
					from utils.mailer import DigitalGlarusRegistrationMailer
 | 
				
			||||||
 | 
					from utils.stripe_utils import StripeUtils
 | 
				
			||||||
 | 
					
 | 
				
			||||||
REGISTRATION_MESSAGE = {'subject': "Validation mail",
 | 
					REGISTRATION_MESSAGE = {'subject': "Validation mail",
 | 
				
			||||||
                        'message': 'Please validate Your account under this link '
 | 
					                        'message': 'Please validate Your account under this link '
 | 
				
			||||||
| 
						 | 
					@ -64,11 +66,13 @@ class CustomUser(AbstractBaseUser, PermissionsMixin):
 | 
				
			||||||
    email = models.EmailField(unique=True)
 | 
					    email = models.EmailField(unique=True)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    validated = models.IntegerField(choices=VALIDATED_CHOICES, default=0)
 | 
					    validated = models.IntegerField(choices=VALIDATED_CHOICES, default=0)
 | 
				
			||||||
    validation_slug = models.CharField(db_index=True, unique=True, max_length=50)
 | 
					    validation_slug = models.CharField(db_index=True, unique=True,
 | 
				
			||||||
 | 
					                                       max_length=50)
 | 
				
			||||||
    is_admin = models.BooleanField(
 | 
					    is_admin = models.BooleanField(
 | 
				
			||||||
        _('staff status'),
 | 
					        _('staff status'),
 | 
				
			||||||
        default=False,
 | 
					        default=False,
 | 
				
			||||||
        help_text=_('Designates whether the user can log into this admin site.'),
 | 
					        help_text=_(
 | 
				
			||||||
 | 
					            'Designates whether the user can log into this admin site.'),
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    objects = MyUserManager()
 | 
					    objects = MyUserManager()
 | 
				
			||||||
| 
						 | 
					@ -77,28 +81,32 @@ class CustomUser(AbstractBaseUser, PermissionsMixin):
 | 
				
			||||||
    REQUIRED_FIELDS = ['name', 'password']
 | 
					    REQUIRED_FIELDS = ['name', 'password']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def register(cls, name, password, email, app='digital_glarus', base_url=None, send_email=True):
 | 
					    def register(cls, name, password, email, app='digital_glarus',
 | 
				
			||||||
 | 
					                 base_url=None, send_email=True):
 | 
				
			||||||
        user = cls.objects.filter(email=email).first()
 | 
					        user = cls.objects.filter(email=email).first()
 | 
				
			||||||
        if not user:
 | 
					        if not user:
 | 
				
			||||||
            user = cls.objects.create_user(name=name, email=email, password=password)
 | 
					            user = cls.objects.create_user(name=name, email=email,
 | 
				
			||||||
 | 
					                                           password=password)
 | 
				
			||||||
            if user:
 | 
					            if user:
 | 
				
			||||||
                if app == 'digital_glarus':
 | 
					                if app == 'digital_glarus':
 | 
				
			||||||
                    dg = DigitalGlarusRegistrationMailer(user.validation_slug)
 | 
					                    dg = DigitalGlarusRegistrationMailer(user.validation_slug)
 | 
				
			||||||
                    dg.send_mail(to=user.email)
 | 
					                    dg.send_mail(to=user.email)
 | 
				
			||||||
                elif app == 'dcl':
 | 
					                elif app == 'dcl':
 | 
				
			||||||
                    dcl_text = settings.DCL_TEXT
 | 
					                    dcl_text = settings.DCL_TEXT
 | 
				
			||||||
                    # not used
 | 
					 | 
				
			||||||
                    # dcl_from_address = settings.DCL_SUPPORT_FROM_ADDRESS
 | 
					 | 
				
			||||||
                    user.is_active = False
 | 
					                    user.is_active = False
 | 
				
			||||||
 | 
					 | 
				
			||||||
                    if send_email is True:
 | 
					                    if send_email is True:
 | 
				
			||||||
                        email_data = {
 | 
					                        email_data = {
 | 
				
			||||||
                            'subject': str(_('Activate your ')) + dcl_text + str(_(' account')),
 | 
					                            'subject': '{dcl_text} {account_activation}'.format(
 | 
				
			||||||
 | 
					                                dcl_text=dcl_text,
 | 
				
			||||||
 | 
					                                account_activation=_('Account Activation')
 | 
				
			||||||
 | 
					                            ),
 | 
				
			||||||
                            'from_address': settings.DCL_SUPPORT_FROM_ADDRESS,
 | 
					                            'from_address': settings.DCL_SUPPORT_FROM_ADDRESS,
 | 
				
			||||||
                            'to': user.email,
 | 
					                            'to': user.email,
 | 
				
			||||||
                            'context': {'base_url': base_url,
 | 
					                            'context': {'base_url': base_url,
 | 
				
			||||||
                                        'activation_link': reverse('hosting:validate',
 | 
					                                        'activation_link': reverse(
 | 
				
			||||||
                                                                   kwargs={'validate_slug': user.validation_slug}),
 | 
					                                            'hosting:validate',
 | 
				
			||||||
 | 
					                                            kwargs={
 | 
				
			||||||
 | 
					                                                'validate_slug': user.validation_slug}),
 | 
				
			||||||
                                        'dcl_text': dcl_text
 | 
					                                        'dcl_text': dcl_text
 | 
				
			||||||
                                        },
 | 
					                                        },
 | 
				
			||||||
                            'template_name': 'user_activation',
 | 
					                            'template_name': 'user_activation',
 | 
				
			||||||
| 
						 | 
					@ -114,7 +122,8 @@ class CustomUser(AbstractBaseUser, PermissionsMixin):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def get_all_members(cls):
 | 
					    def get_all_members(cls):
 | 
				
			||||||
        return cls.objects.filter(stripecustomer__membershiporder__isnull=False)
 | 
					        return cls.objects.filter(
 | 
				
			||||||
 | 
					            stripecustomer__membershiporder__isnull=False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def validate_url(cls, validation_slug):
 | 
					    def validate_url(cls, validation_slug):
 | 
				
			||||||
| 
						 | 
					@ -204,9 +213,11 @@ class CreditCards(models.Model):
 | 
				
			||||||
    name = models.CharField(max_length=50)
 | 
					    name = models.CharField(max_length=50)
 | 
				
			||||||
    user_id = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
 | 
					    user_id = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
 | 
				
			||||||
    card_number = models.CharField(max_length=50)
 | 
					    card_number = models.CharField(max_length=50)
 | 
				
			||||||
    expiry_date = models.CharField(max_length=50, validators=[RegexValidator(r'\d{2}\/\d{4}', _(
 | 
					    expiry_date = models.CharField(max_length=50, validators=[
 | 
				
			||||||
 | 
					        RegexValidator(r'\d{2}\/\d{4}', _(
 | 
				
			||||||
            'Use this pattern(MM/YYYY).'))])
 | 
					            'Use this pattern(MM/YYYY).'))])
 | 
				
			||||||
    ccv = models.CharField(max_length=4, validators=[RegexValidator(r'\d{3,4}', _('Wrong CCV number.'))])
 | 
					    ccv = models.CharField(max_length=4, validators=[
 | 
				
			||||||
 | 
					        RegexValidator(r'\d{3,4}', _('Wrong CCV number.'))])
 | 
				
			||||||
    payment_type = models.CharField(max_length=5, default='N')
 | 
					    payment_type = models.CharField(max_length=5, default='N')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def save(self, *args, **kwargs):
 | 
					    def save(self, *args, **kwargs):
 | 
				
			||||||
| 
						 | 
					@ -221,7 +232,8 @@ class Calendar(models.Model):
 | 
				
			||||||
    def __init__(self, *args, **kwargs):
 | 
					    def __init__(self, *args, **kwargs):
 | 
				
			||||||
        if kwargs.get('datebooked'):
 | 
					        if kwargs.get('datebooked'):
 | 
				
			||||||
            user = kwargs.get('user')
 | 
					            user = kwargs.get('user')
 | 
				
			||||||
            kwargs['datebooked'] = datetime.strptime(kwargs.get('datebooked', ''), '%d,%m,%Y')
 | 
					            kwargs['datebooked'] = datetime.strptime(
 | 
				
			||||||
 | 
					                kwargs.get('datebooked', ''), '%d,%m,%Y')
 | 
				
			||||||
            self.user_id = user.id
 | 
					            self.user_id = user.id
 | 
				
			||||||
        super(Calendar, self).__init__(*args, **kwargs)
 | 
					        super(Calendar, self).__init__(*args, **kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										784
									
								
								utils/locale/de/LC_MESSAGES/django.po
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										784
									
								
								utils/locale/de/LC_MESSAGES/django.po
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,784 @@
 | 
				
			||||||
 | 
					# SOME DESCRIPTIVE TITLE.
 | 
				
			||||||
 | 
					# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 | 
				
			||||||
 | 
					# This file is distributed under the same license as the PACKAGE package.
 | 
				
			||||||
 | 
					# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
 | 
					msgid ""
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"Project-Id-Version: PACKAGE VERSION\n"
 | 
				
			||||||
 | 
					"Report-Msgid-Bugs-To: \n"
 | 
				
			||||||
 | 
					"POT-Creation-Date: 2017-09-02 11:50+0000\n"
 | 
				
			||||||
 | 
					"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
				
			||||||
 | 
					"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 | 
				
			||||||
 | 
					"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
				
			||||||
 | 
					"Language: \n"
 | 
				
			||||||
 | 
					"MIME-Version: 1.0\n"
 | 
				
			||||||
 | 
					"Content-Type: text/plain; charset=UTF-8\n"
 | 
				
			||||||
 | 
					"Content-Transfer-Encoding: 8bit\n"
 | 
				
			||||||
 | 
					"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Andorra"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "United Arab Emirates"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Afghanistan"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Antigua & Barbuda"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Anguilla"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Albania"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Armenia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Netherlands Antilles"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Angola"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Antarctica"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Argentina"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "American Samoa"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Austria"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Australia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Aruba"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Azerbaijan"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Bosnia and Herzegovina"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Barbados"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Bangladesh"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Belgium"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Burkina Faso"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Bulgaria"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Bahrain"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Burundi"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Benin"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Bermuda"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Brunei Darussalam"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Bolivia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Brazil"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Bahama"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Bhutan"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Bouvet Island"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Botswana"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Belarus"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Belize"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Canada"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Cocos (Keeling) Islands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Central African Republic"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Congo"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Switzerland"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Ivory Coast"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Cook Iislands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Chile"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Cameroon"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "China"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Colombia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Costa Rica"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Cuba"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Cape Verde"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Christmas Island"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Cyprus"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Czech Republic"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Germany"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Djibouti"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Denmark"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Dominica"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Dominican Republic"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Algeria"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Ecuador"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Estonia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Egypt"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Western Sahara"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Eritrea"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Spain"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Ethiopia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Finland"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Fiji"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Falkland Islands (Malvinas)"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Micronesia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Faroe Islands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "France"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "France, Metropolitan"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Gabon"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "United Kingdom (Great Britain)"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Grenada"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Georgia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "French Guiana"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Ghana"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Gibraltar"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Greenland"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Gambia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Guinea"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Guadeloupe"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Equatorial Guinea"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Greece"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "South Georgia and the South Sandwich Islands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Guatemala"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Guam"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Guinea-Bissau"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Guyana"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Hong Kong"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Heard & McDonald Islands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Honduras"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Croatia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Haiti"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Hungary"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Indonesia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Ireland"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Israel"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "India"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "British Indian Ocean Territory"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Iraq"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Islamic Republic of Iran"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Iceland"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Italy"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Jamaica"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Jordan"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Japan"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Kenya"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Kyrgyzstan"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Cambodia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Kiribati"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Comoros"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "St. Kitts and Nevis"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Korea, Democratic People's Republic of"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Korea, Republic of"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Kuwait"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Cayman Islands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Kazakhstan"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Lao People's Democratic Republic"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Lebanon"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Saint Lucia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Liechtenstein"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Sri Lanka"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Liberia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Lesotho"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Lithuania"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Luxembourg"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Latvia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Libyan Arab Jamahiriya"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Morocco"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Monaco"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Moldova, Republic of"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Madagascar"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Marshall Islands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Mali"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Mongolia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Myanmar"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Macau"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Northern Mariana Islands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Martinique"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Mauritania"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Monserrat"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Malta"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Mauritius"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Maldives"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Malawi"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Mexico"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Malaysia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Mozambique"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Namibia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "New Caledonia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Niger"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Norfolk Island"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Nigeria"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Nicaragua"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Netherlands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Norway"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Nepal"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Nauru"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Niue"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "New Zealand"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Oman"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Panama"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Peru"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "French Polynesia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Papua New Guinea"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Philippines"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Pakistan"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Poland"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "St. Pierre & Miquelon"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Pitcairn"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Puerto Rico"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Portugal"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Palau"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Paraguay"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Qatar"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Reunion"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Romania"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Russian Federation"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Rwanda"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Saudi Arabia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Solomon Islands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Seychelles"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Sudan"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Sweden"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Singapore"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "St. Helena"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Slovenia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Svalbard & Jan Mayen Islands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Slovakia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Sierra Leone"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "San Marino"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Senegal"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Somalia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Suriname"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Sao Tome & Principe"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "El Salvador"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Syrian Arab Republic"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Swaziland"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Turks & Caicos Islands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Chad"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "French Southern Territories"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Togo"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Thailand"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Tajikistan"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Tokelau"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Turkmenistan"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Tunisia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Tonga"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "East Timor"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Turkey"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Trinidad & Tobago"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Tuvalu"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Taiwan, Province of China"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Tanzania, United Republic of"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Ukraine"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Uganda"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "United States Minor Outlying Islands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "United States of America"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Uruguay"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Uzbekistan"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Vatican City State (Holy See)"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "St. Vincent & the Grenadines"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Venezuela"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "British Virgin Islands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "United States Virgin Islands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Viet Nam"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Vanuatu"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Wallis & Futuna Islands"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Samoa"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Yemen"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Mayotte"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Yugoslavia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "South Africa"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Zambia"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Zaire"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Zimbabwe"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Unknown or unspecified country"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Enter your name or company name"
 | 
				
			||||||
 | 
					msgstr "Geben Sie Ihren Namen oder der Ihrer Firma ein"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Cardholder Name"
 | 
				
			||||||
 | 
					msgstr "Name des Kartenbesitzer"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Street Address"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "City"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Postal Code"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Country"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Street Building"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Name"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Email"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Phone number"
 | 
				
			||||||
 | 
					msgstr "Telefon"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Message"
 | 
				
			||||||
 | 
					msgstr "Nachricht"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "The link to reset your email has been sent to your email"
 | 
				
			||||||
 | 
					msgstr "Der Link zum Zur?cksetzen deines Passwortes wurde an deine E-Mail gesendet"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Password Reset"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Password has been reset."
 | 
				
			||||||
 | 
					msgstr "Das Passwort wurde zur?ckgesetzt."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "Password reset has not been successful."
 | 
				
			||||||
 | 
					msgstr "Das Zur?cksetzen war nicht erfolgreich."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msgid "The reset password link is no longer valid."
 | 
				
			||||||
 | 
					msgstr "Der Link zum Zur?cksetzen deines Passwortes ist nicht l?nger g?ltig."
 | 
				
			||||||
| 
						 | 
					@ -1,15 +1,16 @@
 | 
				
			||||||
from django.views.generic import FormView, CreateView
 | 
					from django.conf import settings
 | 
				
			||||||
from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode
 | 
					 | 
				
			||||||
from django.contrib import messages
 | 
					from django.contrib import messages
 | 
				
			||||||
from django.contrib.auth.tokens import default_token_generator
 | 
					 | 
				
			||||||
from django.utils.encoding import force_bytes
 | 
					 | 
				
			||||||
from django.http import HttpResponseRedirect
 | 
					 | 
				
			||||||
from django.contrib.auth import authenticate, login
 | 
					from django.contrib.auth import authenticate, login
 | 
				
			||||||
 | 
					from django.contrib.auth.tokens import default_token_generator
 | 
				
			||||||
 | 
					from django.http import HttpResponseRedirect
 | 
				
			||||||
 | 
					from django.utils.encoding import force_bytes
 | 
				
			||||||
 | 
					from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode
 | 
				
			||||||
 | 
					from django.utils.translation import ugettext_lazy as _
 | 
				
			||||||
 | 
					from django.views.generic import FormView, CreateView
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from membership.models import CustomUser
 | 
					from membership.models import CustomUser
 | 
				
			||||||
 | 
					 | 
				
			||||||
from .mailer import BaseEmail
 | 
					 | 
				
			||||||
from .forms import SetPasswordForm
 | 
					from .forms import SetPasswordForm
 | 
				
			||||||
 | 
					from .mailer import BaseEmail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class SignupViewMixin(CreateView):
 | 
					class SignupViewMixin(CreateView):
 | 
				
			||||||
| 
						 | 
					@ -17,8 +18,8 @@ class SignupViewMixin(CreateView):
 | 
				
			||||||
    success_url = None
 | 
					    success_url = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_success_url(self):
 | 
					    def get_success_url(self):
 | 
				
			||||||
 | 
					        next_url = self.request.POST.get('next') if self.request.POST.get(
 | 
				
			||||||
        next_url = self.request.POST.get('next') if self.request.POST.get('next')\
 | 
					            'next') \
 | 
				
			||||||
            else self.success_url
 | 
					            else self.success_url
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return next_url
 | 
					        return next_url
 | 
				
			||||||
| 
						 | 
					@ -65,39 +66,37 @@ class LoginViewMixin(FormView):
 | 
				
			||||||
class PasswordResetViewMixin(FormView):
 | 
					class PasswordResetViewMixin(FormView):
 | 
				
			||||||
    # template_name = 'hosting/reset_password.html'
 | 
					    # template_name = 'hosting/reset_password.html'
 | 
				
			||||||
    # form_class = PasswordResetRequestForm
 | 
					    # form_class = PasswordResetRequestForm
 | 
				
			||||||
    success_message = "The link to reset your email has been sent to your email"
 | 
					    success_message = _(
 | 
				
			||||||
 | 
					        "The link to reset your email has been sent to your email")
 | 
				
			||||||
    site = ''
 | 
					    site = ''
 | 
				
			||||||
    success_message = "Thank you! You will shortly receive a password reset mail from us"
 | 
					 | 
				
			||||||
    # success_url = reverse_lazy('hosting:login')
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_generate_email_context(self, user):
 | 
					    def test_generate_email_context(self, user):
 | 
				
			||||||
        context = {
 | 
					        context = {
 | 
				
			||||||
            'user': user,
 | 
					            'user': user,
 | 
				
			||||||
            'token': default_token_generator.make_token(user),
 | 
					            'token': default_token_generator.make_token(user),
 | 
				
			||||||
            'uid': urlsafe_base64_encode(force_bytes(user.pk)),
 | 
					            'uid': urlsafe_base64_encode(force_bytes(user.pk)),
 | 
				
			||||||
            'site_name': 'ungleich',
 | 
					            'site_name': 'ungleich' if self.site != 'dcl' else settings.DCL_TEXT,
 | 
				
			||||||
            'base_url': "{0}://{1}".format(self.request.scheme, self.request.get_host())
 | 
					            'base_url': "{0}://{1}".format(self.request.scheme,
 | 
				
			||||||
 | 
					                                           self.request.get_host())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return context
 | 
					        return context
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def form_valid(self, form):
 | 
					    def form_valid(self, form):
 | 
				
			||||||
 | 
					 | 
				
			||||||
        email = form.cleaned_data.get('email')
 | 
					        email = form.cleaned_data.get('email')
 | 
				
			||||||
        user = CustomUser.objects.get(email=email)
 | 
					        user = CustomUser.objects.get(email=email)
 | 
				
			||||||
 | 
					        messages.add_message(self.request, messages.SUCCESS,
 | 
				
			||||||
        messages.add_message(self.request, messages.SUCCESS, self.success_message)
 | 
					                             self.success_message)
 | 
				
			||||||
 | 
					 | 
				
			||||||
        context = self.test_generate_email_context(user)
 | 
					        context = self.test_generate_email_context(user)
 | 
				
			||||||
        email_data = {
 | 
					        email_data = {
 | 
				
			||||||
            'subject': 'Password Reset',
 | 
					            'subject': _('Password Reset'),
 | 
				
			||||||
            'to': email,
 | 
					            'to': email,
 | 
				
			||||||
            'context': context,
 | 
					            'context': context,
 | 
				
			||||||
            'template_name': 'password_reset_email',
 | 
					            'template_name': 'password_reset_email',
 | 
				
			||||||
            'template_path': self.template_email_path
 | 
					            'template_path': self.template_email_path
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if self.site == 'dcl':
 | 
					        if self.site == 'dcl':
 | 
				
			||||||
            email_data['from_address'] = '(Data Center Light) Data Center Light Support <support@datacenterlight.ch>'
 | 
					            email_data['from_address'] = settings.DCL_SUPPORT_FROM_ADDRESS
 | 
				
			||||||
        email = BaseEmail(**email_data)
 | 
					        email = BaseEmail(**email_data)
 | 
				
			||||||
        email.send()
 | 
					        email.send()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -107,6 +106,7 @@ class PasswordResetViewMixin(FormView):
 | 
				
			||||||
class PasswordResetConfirmViewMixin(FormView):
 | 
					class PasswordResetConfirmViewMixin(FormView):
 | 
				
			||||||
    # template_name = 'hosting/confirm_reset_password.html'
 | 
					    # template_name = 'hosting/confirm_reset_password.html'
 | 
				
			||||||
    form_class = SetPasswordForm
 | 
					    form_class = SetPasswordForm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # success_url = reverse_lazy('hosting:login')
 | 
					    # success_url = reverse_lazy('hosting:login')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def post(self, request, uidb64=None, token=None, *arg, **kwargs):
 | 
					    def post(self, request, uidb64=None, token=None, *arg, **kwargs):
 | 
				
			||||||
| 
						 | 
					@ -118,19 +118,24 @@ class PasswordResetConfirmViewMixin(FormView):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        form = self.form_class(request.POST)
 | 
					        form = self.form_class(request.POST)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if user is not None and default_token_generator.check_token(user, token):
 | 
					        if user is not None and default_token_generator.check_token(user,
 | 
				
			||||||
 | 
					                                                                    token):
 | 
				
			||||||
            if form.is_valid():
 | 
					            if form.is_valid():
 | 
				
			||||||
                new_password = form.cleaned_data['new_password2']
 | 
					                new_password = form.cleaned_data['new_password2']
 | 
				
			||||||
                user.set_password(new_password)
 | 
					                user.set_password(new_password)
 | 
				
			||||||
                user.save()
 | 
					                user.save()
 | 
				
			||||||
                messages.success(request, 'Password has been reset.')
 | 
					                messages.success(request, _('Password has been reset.'))
 | 
				
			||||||
                return self.form_valid(form)
 | 
					                return self.form_valid(form)
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                messages.error(request, 'Password reset has not been successful.')
 | 
					                messages.error(request,
 | 
				
			||||||
                form.add_error(None, 'Password reset has not been successful.')
 | 
					                               _('Password reset has not been successful.'))
 | 
				
			||||||
 | 
					                form.add_error(None,
 | 
				
			||||||
 | 
					                               _('Password reset has not been successful.'))
 | 
				
			||||||
                return self.form_invalid(form)
 | 
					                return self.form_invalid(form)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            messages.error(request, 'The reset password link is no longer valid.')
 | 
					            messages.error(request,
 | 
				
			||||||
            form.add_error(None, 'The reset password link is no longer valid.')
 | 
					                           _('The reset password link is no longer valid.'))
 | 
				
			||||||
 | 
					            form.add_error(None,
 | 
				
			||||||
 | 
					                           _('The reset password link is no longer valid.'))
 | 
				
			||||||
            return self.form_invalid(form)
 | 
					            return self.form_invalid(form)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue