Merge branch 'master' into develop
This commit is contained in:
		
				commit
				
					
						c7d29be24c
					
				
			
		
					 8 changed files with 264 additions and 405 deletions
				
			
		|  | @ -1,3 +1,12 @@ | |||
| 1.0.12: 2017-06-13 | ||||
|     * [datacenterlight] Added from address for EmailMessage that was missing | ||||
| 1.0.11: 2017-06-12 | ||||
|     * [datacenterlight] month added to landing calculator box | ||||
|     * [datacenterlight] dcl_email from address fixed to come from support@dcl | ||||
| 1.0.10: 2017-06-11 | ||||
|     * [datacenterlight] Send plain text email only for new orders | ||||
| 1.0.9: 2017-06-11 | ||||
|     * [datacenterlight] Moved calculator to the landing page | ||||
| 1.0.8: 2017-06-08 | ||||
|     * [datacenterlight] Fixed german typos | ||||
|     * [datacenterlight] Refactored dcl order/success templates | ||||
|  |  | |||
|  | @ -8,7 +8,6 @@ msgid "" | |||
| msgstr "" | ||||
| "Project-Id-Version: PACKAGE VERSION\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2017-06-03 21:51-0500\n" | ||||
| "POT-Creation-Date: 2017-06-07 02:09+0530\n" | ||||
| "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | ||||
| "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | ||||
|  | @ -78,40 +77,34 @@ msgstr "Vielen Dank!" | |||
| 
 | ||||
| #: templates/datacenterlight/index.html:62 | ||||
| #: templates/datacenterlight/index.html:160 | ||||
| #: templates/datacenterlight/index.html:345 | ||||
| #: templates/datacenterlight/new-order.html:62 | ||||
| #: templates/datacenterlight/new-order.html:203 | ||||
| #: templates/datacenterlight/order.html:62 | ||||
| #: templates/datacenterlight/order.html:203 | ||||
| #: templates/datacenterlight/index.html:383 | ||||
| #: templates/datacenterlight/order.html:24 | ||||
| #: templates/datacenterlight/order.html:165 | ||||
| #: templates/datacenterlight/pricing.html:62 | ||||
| #: templates/datacenterlight/pricing.html:190 | ||||
| #: templates/datacenterlight/success.html:62 | ||||
| #: templates/datacenterlight/success.html:23 | ||||
| msgid "What is it" | ||||
| msgstr "Was ist es?" | ||||
| 
 | ||||
| #: templates/datacenterlight/index.html:65 | ||||
| #: templates/datacenterlight/index.html:189 | ||||
| #: templates/datacenterlight/index.html:348 | ||||
| #: templates/datacenterlight/new-order.html:65 | ||||
| #: templates/datacenterlight/new-order.html:206 | ||||
| #: templates/datacenterlight/order.html:65 | ||||
| #: templates/datacenterlight/order.html:206 | ||||
| #: templates/datacenterlight/index.html:386 | ||||
| #: templates/datacenterlight/order.html:27 | ||||
| #: templates/datacenterlight/order.html:168 | ||||
| #: templates/datacenterlight/pricing.html:65 | ||||
| #: templates/datacenterlight/pricing.html:193 | ||||
| #: templates/datacenterlight/success.html:65 | ||||
| #: templates/datacenterlight/success.html:26 | ||||
| msgid "Scale out" | ||||
| msgstr "Skalierung" | ||||
| 
 | ||||
| #: templates/datacenterlight/index.html:68 | ||||
| #: templates/datacenterlight/index.html:215 | ||||
| #: templates/datacenterlight/index.html:351 | ||||
| #: templates/datacenterlight/new-order.html:68 | ||||
| #: templates/datacenterlight/new-order.html:209 | ||||
| #: templates/datacenterlight/order.html:68 | ||||
| #: templates/datacenterlight/order.html:209 | ||||
| #: templates/datacenterlight/index.html:389 | ||||
| #: templates/datacenterlight/order.html:30 | ||||
| #: templates/datacenterlight/order.html:171 | ||||
| #: templates/datacenterlight/pricing.html:68 | ||||
| #: templates/datacenterlight/pricing.html:196 | ||||
| #: templates/datacenterlight/success.html:68 | ||||
| #: templates/datacenterlight/success.html:29 | ||||
| msgid "Reliable and light" | ||||
| msgstr "Zuverlässig und leicht" | ||||
| 
 | ||||
|  | @ -120,14 +113,12 @@ msgid "Order VM" | |||
| msgstr "VM bestellen" | ||||
| 
 | ||||
| #: templates/datacenterlight/index.html:74 | ||||
| #: templates/datacenterlight/index.html:358 | ||||
| #: templates/datacenterlight/new-order.html:74 | ||||
| #: templates/datacenterlight/new-order.html:216 | ||||
| #: templates/datacenterlight/order.html:74 | ||||
| #: templates/datacenterlight/order.html:216 | ||||
| #: templates/datacenterlight/index.html:396 | ||||
| #: templates/datacenterlight/order.html:36 | ||||
| #: templates/datacenterlight/order.html:178 | ||||
| #: templates/datacenterlight/pricing.html:74 | ||||
| #: templates/datacenterlight/pricing.html:203 | ||||
| #: templates/datacenterlight/success.html:74 | ||||
| #: templates/datacenterlight/success.html:35 | ||||
| msgid "Contact" | ||||
| msgstr "Kontakt" | ||||
| 
 | ||||
|  | @ -219,11 +210,12 @@ msgstr "" | |||
| "Angebot ist aufgrund unserer leichten Infrastruktur überaus kostengünstig." | ||||
| 
 | ||||
| #: templates/datacenterlight/index.html:236 | ||||
| #: templates/datacenterlight/new-order.html:106 | ||||
| #: templates/datacenterlight/order.html:106 | ||||
| #: templates/datacenterlight/pricing.html:106 | ||||
| msgid "We are cutting down the costs significantly!" | ||||
| msgstr "Wir sorgen dafür, dass die Kosten für Sie signifikant abnehmen" | ||||
| #: templates/datacenterlight/order.html:143 | ||||
| #: templates/datacenterlight/pricing.html:168 | ||||
| msgid "Simple and affordable: Try our virtual machine with featherlight price." | ||||
| msgstr "" | ||||
| "Einfach und bezahlbar: Teste nun unsere virtuellen Maschinen mit " | ||||
| "federleichten Preisen." | ||||
| 
 | ||||
| #: templates/datacenterlight/index.html:260 | ||||
| msgid "More Info" | ||||
|  | @ -233,25 +225,31 @@ msgstr "Weitere Informationen" | |||
| msgid "Affordable VM hosting based in Switzerland" | ||||
| msgstr "Bezahlbares VM Hosting in der Schweiz" | ||||
| 
 | ||||
| #: templates/datacenterlight/index.html:244 | ||||
| #: templates/datacenterlight/new-order.html:119 | ||||
| #: templates/datacenterlight/order.html:119 | ||||
| #: templates/datacenterlight/index.html:248 | ||||
| #: templates/datacenterlight/order.html:81 | ||||
| #: templates/datacenterlight/pricing.html:119 | ||||
| msgid "VM hosting" | ||||
| msgstr "VM Hosting" | ||||
| 
 | ||||
| #: templates/datacenterlight/index.html:286 | ||||
| #: templates/datacenterlight/index.html:251 | ||||
| msgid "Based in Switzerland" | ||||
| 
 | ||||
| #: templates/datacenterlight/index.html:252 | ||||
| msgid "month" | ||||
| msgstr "Monat" | ||||
| 
 | ||||
| #: templates/datacenterlight/index.html:256 | ||||
| #: templates/datacenterlight/order.html:89 | ||||
| #: templates/datacenterlight/pricing.html:127 | ||||
| msgid "Hosted in Switzerland" | ||||
| msgstr "Standort des Datacenters ist in der Schweiz" | ||||
| 
 | ||||
| #: templates/datacenterlight/index.html:260 | ||||
| msgid "10 GB Storage (SSD)" | ||||
| msgstr "10 GB Storage (SSD)" | ||||
| #: templates/datacenterlight/index.html:273 | ||||
| #: templates/datacenterlight/order.html:106 | ||||
| #: templates/datacenterlight/pricing.html:144 | ||||
| msgid "GB Storage (SSD)" | ||||
| msgstr "GB Storage (SSD)" | ||||
| 
 | ||||
| #: templates/datacenterlight/index.html:263 | ||||
| #: templates/datacenterlight/new-order.html:171 | ||||
| #: templates/datacenterlight/order.html:171 | ||||
| #: templates/datacenterlight/index.html:297 | ||||
| #: templates/datacenterlight/order.html:133 | ||||
| #: templates/datacenterlight/pricing.html:161 | ||||
| msgid "Order Now!" | ||||
| msgstr "Bestelle jetzt!" | ||||
|  | @ -262,24 +260,24 @@ msgstr "Willst du mehr wissen? Abonniere unseren Newsletter!" | |||
| 
 | ||||
| #: templates/datacenterlight/index.html:364 | ||||
| #: templates/datacenterlight/index.html:279 | ||||
| #: templates/datacenterlight/index.html:317 | ||||
| msgid "I want to have it!" | ||||
| msgstr "Das möchte ich haben!" | ||||
| 
 | ||||
| #: templates/datacenterlight/index.html:306 | ||||
| #: templates/datacenterlight/index.html:344 | ||||
| msgid "Switzerland " | ||||
| msgstr "Schweiz" | ||||
| 
 | ||||
| #: templates/datacenterlight/index.html:323 | ||||
| #: templates/datacenterlight/index.html:361 | ||||
| msgid "Questions?" | ||||
| msgstr "Fragen?" | ||||
| 
 | ||||
| #: templates/datacenterlight/index.html:323 | ||||
| #: templates/datacenterlight/index.html:361 | ||||
| msgid "Contact us!" | ||||
| msgstr "Kontaktiere uns!" | ||||
| 
 | ||||
| #: templates/datacenterlight/index.html:341 | ||||
| #: templates/datacenterlight/new-order.html:199 | ||||
| #: templates/datacenterlight/order.html:199 | ||||
| #: templates/datacenterlight/index.html:379 | ||||
| #: templates/datacenterlight/order.html:161 | ||||
| #: templates/datacenterlight/pricing.html:186 | ||||
| msgid "Home" | ||||
| msgstr "Home" | ||||
|  | @ -288,39 +286,24 @@ msgstr "Home" | |||
| #: templates/datacenterlight/index.html:354 | ||||
| #: templates/datacenterlight/new-order.html:212 | ||||
| #: templates/datacenterlight/order.html:212 | ||||
| #: templates/datacenterlight/index.html:392 | ||||
| #: templates/datacenterlight/order.html:174 | ||||
| #: templates/datacenterlight/pricing.html:199 | ||||
| msgid "Pricing" | ||||
| msgstr "Preise" | ||||
| 
 | ||||
| #: templates/datacenterlight/new-order.html:71 | ||||
| #: templates/datacenterlight/order.html:71 | ||||
| #: templates/datacenterlight/order.html:33 | ||||
| #: templates/datacenterlight/pricing.html:71 | ||||
| #: templates/datacenterlight/success.html:71 | ||||
| #: templates/datacenterlight/success.html:32 | ||||
| msgid "Buy VM" | ||||
| msgstr "VM Kaufen" | ||||
| 
 | ||||
| #: templates/datacenterlight/new-order.html:127 | ||||
| #: templates/datacenterlight/order.html:127 | ||||
| #: templates/datacenterlight/pricing.html:127 | ||||
| msgid "Hosted in Switzerland" | ||||
| msgstr "Standort des Datacenters ist in der Schweiz" | ||||
| #: templates/datacenterlight/order.html:68 | ||||
| #: templates/datacenterlight/pricing.html:106 | ||||
| msgid "We are cutting down the costs significantly!" | ||||
| msgstr "Wir sorgen dafür, dass die Kosten für Sie signifikant abnehmen" | ||||
| 
 | ||||
| #: templates/datacenterlight/new-order.html:144 | ||||
| #: templates/datacenterlight/order.html:144 | ||||
| #: templates/datacenterlight/pricing.html:144 | ||||
| msgid "GB Storage (SSD)" | ||||
| msgstr "GB Storage (SSD)" | ||||
| 
 | ||||
| #: templates/datacenterlight/new-order.html:181 | ||||
| #: templates/datacenterlight/order.html:181 | ||||
| #: templates/datacenterlight/pricing.html:168 | ||||
| msgid "Simple and affordable: Try our virtual machine with featherlight price." | ||||
| msgstr "" | ||||
| "Einfach und bezahlbar: Testen Sie unsere virtuellen Maschinen mit  " | ||||
| "federleichten Preisen" | ||||
| 
 | ||||
| #: templates/datacenterlight/new-order.html:184 | ||||
| #: templates/datacenterlight/order.html:184 | ||||
| #: templates/datacenterlight/order.html:146 | ||||
| #: templates/datacenterlight/pricing.html:171 | ||||
| msgid "" | ||||
| "Our VMs are hosted in Glarus, Switzerland, and our website is currently " | ||||
|  | @ -337,16 +320,22 @@ msgstr "" | |||
| "uns unter support@datacenterlight.ch. Unser Team wird sich umgehend um dein " | ||||
| "Anliegen kümmern!" | ||||
| 
 | ||||
| #: templates/datacenterlight/success.html:101 | ||||
| #: templates/datacenterlight/success.html:62 | ||||
| msgid "Thank you for order! Our team will contact you via email" | ||||
| msgstr "" | ||||
| "Vielen Dank für die Bestellung. Unser Team setzt sich sobald wie möglich mit " | ||||
| "Ihnen via E-Mail in Verbindung." | ||||
| 
 | ||||
| #: templates/datacenterlight/success.html:103 | ||||
| #: templates/datacenterlight/success.html:64 | ||||
| msgid "as soon as possible!" | ||||
| msgstr "" | ||||
| 
 | ||||
| #~ msgid "Based in Switzerland" | ||||
| #~ msgstr "Standort des Datacenters ist in der Schweiz" | ||||
| 
 | ||||
| #~ msgid "10 GB Storage (SSD)" | ||||
| #~ msgstr "10 GB Storage (SSD)" | ||||
| 
 | ||||
| #~ msgid "Request Newsletter" | ||||
| #~ msgstr "Newsletter abonnieren" | ||||
| 
 | ||||
|  |  | |||
|  | @ -636,6 +636,12 @@ h6 { | |||
|     max-width: 400px; | ||||
|     position: relative; | ||||
| } | ||||
| .price-calc-section .landing { | ||||
|     width: 100% !important; | ||||
| } | ||||
| .no-padding{ | ||||
|     padding:0 !important; | ||||
| } | ||||
| .price-calc-section .card .img-beta{ | ||||
|     position: absolute; | ||||
|     top: 5px; | ||||
|  |  | |||
|  | @ -1,137 +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: 'Raleway', '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="#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;"> | ||||
| <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: '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"> | ||||
|               We have received a new order. | ||||
|             </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> | ||||
|                 <h4>User details</h4> | ||||
|                 Name: {{name}} <br/> | ||||
|                 Email: {{email}} <br/> | ||||
|                  | ||||
|                 <h4>VM details</h4> | ||||
|                 Cores: {{cores}} <br/> | ||||
|                 Memory: {{memory}} <br/> | ||||
|                 Storage: {{storage}} <br/> | ||||
|                 Price: {{price}} <br/> | ||||
|                 Template: {{template}} <br/> | ||||
|               | ||||
|              </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">Your data center light team<br style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"> | ||||
| </td> | ||||
|           </tr></table> | ||||
| </center> | ||||
|     </td> | ||||
|   </tr> | ||||
| </table> | ||||
| </body> | ||||
| </html> | ||||
| 
 | ||||
|  | @ -1,137 +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: 'Raleway', '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="#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;"> | ||||
| <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: '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"> | ||||
|               We have received a new order. | ||||
|             </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> | ||||
|                 <h4>User details</h4> | ||||
|                 Name: {{name}} <br/> | ||||
|                 Email: {{email}} <br/> | ||||
|                  | ||||
|                 <h4>VM details</h4> | ||||
|                 Cores: {{cores}} <br/> | ||||
|                 Memory: {{memory}} <br/> | ||||
|                 Storage: {{storage}} <br/> | ||||
|                 Price: {{price}} <br/> | ||||
|                 Template: {{template}} <br/> | ||||
|               | ||||
|              </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">Your data center light team<br style="font-family: 'Raleway', 'Helvetica Neue', 'Arial', 'sans-serif' !important;"> | ||||
| </td> | ||||
|           </tr></table> | ||||
| </center> | ||||
|     </td> | ||||
|   </tr> | ||||
| </table> | ||||
| </body> | ||||
| </html> | ||||
| 
 | ||||
|  | @ -255,37 +255,75 @@ | |||
|         <!-- Page Features --> | ||||
|             <div class="row text-center"> | ||||
|                 <div class="col-xs-12 col-md-6 text"> | ||||
|                     <h2 class="section-heading">{% trans "We are cutting down the costs significantly!" %}</h2> | ||||
|                     <h2 class="section-heading">{% trans "Simple and affordable: Try our virtual machine with featherlight price." %}</h2> | ||||
|                     <p class="lead">{% trans "Affordable VM hosting based in Switzerland" %}</p> | ||||
|                      <a href="#" class="btn btn-info btn-lg">{% trans "More Info" %}</a>  | ||||
|                 </div> | ||||
| 
 | ||||
|                 <div class="col-xs-12 col-md-6 hero-feature"> | ||||
|                     <div class="card"> | ||||
|                         <div class="caption"> | ||||
|                             <div class="title"> | ||||
|                                <h3>{% trans "VM hosting" %} </h3>  | ||||
|                     <div class="price-calc-section no-padding"> | ||||
|                         <div class="landing card"> | ||||
|                             <img class="img-beta" src="{% static 'datacenterlight/img/beta-img.png' %}" alt=""> | ||||
|                             <div class="caption"> | ||||
|                                 <form id="order_form" method="POST" action=""> | ||||
|                                     {% csrf_token %} | ||||
|                                     <div class="title"> | ||||
|                                        <h3>{% trans "VM hosting" %} </h3> | ||||
|                                     </div> | ||||
|                                     <div class="price"> | ||||
|                                         <span id="total">15</span> | ||||
|                                         <span>CHF/{% trans "month" %}</span> | ||||
|                                     </div> | ||||
|                                     <div class="descriptions"> | ||||
|                                         <div class="description"> | ||||
|                                             <p>{% trans "Hosted in Switzerland" %}</p> | ||||
|                                         </div> | ||||
|                                         <div class="description"> | ||||
|                                             <i class="fa fa-minus-circle left" data-minus="cpu" aria-hidden="true"></i> | ||||
|                                             <input class="input-price" type="number"  min="1" max="42" id="coreValue" name="cpu"> | ||||
|                                             <span> Core</span> | ||||
|                                             <i class="fa fa-plus-circle right" data-plus="cpu"  aria-hidden="true"></i> | ||||
|                                         </div> | ||||
|                                         <div class="description"> | ||||
|                                             <i class="fa fa-minus-circle left" data-minus="ram" aria-hidden="true"></i> | ||||
|                                             <input id="ramValue" class="input-price" type="number"  min="2" max="200"  name="ram"> | ||||
|                                             <span> GB RAM</span> | ||||
|                                             <i class="fa fa-plus-circle right" data-plus="ram"  aria-hidden="true"></i> | ||||
|                                         </div> | ||||
|                                         <div class="description"> | ||||
|                                             <i class="fa fa-minus-circle left" data-minus="storage" aria-hidden="true"></i> | ||||
|                                             <input id="storageValue" class="input-price" type="number"  min="10" max="500" step="10" name="storage"> | ||||
|                                             <span>{% trans "GB Storage (SSD)" %}</span> | ||||
|                                             <i class="fa fa-plus-circle right" data-plus="storage"  aria-hidden="true"></i> | ||||
|                                         </div> | ||||
|                                         <div class="description select-configuration input"> | ||||
|                                             <label for="config">OS</label> | ||||
|                                             <select name="config" id=""> | ||||
|                                                 {% for template in templates %} | ||||
|                                                     <option value="{{template.id}}">{{template.name}} </option> | ||||
|                                                 {% endfor %} | ||||
|                                             </select> | ||||
|                                         </div> | ||||
|                                         <input type="hidden" name="total"> | ||||
|                                         <!--<div class="description check-ip"> | ||||
|                                             <input type="checkbox" name="ipv6"> Ipv6 Only<br> | ||||
|                                         </div>--> | ||||
|                                         <div class="description input"> | ||||
|                                             <label for="name">Name</label> | ||||
|                                             <input type="text" name="name" placeholder="Your Name"> | ||||
|                                         </div> | ||||
|                                         <div class="description input"> | ||||
|                                             <label for="email">Email</label> | ||||
|                                             <input type="email" name="email" placeholder="Your Email"> | ||||
|                                         </div> | ||||
|                                     </div> | ||||
|                                     <input type="submit" class="btn btn-primary" value="{% trans 'Order Now!' %}"></input> | ||||
|                                 </form> | ||||
|                             </div> | ||||
|                           <div class="price"> | ||||
|                               <span>15 CHF/month</span> | ||||
|                           </div> | ||||
|                           <div class="descriptions"> | ||||
|                               <div class="description"> | ||||
|                                 <p>{% trans "Based in Switzerland" %}</p> | ||||
|                               </div> | ||||
|                               <div class="description"> | ||||
|                                 <p>1 Core, </p> | ||||
|                               </div> | ||||
|                               <div class="description"> | ||||
|                                 <p>2 GB RAM, </p> | ||||
|                               </div> | ||||
|                               <div class="description"> | ||||
|                                 <p>{% trans "10 GB Storage (SSD)" %}</p> | ||||
|                               </div> | ||||
|                           </div> | ||||
| 						  <a href="{% url 'datacenterlight:order' %}" class="btn btn-primary">{% trans "Order Now!" %}</a> | ||||
|                       </div> | ||||
|                       <img class="img-beta" src="{% static 'datacenterlight/img/beta-img.png' %}" alt=""> | ||||
|                             <div> | ||||
|                                 <div id="error_message_box" class="error-message-box"></div> | ||||
|                             </div> | ||||
|                         </div> | ||||
|                     </div> | ||||
| 
 | ||||
|                 </div> | ||||
|  | @ -389,22 +427,48 @@ | |||
| 
 | ||||
|     <!-- jQuery --> | ||||
|     <script src="{% static 'datacenterlight/js/jquery.js' %}"></script> | ||||
| 
 | ||||
| <script type="text/javascript"> | ||||
|       window.onload=function(){ | ||||
|         $('.selectpicker').selectpicker({ | ||||
|              style: 'btn-link', | ||||
|              windowPadding: 10, | ||||
|     <script src="//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.min.js"></script> | ||||
|     <script type="text/javascript"> | ||||
|         $(document).ready(function(){ | ||||
|             $.validator.setDefaults({ | ||||
|                 ignore: [] | ||||
|             }); | ||||
|             $('#order_form').validate({ | ||||
|                 wrapper: 'div', | ||||
|                 errorLabelContainer: "#error_message_box", | ||||
|                 rules: { | ||||
|                     name: { | ||||
|                         required: true, | ||||
|                         minlength: 3 | ||||
|                     }, | ||||
|                     email: { | ||||
|                         required: true, | ||||
|                         email: true | ||||
|                     } | ||||
|                 }, | ||||
|                 messages: { | ||||
|                     name: "Please enter your name", | ||||
|                     email: "Please enter a valid email address" | ||||
|                 }, | ||||
|                 submitHandler: function (form) { | ||||
|                     return true; | ||||
|                 } | ||||
|             }); | ||||
|         }); | ||||
| 
 | ||||
|   		$.ajax({ | ||||
| 	        url: "{% url 'datacenterlight:beta_access' %}", | ||||
| 				context: document.body | ||||
| 			}).done(function(response) { | ||||
| 				$('#beta_access_form').html(response); | ||||
| 			}); | ||||
|        }; | ||||
| </script> | ||||
|         window.onload=function(){ | ||||
|           $('.selectpicker').selectpicker({ | ||||
|                style: 'btn-link', | ||||
|                windowPadding: 10, | ||||
|           }); | ||||
|           $.ajax({ | ||||
|             url: "{% url 'datacenterlight:beta_access' %}", | ||||
|                 context: document.body | ||||
|             }).done(function(response) { | ||||
|                 $('#beta_access_form').html(response); | ||||
|           }); | ||||
|         }; | ||||
|     </script> | ||||
| 
 | ||||
|     <script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.5.4/bootstrap-select.js"></script> | ||||
| 
 | ||||
|  |  | |||
|  | @ -4,6 +4,7 @@ from .forms import BetaAccessForm | |||
| from .models import BetaAccess, BetaAccessVMType, BetaAccessVM | ||||
| from django.contrib import messages | ||||
| from django.core.urlresolvers import reverse_lazy, reverse | ||||
| from django.core.mail import EmailMessage | ||||
| from utils.mailer import BaseEmail | ||||
| from django.shortcuts import render | ||||
| from django.shortcuts import redirect | ||||
|  | @ -59,7 +60,7 @@ class PricingView(TemplateView): | |||
|         if not request.user.is_authenticated(): | ||||
|             request.session['next'] = reverse('hosting:payment') | ||||
| 
 | ||||
|         request.session['specs'] = {  | ||||
|         request.session['specs'] = { | ||||
|             'cpu':cores, | ||||
|             'memory': memory, | ||||
|             'disk_size': storage, | ||||
|  | @ -101,7 +102,7 @@ class OrderView(TemplateView): | |||
|         manager = OpenNebulaManager() | ||||
|         template = manager.get_template(template_id) | ||||
|         template_data = VirtualMachineTemplateSerializer(template).data | ||||
|          | ||||
| 
 | ||||
|         name = request.POST.get('name') | ||||
|         email = request.POST.get('email') | ||||
|         name_field = forms.CharField() | ||||
|  | @ -112,17 +113,13 @@ class OrderView(TemplateView): | |||
|             messages.add_message(self.request, messages.ERROR, '%(value) is not a proper name.'.format(name)) | ||||
|             return HttpResponseRedirect(reverse('datacenterlight:order')) | ||||
| 
 | ||||
|         try:     | ||||
|         try: | ||||
|             email = email_field.clean(email) | ||||
|         except ValidationError as err: | ||||
|             messages.add_message(self.request, messages.ERROR, '%(value) is not a proper email.'.format(email)) | ||||
|             return HttpResponseRedirect(reverse('datacenterlight:order')) | ||||
|          | ||||
|         # We have valid email and name of the customer, hence send an  | ||||
|         # email to the admin | ||||
|          | ||||
| 
 | ||||
|         context = { | ||||
|             'base_url': "{0}://{1}".format(self.request.scheme, self.request.get_host()), | ||||
|             'name': name, | ||||
|             'email': email, | ||||
|             'cores': cores, | ||||
|  | @ -132,13 +129,14 @@ class OrderView(TemplateView): | |||
|             'template': template_data['name'], | ||||
|         } | ||||
|         email_data = { | ||||
|             'subject': 'New Order Received', | ||||
|             'subject': "Data Center Light Order from %s" % context['email'], | ||||
|             'from_address': '(datacenterlight) datacenterlight Support <support@datacenterlight.ch>', | ||||
|             'to': 'info@ungleich.ch', | ||||
|             'context': context, | ||||
|             'template_name': 'new_order_notification', | ||||
|             'template_path': 'datacenterlight/emails/' | ||||
|         } | ||||
|         email = BaseEmail(**email_data) | ||||
|         email = EmailMessage(**email_data) | ||||
|         email.send() | ||||
| 
 | ||||
|         return HttpResponseRedirect(reverse('datacenterlight:order_success')) | ||||
|  | @ -157,6 +155,7 @@ class BetaAccessView(FormView): | |||
| 
 | ||||
|         email_data = { | ||||
|             'subject': 'DatacenterLight Beta Access Request', | ||||
|             'from_address': '(datacenterlight) datacenterlight Support <support@datacenterlight.ch>', | ||||
|             'to': form.cleaned_data.get('email'), | ||||
|             'from': '(datacenterlight) DatacenterLight Support support@datacenterlight.ch', | ||||
|             'context': context, | ||||
|  | @ -172,8 +171,8 @@ class BetaAccessView(FormView): | |||
| 
 | ||||
|         email_data = { | ||||
|             'subject': 'DatacenterLight Beta Access Request', | ||||
|             'to': 'support@datacenterlight.ch', | ||||
|             'from': '(datacenterlight) DatacenterLight Support support@datacenterlight.ch', | ||||
|             'from_address': '(datacenterlight) datacenterlight Support <support@datacenterlight.ch>', | ||||
|             'to': 'info@ungleich.ch', | ||||
|             'context': context, | ||||
|             'template_name': 'request_access_notification', | ||||
|             'template_path': 'datacenterlight/emails/' | ||||
|  | @ -223,6 +222,7 @@ class BetaProgramView(CreateView): | |||
| 
 | ||||
|         email_data = { | ||||
|             'subject': 'DatacenterLight Beta Access Request', | ||||
|             'from_address': '(datacenterlight) datacenterlight Support <support@datacenterlight.ch>', | ||||
|             'to': 'info@ungleich.ch', | ||||
|             'context': context, | ||||
|             'template_name': 'request_beta_access_notification', | ||||
|  | @ -241,6 +241,70 @@ class IndexView(CreateView): | |||
|     form_class = BetaAccessForm | ||||
|     success_url = "/datacenterlight#requestform" | ||||
|     success_message = "Thank you, we will contact you as soon as possible" | ||||
|      | ||||
|     def get(self, request, *args, **kwargs): | ||||
|         try: | ||||
|             manager = OpenNebulaManager() | ||||
|             templates = manager.get_templates() | ||||
|             context = { | ||||
|                 'templates': VirtualMachineTemplateSerializer(templates, many=True).data, | ||||
|             } | ||||
|         except: | ||||
|             messages.error( request, | ||||
|                 'We have a temporary problem to connect to our backend. \ | ||||
|                 Please try again in a few minutes' | ||||
|                 ) | ||||
|             context = { | ||||
|                 'error' : 'connection' | ||||
|                     } | ||||
|         return render(request, self.template_name, context) | ||||
| 
 | ||||
|     def post(self, request): | ||||
|         cores = request.POST.get('cpu') | ||||
|         memory = request.POST.get('ram') | ||||
|         storage = request.POST.get('storage') | ||||
|         price = request.POST.get('total') | ||||
|         template_id = int(request.POST.get('config')) | ||||
|         manager = OpenNebulaManager() | ||||
|         template = manager.get_template(template_id) | ||||
|         template_data = VirtualMachineTemplateSerializer(template).data | ||||
|          | ||||
|         name = request.POST.get('name') | ||||
|         email = request.POST.get('email') | ||||
|         name_field = forms.CharField() | ||||
|         email_field = forms.EmailField() | ||||
|         try: | ||||
|             name = name_field.clean(name) | ||||
|         except ValidationError as err: | ||||
|             messages.add_message(self.request, messages.ERROR, '%(value) is not a proper name.'.format(name)) | ||||
|             return HttpResponseRedirect(reverse('datacenterlight:order')) | ||||
| 
 | ||||
|         try:     | ||||
|             email = email_field.clean(email) | ||||
|         except ValidationError as err: | ||||
|             messages.add_message(self.request, messages.ERROR, '%(value) is not a proper email.'.format(email)) | ||||
|             return HttpResponseRedirect(reverse('datacenterlight:order')) | ||||
| 
 | ||||
|         context = { | ||||
|             'name': name, | ||||
|             'email': email, | ||||
|             'cores': cores, | ||||
|             'memory': memory, | ||||
|             'storage': storage, | ||||
|             'price': price, | ||||
|             'template': template_data['name'], | ||||
|         } | ||||
|         email_data = { | ||||
|             'subject': "Data Center Light Order from %s" % context['email'], | ||||
|             'from_email': '(datacenterlight) datacenterlight Support <support@datacenterlight.ch>', | ||||
|             'to': ['info@ungleich.ch'], | ||||
|             'body': "\n".join(["%s=%s" % (k, v) for (k, v) in context.items()]), | ||||
|             'reply_to': [context['email']], | ||||
|         } | ||||
|         email = EmailMessage(**email_data) | ||||
|         email.send()         | ||||
| 
 | ||||
|         return HttpResponseRedirect(reverse('datacenterlight:order_success')) | ||||
| 
 | ||||
|     def get_success_url(self): | ||||
|         success_url = reverse('datacenterlight:index') | ||||
|  | @ -262,6 +326,7 @@ class IndexView(CreateView): | |||
| 
 | ||||
|         email_data = { | ||||
|             'subject': 'DatacenterLight Beta Access Request', | ||||
|             'from_address': '(datacenterlight) datacenterlight Support <support@datacenterlight.ch>', | ||||
|             'to': form.cleaned_data.get('email'), | ||||
|             'from': '(datacenterlight) DatacenterLight Support support@datacenterlight.ch', | ||||
|             'context': context, | ||||
|  | @ -277,8 +342,8 @@ class IndexView(CreateView): | |||
| 
 | ||||
|         email_data = { | ||||
|             'subject': 'DatacenterLight Beta Access Request', | ||||
|             'to': 'support@datacenterlight.ch', | ||||
|             'from': '(datacenterlight) DatacenterLight Support support@datacenterlight.ch', | ||||
|             'from_address': '(datacenterlight) datacenterlight Support <support@datacenterlight.ch>', | ||||
|             'to': 'info@ungleich.ch', | ||||
|             'context': context, | ||||
|             'template_name': 'request_access_notification', | ||||
|             'template_path': 'datacenterlight/emails/' | ||||
|  |  | |||
|  | @ -21,10 +21,10 @@ class BaseEmail(object): | |||
| 
 | ||||
|         self.email = EmailMultiAlternatives(self.subject, text_content) | ||||
|         self.email.attach_alternative(html_content, "text/html") | ||||
|         self.email.from_email = kwargs.get( | ||||
|             'from', | ||||
|             '(ungleich) ungleich Support <info@ungleich.ch>' | ||||
|         ) | ||||
|         if 'from_address' in kwargs: | ||||
|             self.email.from_email = kwargs.get('from_address') | ||||
|         else: | ||||
|             self.email.from_email = '(ungleich) ungleich Support <info@ungleich.ch>' | ||||
|         self.email.to = [kwargs.get('to', 'info@ungleich.com')] | ||||
| 
 | ||||
|     def send(self): | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue