Compare commits

...
Sign in to create a new pull request.

1751 commits

Author SHA1 Message Date
66538f7335 Merge branch 'master' into 'master'
Task #6038: Change datacenterlight.ch message form to send email to support@ungleich.ch

See merge request ungleich-public/dynamicweb!679
2018-11-11 18:49:55 +01:00
1bfb710ee6 Change datacenterlight.ch message form to send email to support@ungleich.ch 2018-11-11 17:01:19 +01:00
PCoder
2c674572c9 Update Changelog 2018-10-22 23:25:05 +02:00
b1a4ba6f0e Merge branch 'bugfix/use-correct-django-multisite-version' into 'master'
Use correct django-multisite version

See merge request ungleich-public/dynamicweb!676
2018-10-22 23:13:00 +02:00
PCoder
e9cb303b09 Use correct django-multisite version
We had multiple versions of django-multisite in the
requirements.txt. This commit removes the wrong version that
caused server not to start with an error

File "/usr/local/lib/python3.5/site-packages/django/contrib/sites/models.py" in get_current
  65.             return self._get_site_by_id(site_id)

File "/usr/local/lib/python3.5/site-packages/django/contrib/sites/models.py" in _get_site_by_id
  37.         return SITE_CACHE[site_id]

File "/usr/local/lib/python3.5/site-packages/multisite/hacks.py" in __getitem__
  124.             raise KeyError(key)
2018-10-22 22:39:22 +02:00
PCoder
bdf9f53648 Update Changelog for 2.4.1 2018-10-18 09:21:16 +02:00
Pcoder
8d6f2ed4ae
Merge pull request #674 from pcoder/bugfix/update-pycryptodome
Update pycryptodome
2018-10-18 09:15:14 +02:00
PCoder
062e81408d Update pycryptodome
From 3.4 to 3.6.6
2018-10-18 09:03:08 +02:00
PCoder
3a489f5be0 Update Changelog for 2.4 2018-10-18 07:44:07 +02:00
Pcoder
961bf2e46f
Merge pull request #672 from pcoder/task/5681/offer-512mb-ram
Allow admin to lower the minimum RAM for a calculator instance to 512 MB
2018-10-18 07:21:40 +02:00
PCoder
c36554b4d1 Round total_price also to 2 decimal places 2018-10-18 06:58:18 +02:00
PCoder
270c610111 Correct the min value of RAM
Based on what is set by the admin in the backend
2018-10-17 09:56:42 +02:00
PCoder
3ebf932422 Adjust hosting calculator form validation
For 512 MB RAM offer
2018-10-17 09:29:08 +02:00
PCoder
814163e58e Add minRAM js code for hosting also 2018-10-17 09:11:37 +02:00
PCoder
0d767e74a9 Merge branch 'master' into task/5681/offer-512mb-ram 2018-10-17 07:57:07 +02:00
PCoder
5a52ae1a1d Update Changelog for 2.3.1 2018-10-17 07:47:34 +02:00
Pcoder
6612a7debd
Merge pull request #673 from pcoder/bugfix/show_correct_vat
Round VAT percent to 2 decimal places
2018-10-17 07:40:22 +02:00
PCoder
8929a26714 Round VAT percent to 2 decimal places 2018-10-17 07:27:28 +02:00
PCoder
0e9f8ce906 Cleanup unnecessary code 2018-10-16 09:01:00 +02:00
PCoder
b7cc7b08ce Update calculator min RAM input js validation 2018-10-16 08:58:12 +02:00
PCoder
26970ece92 Set default RAM step to 1
We later change this according to minRam set in the backend
2018-10-16 08:55:08 +02:00
PCoder
42d6f38f0c Merge branch 'master' into task/5681/offer-512mb-ram 2018-10-08 07:56:57 +02:00
PCoder
27ee5ca5ac Update Changelog for 2.3 2018-10-08 07:28:04 +02:00
Pcoder
733fb9fc43
Merge pull request #670 from pcoder/task/5690/redirect-on-payment-error
Task/5690/redirect on payment error
2018-10-06 07:59:40 +02:00
PCoder
5770c231ee Fix flake8 warnings 2018-10-06 07:47:40 +02:00
PCoder
5985ded36f Obtain product_slug from session
Obtaining slug from kwargs won't work in OrderConfirmation page
because we do not set the kwargs for that page. To resolve this,
I add the product_slug to the generic_payment_details dict in the
session
2018-10-06 07:31:41 +02:00
PCoder
2b7d4bbef5 Redirect to product page on error 2018-10-05 11:10:10 +02:00
PCoder
10dab1350a Use refactored method clear_all_session_vars 2018-10-05 11:01:49 +02:00
PCoder
806726614e Clear all session variables before loading DCLCalculatorPlugin 2018-10-05 10:37:23 +02:00
PCoder
5d9b2ee41a Refactor clearing all session variables 2018-10-05 10:36:20 +02:00
PCoder
2fbee916cc Correct help text for product slug field 2018-10-05 09:37:57 +02:00
PCoder
1dafa592a2 Update Changelog 2018-10-05 09:23:39 +02:00
Pcoder
e557a777c3
Merge pull request #666 from pcoder/task/5690/generic-payment-page
Task/5690/generic payment page
2018-10-05 09:16:08 +02:00
PCoder
f4579595c3 Add newline character to end of file 2018-10-05 09:05:47 +02:00
PCoder
12eabc5f6c Redirect user to product page on login
For the case when user is on product page and tries logging in
2018-10-05 08:58:57 +02:00
PCoder
e3ec67d32c ProductPaymentForm: Set input fields input-no-border style 2018-10-05 08:58:10 +02:00
PCoder
8758cd1cd8 Add style input-no-border 2018-10-05 08:57:20 +02:00
PCoder
1100d61b5d Fix flake8 warnings 2018-10-03 23:17:25 +02:00
PCoder
b3e3af1c1a Make ProductPaymentForm's recurring field hidden 2018-10-03 22:54:45 +02:00
PCoder
ec70cd1c83 Pass product_id to ProductPaymentForm 2018-10-03 22:53:24 +02:00
PCoder
74ec39498e Update GenericProduct
Remove url field
Make slug mandatory
2018-10-03 09:58:49 +02:00
PCoder
e4bfdec0b6 Update ProductPaymentForm's validation 2018-10-03 09:38:49 +02:00
PCoder
193b87bbb5 Use proper payment form 2018-10-03 09:36:43 +02:00
PCoder
ca18004819 Remove stale reference to product_id 2018-10-03 09:36:00 +02:00
PCoder
e1c91d886b Use explicit index in plan name formatting 2018-10-03 09:35:20 +02:00
PCoder
27a92780a6 Add amount label + Reset textarea height 2018-10-03 08:38:20 +02:00
PCoder
8a2734fa0e Show GenericPaymentForm labels 2018-10-03 08:36:21 +02:00
PCoder
97693f0bb3 Format code 2018-10-03 08:27:22 +02:00
PCoder
495ac0c6d6 Use ProductPaymentForm instead of GenericPaymentForm
Only if product_id is in the session, which identifies that we are
coming here via product_slug
2018-10-03 08:19:33 +02:00
PCoder
530bbcd5f6 Create ProductPaymentForm from GenericPaymentForm 2018-10-03 08:18:45 +02:00
PCoder
1cdc9ea657 Clear product_id from session 2018-10-03 08:18:19 +02:00
PCoder
a4065c7e24 Handle product_slug 2018-10-03 07:55:56 +02:00
PCoder
e3bd963600 Test product_slug url (wip) 2018-10-02 10:02:44 +02:00
PCoder
e47f4f05b4 Handler if product_slug is given (wip) 2018-10-02 10:02:02 +02:00
PCoder
3bad37c605 Make GenericProduct slug unique 2018-10-02 10:00:59 +02:00
PCoder
930333357e GenericProduct: Remove image field and add slug field 2018-10-02 09:27:38 +02:00
PCoder
dd9e7dde35 Merge branch 'master' into task/5690/generic-payment-page 2018-10-02 09:01:46 +02:00
PCoder
f2f95c8559 Update min attribute according to minimum ram in the plugin 2018-10-01 08:56:45 +02:00
PCoder
a93c900109 Pass 512 MB to memory parameter 2018-10-01 08:54:22 +02:00
PCoder
c2dbbf0424 Update views.py to include 512mb ram case
RAM server side validation is as follows:
- pid is a mandatory parameter for a valid RAM, otherwise a
 validation error is raised
- check if enable_512mb_ram is enabled. In this case, validate
if the input ram is either a whole number or 0.5 and in the range
0.5 <= value <= 200
- otherwise check ram is a whole number in the range
1 <= value <= 200
2018-10-01 07:52:28 +02:00
PCoder
f85ef714ab Pass instance context
Also POST plugin_id as a form parameter to check enable_512mb_ram
case
2018-10-01 07:50:18 +02:00
PCoder
24d719e4f1 Update migration 2018-09-29 07:37:23 +02:00
PCoder
5452c1c478 Merge master into task/5681/offer-512mb-ram 2018-09-28 08:36:35 +02:00
PCoder
8743853a7b Update Changelog 2018-09-28 08:13:37 +02:00
PCoder
737d890a7c Update Changelog for 2.2.2 2018-09-28 08:11:36 +02:00
PCoder
db20e3cbe7 Add plus minus ram handler for 512MB option 2018-09-28 08:07:12 +02:00
Pcoder
32767fed68
Merge pull request #668 from pcoder/task/5721/set_calculator_OS_order
Task/5721/set calculator OS order
2018-09-28 07:32:55 +02:00
PCoder
e1ce017ec8 Add migration 2018-09-27 22:48:23 +02:00
PCoder
b047ccdef1 Fix flake8 error 2018-09-27 22:33:24 +02:00
PCoder
56460ac8f0 Update migration 2018-09-27 22:16:05 +02:00
PCoder
d93861ca32 Set Devuan Ascii as default template 2018-09-27 22:14:42 +02:00
PCoder
a02c3c6973 Sort templates alphabetically
And also select the chosen template as the default one
2018-09-27 22:12:13 +02:00
PCoder
768f3532f7 Add default_selected_template field to DCLCalculatorPluginModel 2018-09-27 22:09:11 +02:00
PCoder
21084cdc9f Initialize minRam js variable from what is passed from backend 2018-09-27 09:07:28 +02:00
PCoder
12f139976d Simplify logic to set min_ram in the calculator form 2018-09-27 09:06:39 +02:00
PCoder
da21699212 Merge branch 'master' into task/5681/offer-512mb-ram 2018-09-26 23:10:17 +02:00
PCoder
3075cffd77 Include product_id in generic payment Stripe plan name 2018-09-26 23:01:04 +02:00
PCoder
232022aaaf Fix flake8 errors 2018-09-26 22:51:34 +02:00
PCoder
b7929a16e2 Update datacenterlight django.po 2018-09-26 22:45:09 +02:00
PCoder
6c03e3f712 Change generic payment subject and correct misplaced comma
Data Center LightConfirmation of your payment ->
Confirmation of your payment
2018-09-26 22:42:33 +02:00
PCoder
72c16713a7 Update .po of datacenterlight 2018-09-26 22:37:32 +02:00
PCoder
52d048a555 Add missing Cheers string in email 2018-09-26 22:35:11 +02:00
PCoder
3148dbccf8 Translate text + reformat 2018-09-26 22:31:06 +02:00
PCoder
84056a5b36 Correct generic payment email as per Sanghee's corrections 2018-09-26 22:21:59 +02:00
PCoder
fcc113e9d9 Add locale_date class to date fields so that we can localize 2018-09-26 22:06:14 +02:00
PCoder
1041284866 Refactor moment.js locale date code to virutal_machine_detail.js 2018-09-26 21:52:12 +02:00
PCoder
737681136f Correct flake8 error 2018-09-26 21:23:46 +02:00
PCoder
efae2b1d9a Update Changelog 2018-09-26 21:17:35 +02:00
Pcoder
31e8467f20
Merge pull request #667 from pcoder/bugfix/corrections_by_malcolm
Bugfix/corrections by malcolm

- virutal -> virtual
- some DE corrections
2018-09-26 21:11:13 +02:00
PCoder
4feeec23d4 Correct spelling: virutal -> virtual 2018-09-26 20:50:19 +02:00
PCoder
ca578ecf56 Merge branch 'master' of https://github.com/MalcolmA/dynamicweb into MalcolmA-master 2018-09-26 20:46:54 +02:00
PCoder
b021a8ed6e Remove filer dependency in migration 2018-09-26 09:29:10 +02:00
PCoder
99b11f013f Remove old migration 2018-09-26 09:25:03 +02:00
PCoder
1f990b1ab7 Update migration 2018-09-26 09:24:47 +02:00
PCoder
41cba9daa3 Show product name in dcl order detail template 2018-09-26 09:15:49 +02:00
PCoder
4575ff60ec Refactor validation code + Add product_id to context 2018-09-26 09:15:24 +02:00
PCoder
508360472a Add amount/recurring form fields validation 2018-09-26 09:14:11 +02:00
PCoder
48ba6a6166 Remove disabled on amount/recurring fields 2018-09-26 09:13:45 +02:00
PCoder
10e8f0a820 Show product name in hosting order detail 2018-09-26 09:10:15 +02:00
PCoder
5df2080f92 Reset amount and recurring fields on error 2018-09-26 09:09:12 +02:00
PCoder
9ff20491bd Merge branch 'master' into task/5690/generic-payment-page 2018-09-25 23:25:22 +02:00
PCoder
ce2ac4524c Update Changelog for release 2.2.1 2018-09-25 22:49:31 +02:00
Pcoder
5d5408eb8c
Merge pull request #665 from pcoder/manage_navbar_login
Change DCLNavbarPlugin to show login option only if set
2018-09-25 22:43:10 +02:00
PCoder
c9ac959ff6 Change DCLNavbarPlugin to show login option only if set 2018-09-25 22:29:58 +02:00
PCoder
d54bf84b1e Format code 2018-09-25 02:20:57 +02:00
PCoder
50e5fea339 Add GenericProduct model and associate it to HostingOrder 2018-09-25 02:20:31 +02:00
PCoder
67231275c7 Modify migration 2018-09-25 02:19:28 +02:00
PCoder
1228d3dbc6 Add product_name to GenericPaymentForm 2018-09-25 02:18:31 +02:00
PCoder
69a1d2df71 Add ajax call to fetch price/recurring
Based on selected production
2018-09-25 02:16:44 +02:00
PCoder
b63a572231 Register GenericProduct to adminsite 2018-09-25 02:14:37 +02:00
PCoder
51c5fa98dd Save description and product_id 2018-09-25 02:14:11 +02:00
PCoder
ed7ffb355f Server side validation of the POSTed product 2018-09-25 02:13:39 +02:00
PCoder
1988020006 Handle generic-payment-form POST
To return pricing based on user's selected product
2018-09-25 02:12:42 +02:00
PCoder
b348c93fee Add product hidden input type
To distinguish generic-payment-form submit
2018-09-25 01:56:10 +02:00
PCoder
481f13d20c Check key existence 2018-09-24 22:27:25 +02:00
PCoder
114dbd8242 Make recurring monthly and amount in chf explicit 2018-09-24 08:32:33 +02:00
PCoder
a90bec98ec Make invoice for generic payment showable 2018-09-24 08:22:46 +02:00
PCoder
d99271f71d Redirect users to orders after generic payment is successful 2018-09-23 17:19:24 +02:00
PCoder
ff993e32db Revert back to POST parameters for billing-form method 2018-09-23 17:01:29 +02:00
PCoder
2a694295ad Refactor payment.js 2018-09-23 17:00:48 +02:00
PCoder
fcfc56e132 Move csrf_token out of the form loop 2018-09-23 16:15:48 +02:00
PCoder
d6e4a86724 Append One time charge/Recurring only for generic payments 2018-09-23 13:34:26 +02:00
PCoder
dd82bdc9da Fix a flake8 error 2018-09-23 13:27:33 +02:00
PCoder
7f3b916c58 Reformat code 2018-09-23 13:26:48 +02:00
PCoder
d23624c525 Modify datacenterlight/views.py to includes various cases of generic payment 2018-09-23 13:15:26 +02:00
PCoder
9ec05e7df4 Merge billing and generic-payment forms and post values as get
parameters
2018-09-23 13:13:32 +02:00
PCoder
bc3eaaa7eb Move csrf_token out of form loop 2018-09-23 13:10:26 +02:00
PCoder
bce47032ab Handle generic payment separately in order_detail.html 2018-09-23 13:03:47 +02:00
PCoder
e94ecfe52c Change recurring and description to non-required fields + Change
amount to Floatfield
2018-09-23 12:49:57 +02:00
PCoder
332e7d6624 Add generic_payment_id field to HostingOrder migration and
reflect generic payments in adminsite
2018-09-23 12:39:06 +02:00
PCoder
c7edcdc8b1 Change description to CharField and set its height 2018-09-22 23:51:39 +02:00
PCoder
730492089b Modify PaymentOrderView to accomodate the new generic payment case (WIP) 2018-09-22 08:20:49 +02:00
PCoder
429dd10b75 Modify dcl landing_payment.html to accomodate the new generic
payment form
2018-09-22 08:17:46 +02:00
PCoder
a7fa52490c Create GenericPaymentForm 2018-09-22 08:16:26 +02:00
PCoder
76efc35324 Add enable_512mb_ram option in model/plugin 2018-09-22 06:44:37 +02:00
PCoder
d7be223fcb Change margin bottom for vm terminate error 2018-09-08 12:39:12 +02:00
PCoder
304feb4f7b Update text 2018-09-08 10:46:07 +02:00
PCoder
e376f38baa Correct text 2018-09-08 10:33:00 +02:00
PCoder
84dae63968 Fix: ugettext_lazy doesn't like string format 2018-09-08 10:29:47 +02:00
PCoder
4914280868 Set text for vm terminate timeout 2018-09-08 10:14:57 +02:00
PCoder
ce2d34350f Update Changelog 2018-09-08 00:15:44 +02:00
Pcoder
743ce4ed70
Merge pull request #648 from pcoder/bugfix/log_vm_terminate_errors
Bugfix/log vm terminate errors
2018-09-08 00:09:59 +02:00
PCoder
a7afbec5b4 Fix flake8 error 2018-09-07 23:14:57 +02:00
PCoder
ff6df8cd58 Simplify logic 2018-09-07 23:11:46 +02:00
PCoder
7d4cf5c3c2 Fix flake8 error 2018-09-07 22:46:18 +02:00
PCoder
8e7789462e Merge branch 'master' into bugfix/log_vm_terminate_errors 2018-09-07 22:43:29 +02:00
PCoder
d601b987d2 Update Changelog 2018-09-06 01:15:21 +02:00
PCoder
c6ec2c062c Update Changelog for 2.2 2018-09-06 01:11:27 +02:00
Pcoder
c6612153e8
Merge pull request #663 from pcoder/bugfix/plan-with-price
Use price in stripe plan name too
2018-09-06 01:04:47 +02:00
PCoder
fc8f9993af Remove whitespace in Stripe plan 2018-09-06 00:52:55 +02:00
PCoder
b03cb073c2 Replace @ with a comma 2018-09-06 00:44:47 +02:00
PCoder
fdffe2389b Round price 2018-09-06 00:31:17 +02:00
PCoder
d8a532e7b0 Round discount to 2 decimal points also 2018-09-06 00:26:08 +02:00
PCoder
642153345c Round price, vat and discount to 2 decimal places 2018-09-06 00:18:04 +02:00
PCoder
8a30100488 Use price in stripe plan name too 2018-09-05 23:26:51 +02:00
PCoder
5f19a85a28 Update Changelog for 2.1.2 2018-08-30 10:10:31 +02:00
Pcoder
362a93a97f
Merge pull request #662 from pcoder/use_blog_feed
Set blog rss feed for all blog template
2018-08-30 09:57:36 +02:00
PCoder
4d4472f0d3 Set blog rss feed for all blog template 2018-08-30 09:47:29 +02:00
Malcolm Anyakee
c891694dc0 Update Bugfix
Fixed bugs and fixed typo
2018-08-25 23:13:16 +02:00
PCoder
23eb054422 Update Changelog for release 2.1.1 2018-08-24 12:23:01 +02:00
PCoder
144a780105 Change text: 'Terminated VM can not ...' -> 'Terminated VMs can not ...' 2018-08-24 11:58:01 +02:00
PCoder
3796dabe11 Update Changelog 2018-08-24 11:30:49 +02:00
Pcoder
3de172adf2
Merge pull request #656 from pcoder/task/5487/warn_users_before_terminating_vm
Task/5487/warn users before terminating vm
2018-08-24 11:25:15 +02:00
PCoder
d7f171d710 Change DE translation (beenden instead of terminieren) 2018-08-24 11:07:50 +02:00
PCoder
4f745b607d Merge branch 'master' into task/5487/warn_users_before_terminating_vm 2018-08-24 10:58:24 +02:00
PCoder
9a5b9c7af5 Update Changelog 2018-08-24 10:05:37 +02:00
PCoder
4a16251a69 Update Changelog 2018-08-24 10:00:17 +02:00
Pcoder
fbfa6c8d21
Merge pull request #652 from pcoder/bugfix/send_email_on_dg_subscription
Send email to admin on dg subscription
2018-08-24 09:54:54 +02:00
PCoder
c458b56f71 Add migration file 2018-08-24 09:40:15 +02:00
PCoder
a45eef0409 Change cc_brand field to 128 chars 2018-08-24 09:37:56 +02:00
PCoder
83a6e53fae Merge branch 'master' into bugfix/send_email_on_dg_subscription 2018-08-24 08:42:25 +02:00
PCoder
feceb14aec Update Changelog 2018-08-23 19:55:30 +02:00
Pcoder
f1cc3c5892
Merge pull request #657 from pcoder/5458/make_hostingorder_readable
5458/make hostingorder readable
2018-08-23 19:50:17 +02:00
PCoder
e1263ce9b3 Add DE translation fo #5487 2018-08-23 19:40:16 +02:00
PCoder
4baa3a7095 Improve HostingOrder str representation 2018-08-23 09:18:55 +02:00
PCoder
4a1434c514 Make string representation of HostingOrder more readable 2018-08-23 09:07:12 +02:00
PCoder
f9584b4c82 Fix a bug when vm_template is None 2018-08-23 09:06:31 +02:00
PCoder
78e44332b5 Remove an unnecessary question mark 2018-08-22 23:16:26 +02:00
PCoder
af78631ec8 Update hosting's django.po 2018-08-22 23:13:49 +02:00
PCoder
29172a9df7 Use a separate class for warning block 2018-08-22 23:06:20 +02:00
PCoder
4425aa7c88 Change modal text 2018-08-22 22:57:32 +02:00
PCoder
b7ff519624 Reduce bottom padding further by 2px 2018-08-22 22:54:49 +02:00
PCoder
07837c8752 Reduce bottom padding 2018-08-22 22:51:22 +02:00
PCoder
1e5cf08273 Move the warning to the bottom 2018-08-22 22:47:49 +02:00
PCoder
7e790e7027 Add warning div 2018-08-22 22:36:29 +02:00
PCoder
929e7ead1c Add vm-terminate-warning style 2018-08-22 22:36:17 +02:00
PCoder
ab074d9bc2 Update Changelog 2018-08-22 22:00:43 +02:00
Pcoder
05d48ec4ff
Merge pull request #653 from pcoder/bugfix/show_meta_description_in_cms_page
Bugfix/show meta description in cms page (ungleich template)
2018-08-22 21:54:12 +02:00
PCoder
9c5363ef55 Merge branch 'master' into bugfix/show_meta_description_in_cms_page 2018-08-22 21:42:37 +02:00
PCoder
fb4591ef6a Update Changelog 2018-08-22 20:51:32 +02:00
Pcoder
438a6ab4e4
Merge pull request #655 from pcoder/task/5473/ping_before_cdist
Task/5473/ping before cdist
2018-08-22 20:45:00 +02:00
PCoder
432b54a86d Remove timeout parameter in ping6 request 2018-08-22 20:27:19 +02:00
PCoder
e66e8202db Remove unused variable 2018-08-22 19:56:56 +02:00
PCoder
13876c24c1 Update doc 2018-08-22 00:42:50 +02:00
PCoder
f56933021f Also send an email if manage_ssh_key does not complete in time 2018-08-22 00:37:40 +02:00
PCoder
2ff7eaea65 Sleep additional 10 seconds before running manage_public_key 2018-08-22 00:25:59 +02:00
PCoder
893c8ed08b Fix imports 2018-08-22 00:14:17 +02:00
PCoder
3b07687d3e Refactor ping_ok from datacenterlight.utils to utils.hosting_utils 2018-08-22 00:12:14 +02:00
PCoder
a55587dbf3 Wait for VM to be pingable before doing a manage_public_key 2018-08-21 23:49:47 +02:00
PCoder
91021d7612 Add ping_ok utility method 2018-08-21 23:24:40 +02:00
PCoder
cda6c60e02 Update Changelog for 2.1 2018-08-21 15:09:02 +02:00
Pcoder
873f44c6e5
Merge pull request #654 from pcoder/bugfix/long_cc_brand
Bugfix/long cc brand
2018-08-21 14:57:33 +02:00
PCoder
b69abf3edd Make CC brand 128 characters long 2018-08-21 14:42:01 +02:00
PCoder
8bf6440110 Delete old migrations 2018-08-21 14:41:16 +02:00
PCoder
768b8ca820 Change HostingOrder cc_brand field size to 35 chars 2018-08-21 14:06:58 +02:00
PCoder
770b5e080b Make UserCardDetail brand field 35 chars long 2018-08-21 13:24:54 +02:00
M.Ravi
9381327a12 Change author of various cms pages to ungleich glarus ag
(Being consistent)
2018-08-20 11:52:27 +02:00
M.Ravi
e5fc87a971 Add description page_attribute for ungleich cms page template 2018-08-20 11:51:16 +02:00
PCoder
7b8301f143 Send email to admin on dg subscriptionon dg subscription 2018-08-10 21:19:12 +02:00
PCoder
051408e134 Update Changelog for 2.0.5 2018-08-08 00:26:00 +02:00
PCoder
29c4cc4454 Correct IPv6 VM name in serializer 2018-08-08 00:10:03 +02:00
PCoder
895961868b Update Changelog for 2.0.4 2018-08-07 23:39:43 +02:00
Pcoder
ec2cef7ec5
Merge pull request #651 from pcoder/add_rss_feed_link
Add rss feed link
2018-08-07 23:27:44 +02:00
PCoder
e27317aeab Move rss icon from the header to the footer 2018-08-07 23:24:02 +02:00
PCoder
a8bf22a5b9 Merge branch 'master' into add_rss_feed_link 2018-08-07 22:41:15 +02:00
PCoder
5366745188 Update Changelog 2018-08-07 22:39:43 +02:00
Pcoder
8bce9c82a9
Merge pull request #650 from pcoder/bugfix/5293/change_to_terminate_hard
Bugfix/5293/Change VM terminate action from terminate to terminate hard
2018-08-07 22:29:57 +02:00
Pcoder
e16aab6951
Merge pull request #649 from pcoder/bug/5308/correct_ipv6_vm_name
Bug/5308/Correct IPv6 VM name
2018-08-07 22:28:37 +02:00
PCoder
48936ace51 Revert back commenting out unwanted templates
Todo in another pull request
2018-08-07 21:59:50 +02:00
PCoder
0a3f51361f Add RSS feed icon and link 2018-08-07 21:58:50 +02:00
PCoder
0ddbdb045f Remove unused CMS templates 2018-08-07 21:48:25 +02:00
PCoder
93d489334f Load cms_templates later
These templates are/were used in digitalglarus and hence are
obsolete now. Later can be removed after testing.
2018-08-07 21:44:57 +02:00
PCoder
6546814d62 Change VM terminate action from terminate to terminate hard 2018-08-04 09:52:42 +02:00
PCoder
07c7a64c5a Leave 'ipv6only' as a part of the VM name if it starts with it 2018-08-04 08:47:43 +02:00
PCoder
df10e84418 Add owner's email to the subject 2018-07-25 22:04:44 +02:00
PCoder
a5cdfab306 Send an email to admin if the VM is still there after 30 seconds
of the VM terminate calll
2018-07-25 21:54:15 +02:00
PCoder
59b020c0d4 Replace all occurrences of logger.info with logger.error 2018-07-25 21:41:05 +02:00
PCoder
15db1c88d7 Add release date for 2.0.3 2018-07-18 22:14:35 +02:00
PCoder
be2831818d Update Changelog for 2.0.3 2018-07-18 22:08:47 +02:00
Pcoder
a51064448a
Merge pull request #644 from pcoder/remove_unused_comic_url
Remove unused ^comic/$ url
2018-07-18 22:03:49 +02:00
PCoder
62d23b8a5c Update Changelog 2018-07-18 22:02:21 +02:00
Pcoder
a062c0091f
Merge pull request #645 from pcoder/5126/allow_apps_to_be_iframed
5126/allow apps to be iframed
2018-07-18 21:56:57 +02:00
PCoder
1291b49ec3 Reformat base.py 2018-07-18 21:49:11 +02:00
PCoder
4a19bd1971 Set X_FRAME_OPTIONS from env 2018-07-18 21:48:39 +02:00
PCoder
d6a404d49d Add missing placeholder 2018-07-16 22:38:29 +02:00
PCoder
13e33cbb7a Remove unused import 2018-07-16 20:44:09 +02:00
PCoder
15e435d220 Remove unused ^comic/$ url 2018-07-14 20:05:18 +02:00
PCoder
098a9065f1 Update Changelog for 2.0.2 2018-07-14 19:05:14 +02:00
PCoder
c97e2c55f3 Add missing content block in the blog_ungleich.html template file 2018-07-14 19:03:04 +02:00
PCoder
a5929b3e86 Update Changelog 2018-07-14 18:41:28 +02:00
Pcoder
aec92d4c80
Merge pull request #643 from pcoder/bugfix_blog_template
Move placeholder to blog_ungleich.html
2018-07-14 18:14:18 +02:00
M.Ravi
b3cdbbcae2 Move placeholder to blog_ungleich
This was the cause why the structure/content switch was not available on the blog page
2018-07-11 18:51:16 +02:00
Pcoder
5c6528aa03
Merge pull request #642 from pcoder/fix_de_translation
Fix DE translation
2018-07-07 21:50:20 +02:00
PCoder
28cac31a93 Update Changelog for 2.0 2018-07-07 21:45:32 +02:00
PCoder
b580ac24f6 Change string formatting 2018-07-07 21:30:40 +02:00
PCoder
3ccefbdb74 Reorganize imports 2018-07-07 21:29:44 +02:00
PCoder
d9bcdf22b7 Add missing param in DE translation 2018-07-07 03:01:37 +02:00
PCoder
2ada3ccc6f Update Changelog 2018-07-07 02:35:22 +02:00
Pcoder
0caf3da3bd
Merge pull request #530 from ungleich/task/3747/multiple_cards_support
Task/3747/multiple cards support
2018-07-07 02:28:29 +02:00
PCoder
33bd2e1760 Improve import_usercarddetails management command 2018-07-07 02:15:38 +02:00
PCoder
34ed51a643 Don't dissociate card if transaction fails 2018-07-07 02:03:42 +02:00
PCoder
0f26917f35 Fix PEP8 warning 2018-07-07 01:54:45 +02:00
PCoder
678167978c Add check to forbid user from deleting the last card 2018-07-07 01:50:46 +02:00
PCoder
ebcbb26276 Add another DE translation - UPDATE 2018-07-07 01:38:03 +02:00
PCoder
e18b8a527a Add missing DE translation 2018-07-07 01:35:52 +02:00
PCoder
e60b93d126 Add management command import_usercarddetails 2018-07-07 01:28:25 +02:00
PCoder
8d42ca3200 Remove token parameter from stripe_utils.get_card_details
and add additional paramters to uniquely identify a card
2018-07-07 01:08:49 +02:00
PCoder
4c06a9e730 Add de translations by MalcolmA 2018-07-06 19:33:26 +02:00
PCoder
1f2743a65d Makemessages for datacenterlight, hosting and utils 2018-07-06 01:19:44 +02:00
PCoder
0db4a113e6 Add some styles and do not let user remove card if he has only one 2018-07-05 23:06:47 +02:00
PCoder
5cd62abc70 Refactor code 2018-07-05 20:36:43 +02:00
PCoder
1e214f7b21 Improve comment 2018-07-05 20:35:34 +02:00
PCoder
6b663d82a1 Remove unused variable 2018-07-05 20:35:00 +02:00
PCoder
baa2817f57 Update BillingAddressFormSignup: add email validation 2018-07-05 10:00:12 +02:00
PCoder
9035f98060 Update UserCardDetail get method 2018-07-05 09:58:57 +02:00
PCoder
faa0604fae Remove redundant code 2018-07-05 09:58:07 +02:00
PCoder
8d7b01d7e2 Disable dissociating card on subscription failure 2018-07-05 09:57:47 +02:00
PCoder
e9ac699be8 Add card detail creation code in various landing cases 2018-07-05 09:57:18 +02:00
PCoder
ec0216790f Remove redundant code 2018-07-05 09:55:45 +02:00
PCoder
9bf8992ff4 Landing flow: set/get token/card_id 2018-07-04 02:53:43 +02:00
PCoder
dc28186fe9 Add styles for landing payment choices 2018-07-04 02:03:50 +02:00
PCoder
8e742852a5 Show all cards in landing and hosting payment page 2018-07-04 02:03:08 +02:00
PCoder
3d8237a34a Get and show all card details in the landing flow, if the user is logged in 2018-07-04 00:50:44 +02:00
PCoder
c118e86230 Remove unused context parameters -- introduced during merge 2018-07-03 23:56:42 +02:00
PCoder
d98a683b2a Do a get on UserCardDetail only when fingerprint, exp_month and exp_year are known 2018-07-03 23:23:02 +02:00
PCoder
1c5ff1f9dd Add UserCardDetail in the landing non-logged in flow 2018-07-03 23:22:10 +02:00
PCoder
9904a71d38 Rename usercarddetail migration 2018-07-03 22:34:59 +02:00
PCoder
c9d01ba95f Fix some errors 2018-07-03 21:52:44 +02:00
PCoder
6d2b011925 Merge master into task/3747/multiple_cards_support 2018-07-03 21:29:04 +02:00
PCoder
cb911e05c5 Update Changelog 2018-07-01 22:45:18 +02:00
Pcoder
1fa260aaf5
Merge pull request #624 from pcoder/task/3934/move_hosting_order_out_of_celery_task
Task/3934/Create hostingorder outside celery task
2018-07-01 22:39:08 +02:00
PCoder
44900f6a48 Rename OrderSpecifications to OrderDetail 2018-07-01 22:30:23 +02:00
PCoder
00cb1de75d Add type to OrderSpecification string 2018-07-01 19:46:21 +02:00
PCoder
7f57ace92d Set default and on_delete attributes 2018-07-01 19:23:05 +02:00
PCoder
f48005166e Fix bug getting VMTemplate object from vm_template_id 2018-07-01 18:42:11 +02:00
PCoder
900f014d92 Save order specifications in HostingOrder also 2018-07-01 18:33:10 +02:00
PCoder
5851277d9a Reorganize imports 2018-07-01 16:36:41 +02:00
PCoder
43b3a63958 Reorganize imports 2018-07-01 16:25:02 +02:00
PCoder
081921e846 Merge master into task/3934/move_hosting_order_out_of_celery_task 2018-07-01 16:18:43 +02:00
PCoder
6593983f04 Update Changelog 2018-07-01 16:02:35 +02:00
Pcoder
ba286eb053
Merge pull request #640 from pcoder/task/4890/ssh_key_manage_for_ipv6
Task/4890/ssh key manage for ipv6
2018-07-01 15:57:17 +02:00
PCoder
ef8e380ab7 Fix flake8 error 2018-07-01 11:22:42 +02:00
PCoder
ae0d4c0841 Refactor code 2018-07-01 11:17:45 +02:00
PCoder
c13af95017 Refactor code: get_primary_ip -> get_ipv6 and remove unwanted code 2018-07-01 11:07:39 +02:00
PCoder
8993a7bde1 Reorganize imports + format code 2018-07-01 11:05:23 +02:00
PCoder
52e53d479e Rename a variable: ipv6s -> ipv6_list 2018-07-01 07:57:15 +02:00
PCoder
68a65b7bc7 Detect private IP correctly 2018-06-30 00:30:51 +02:00
M.Ravi
5eff54cffe Fix a bug -- json not imported; use JsonResponse instead of
HttpResponse
2018-06-27 12:34:57 +02:00
M.Ravi
f1e021e1e9 Improve comments 2018-06-27 12:24:53 +02:00
M.Ravi
88e6d9d216 Separate two error messages with a period 2018-06-27 12:24:16 +02:00
M.Ravi
2cd73b313a Merge master into task/3934/move_hosting_order_out_of_celery_task
and resolve some conflicts
2018-06-27 12:09:05 +02:00
PCoder
a3db7f2e1a Merge branch 'master' into task/4890/ssh_key_manage_for_ipv6 2018-06-27 09:23:48 +02:00
PCoder
88f0d73336 Update Changelog 2018-06-27 09:21:41 +02:00
Pcoder
a56b2d02c8
Merge pull request #641 from pcoder/bugfix/flake8_error
Attempt to fix flake8 error
2018-06-27 09:17:11 +02:00
PCoder
60260ccb08 Attempt to fix flake8 error 2018-06-27 09:06:28 +02:00
PCoder
4a5c5f7942 Refactor getting primary ip of a vm 2018-06-27 01:06:27 +02:00
PCoder
1ec7cb8761 Fix silly copy/paste bug 2018-06-27 00:44:17 +02:00
PCoder
6c2eabbe6a Use the public ipv4 if it exists; otherwise use the ipv6 to do a
cdist cdist ssh configure
2018-06-27 00:01:55 +02:00
PCoder
a5c42b9c44 Update Changelog for 1.9.1 2018-06-24 17:05:33 +02:00
PCoder
e816f65114 Update Changelog 2018-06-24 16:00:54 +02:00
Pcoder
1522701a5e
Merge pull request #638 from pcoder/task/4799/show_selected_vms_only_in_calculator
Task/4799/show selected vms only in calculator
2018-06-24 15:55:11 +02:00
PCoder
bf45bf1b4d Merge remote-tracking branch 'mainRepo/master' into task/4799/show_selected_vms_only_in_calculator 2018-06-24 15:14:11 +02:00
PCoder
549e882ebe Update Changelog 2018-06-24 14:54:50 +02:00
Pcoder
78bda89b16
Merge pull request #639 from pcoder/task/4847/add_comics_analytics_code
Add google analytics code for comic.ungleich.ch
2018-06-24 14:49:52 +02:00
PCoder
fb9000de90 Update Changelog 2018-06-24 14:47:05 +02:00
PCoder
70cac38f81 Move initialization of VMTemplates out of the plugin 2018-06-24 10:29:07 +02:00
PCoder
79e83b4480 Refactor show_vm_templates to DCLCalculatorPluginModel from VMPricing 2018-06-24 09:08:22 +02:00
PCoder
dcbb0c2d64 Add google analytics code for comic.ungleich.ch 2018-06-19 08:49:21 +02:00
PCoder
b872777bda Filter context templates also by the ids that have been set for the calculator 2018-06-13 11:55:30 +02:00
PCoder
94f520be35 Add migration 2018-06-13 11:17:18 +02:00
PCoder
5748eecedb Create field for storing os_templates_to_show 2018-06-13 11:16:49 +02:00
PCoder
fae9fce5c6 Remove unnecessary code 2018-06-12 11:15:17 +02:00
PCoder
6db38d7e29 Check card_id also for order confirmation 2018-06-12 11:14:36 +02:00
PCoder
86f0526773 Reformat code 2018-06-12 11:13:10 +02:00
PCoder
23630d4473 Move csrf_token call outside the for loop 2018-06-12 11:11:37 +02:00
PCoder
7494116468 Add missing import 2018-06-12 09:36:00 +02:00
PCoder
57eda62586 Update UserCardDetail migration 2018-06-12 08:28:46 +02:00
PCoder
cf00ff6bd8 Attempt to merge master into task/3747/multiple_cards_support 2018-06-12 08:16:11 +02:00
Arvind Tiwari
ae911c8c21
Merge pull request #635 from tiwariav/patch/vm_template_patch
add vm_type option to vm_template and dcl calculator
2018-05-24 04:24:26 +05:30
Arvind Tiwari
2d1805f11d update fetchvmtemplates command 2018-05-24 04:14:53 +05:30
Arvind Tiwari
a4ca17e2ed vm template prefix 2018-05-24 03:57:01 +05:30
Arvind Tiwari
cba53e0fe3
Update Changelog 2018-05-17 01:01:50 +05:30
Arvind Tiwari
4e971c23a0
Merge pull request #632 from tiwariav/task/4559/calculator_discount
bugfix/ discount calculator styles and translation
2018-05-12 22:09:32 +05:30
Arvind Tiwari
8fb0d9a48a order detail divider lines full width 2018-05-12 21:59:06 +05:30
Arvind Tiwari
3446dcc469 calculator translation 2018-05-12 21:48:57 +05:30
Arvind Tiwari
d40977c5da
Merge pull request #629 from tiwariav/task/4559/calculator_discount
Task/4559 enable discount on calculator
2018-05-12 21:21:03 +05:30
Arvind Tiwari
b09604d30f add space befor CHF 2018-05-12 03:56:04 +05:30
Arvind Tiwari
f39f95e1f7 remove template filter from translation 2018-05-12 03:47:54 +05:30
Arvind Tiwari
20f1df8a70 blocktrans variable fix 2018-05-12 03:39:38 +05:30
Arvind Tiwari
39f7898259 edit order detail footer text 2018-05-12 03:15:07 +05:30
Arvind Tiwari
55889499df order detail style fix 2018-05-12 02:47:27 +05:30
Arvind Tiwari
8044e0c2a0 calculator discount text modified 2018-05-11 17:47:27 +05:30
Arvind Tiwari
30deae5a20 strong color fix 2018-05-11 17:25:44 +05:30
Arvind Tiwari
a14407182f font weight for discount name 2018-05-11 17:21:02 +05:30
Arvind Tiwari
73e3dce8d4 order detail page font format 2018-05-11 17:18:19 +05:30
Arvind Tiwari
f3ffbd96e5 translation fix 2018-05-10 21:26:47 +05:30
Arvind Tiwari
b351cb9aa0 translation fix 2018-05-10 21:25:38 +05:30
Arvind Tiwari
55cbe3244a fix testing error 2018-05-07 09:14:31 +05:30
Arvind Tiwari
0fdb88b8aa invoice discount amount fix 2018-05-07 07:50:32 +05:30
Arvind Tiwari
3d2ce27954 fix discount amount 2018-05-07 06:29:53 +05:30
Arvind Tiwari
eeed9b2e72 discount name in templates 2018-05-07 06:25:50 +05:30
Arvind Tiwari
2ff8c25034 exclude discount from total price 2018-05-07 06:11:44 +05:30
Arvind Tiwari
144d885fbd Merge branch 'master' into task/4559/calculator_discount 2018-05-07 05:23:50 +05:30
Arvind Tiwari
7a72cc02ab translations 2018-05-07 05:22:05 +05:30
Arvind Tiwari
f8dc2c6bbe discount option added to calculator 2018-05-07 05:07:58 +05:30
Arvind Tiwari
25ef657c62
Update cms_plugins.py 2018-05-01 18:15:56 +05:30
Arvind Tiwari
4d2d337651
Release 1.8 2018-05-01 16:44:15 +05:30
Arvind Tiwari
ccf55acbaf
Update navbar_dropdown.html 2018-05-01 04:36:29 +05:30
Arvind Tiwari
6ff03d8f48
Merge pull request #627 from tiwariav/task/dcl_calculator_on_non_cms_pages
Task/4527 dcl calculator on non-cms pages
2018-05-01 02:35:22 +05:30
Arvind Tiwari
d6db984156
Update ungleich.css 2018-05-01 00:48:31 +05:30
Arvind Tiwari
35fb872dc1
Update Changelog 2018-05-01 00:00:05 +05:30
Arvind Tiwari
86188b1fb0
Merge pull request #626 from tiwariav/task/4474/slider_padding
Task/4474 cms header slider padding
2018-04-30 23:52:23 +05:30
Arvind Tiwari
6bb65d8e8d
Merge pull request #628 from tiwariav/bugfix/unglieich_cms_template_favicon
bugfix/ add favicon extension to ungleich cms template
2018-04-30 21:20:41 +05:30
Arvind Tiwari
34df86fb90 add favicon extension to ungleich_template 2018-04-28 00:56:11 +05:30
Arvind Tiwari
89ed869780 hosting calculator styles 2018-04-25 23:31:27 +05:30
Arvind Tiwari
0c4c945ec3 flake8 fix 2018-04-25 17:51:36 +05:30
Arvind Tiwari
14548b2f01 flake8 refacoring 2018-04-25 17:26:31 +05:30
Arvind Tiwari
91a65e88ec hosting vm payment price fix 2018-04-25 16:08:05 +05:30
Arvind Tiwari
f66d768ecb hosting payment page 2018-04-25 15:55:58 +05:30
Arvind Tiwari
3b3b73a2ce alignment calculator plugin 2018-04-25 15:08:28 +05:30
Arvind Tiwari
3bf064a017 add calculator placeholder to cms_integration 2018-04-25 14:52:25 +05:30
Arvind Tiwari
91f1c1ef06
Update Changelog 2018-04-21 23:05:23 +05:30
Arvind Tiwari
67a6c8f2c2
Update Changelog 2018-04-21 22:59:00 +05:30
Arvind Tiwari
49c0406296
Merge pull request #625 from pcoder/bugfix/4481/fix_DE_blog_pages_500_error
Bugfix/4481/fix de blog pages 500 error
2018-04-21 22:54:18 +05:30
Arvind Tiwari
526426c6c0
Merge pull request #623 from pcoder/task/4370/ungleich_comic
Task/4370/ungleich comic
2018-04-21 22:47:08 +05:30
Arvind Tiwari
1a692bc88f merge master 2018-04-21 22:39:44 +05:30
Arvind Tiwari
3b6c2b9d4e fix vm_id default 2018-04-21 22:27:43 +05:30
Arvind Tiwari
a5bd8347e8 merged master 2018-04-21 21:01:42 +05:30
Arvind Tiwari
45bd853a20
Update Changelog 2018-04-20 21:09:16 +05:30
Arvind Tiwari
d21e2a8abe
Merge pull request #618 from tiwariav/task/4297/cms_favicon
Task/4297 dcl cms favicon as page attribute
2018-04-20 20:59:17 +05:30
Arvind Tiwari
3d0505330c
Merge pull request #620 from tiwariav/bugfix/blog_top_menu
bugfix/ cms blog top menu
2018-04-20 20:58:59 +05:30
Arvind Tiwari
b660ac5ed4 merge master 2018-04-20 20:37:34 +05:30
Arvind Tiwari
564f7a5be8 merge migrations 2018-04-20 20:36:28 +05:30
Arvind Tiwari
275ea47e41 merge master 2018-04-20 20:30:45 +05:30
Arvind Tiwari
71a37972d3 Merge remote-tracking branch 'ungleich/master' 2018-04-20 20:29:09 +05:30
Arvind Tiwari
736253feda refactor imports 2018-04-20 20:27:26 +05:30
Arvind Tiwari
3debf34118 remove vm creation to util function 2018-04-20 20:25:24 +05:30
Arvind Tiwari
74554f1c24
Merge pull request #622 from pcoder/task/4379/price_without_vat
Task/4379/Price without VAT
2018-04-20 19:04:10 +05:30
Arvind Tiwari
8f6260b063
Update _calculator_form.html 2018-04-20 17:54:23 +05:30
Arvind Tiwari
1e97d0ba38
Update cms_plugins.py 2018-04-20 17:51:46 +05:30
Arvind Tiwari
a25bcc807f change header slider to container fluid 2018-04-20 17:04:02 +05:30
Arvind Tiwari
da13903ba2 remove padding 2018-04-20 16:42:50 +05:30
M.Ravi
0b97ae69f5 Cleanup and reformat some code 2018-04-19 09:23:22 +02:00
M.Ravi
a7f1f14dc7 Raise Http404 when we do not have a post for a given language 2018-04-19 09:12:54 +02:00
M.Ravi
fae1c7fbeb Update hosting_order in a pythonic way 2018-04-19 07:26:34 +02:00
PCoder
80c3ac5346 Improve create_vm_task test 2018-04-19 01:09:25 +02:00
PCoder
a3a8227007 Check if subscription metadata update response does not have errors 2018-04-19 01:08:52 +02:00
PCoder
791f48513a Organize imports 2018-04-19 01:07:59 +02:00
PCoder
8a659c153e Set VM_ID metadata to the created subscription 2018-04-19 00:52:38 +02:00
PCoder
1a7412f8ff stripe_utils: Add set_subscription_metadata method 2018-04-19 00:51:55 +02:00
PCoder
bd875ffe7d Create hostingorder outside celery task 2018-04-18 23:50:52 +02:00
PCoder
4e3211b62f Make total and subtotal texts bold 2018-04-18 21:37:12 +02:00
PCoder
36c0b9a0a6 Differentiate price and total_price in hosting order_detail 2018-04-17 22:23:46 +02:00
PCoder
2ac1ac7d97 Add subtotal and VAT to hosting order detail too 2018-04-17 22:20:36 +02:00
PCoder
4c21110c00 Remove fuzzy and python-format 2018-04-17 21:47:02 +02:00
PCoder
a454cd2522 Update datacenterlight's django.po 2018-04-17 21:38:53 +02:00
PCoder
c2513dc7c3 Show vat_percent and subtotal for vat exclusive case 2018-04-17 21:38:28 +02:00
PCoder
a50fa77c8a Update get_vm_price_with_vat: Return vat_percentage also 2018-04-17 21:36:08 +02:00
PCoder
e4e7d93275 Fix flake8 errors 2018-04-17 20:50:41 +02:00
M.Ravi
b3d36c1be3 Reformat code 2018-04-17 18:12:45 +02:00
M.Ravi
d15a4da840 Check if child plugin instances exist before looping over them 2018-04-17 18:03:14 +02:00
M.Ravi
8b5b353e59 Reformat code and give proper name to comic urlconf 2018-04-17 17:15:55 +02:00
M.Ravi
80a568b2b3 Remove unwanted /comic/... urlconf 2018-04-17 17:14:39 +02:00
M.Ravi
7d211b3333 Modify PostListViewUngleich: Filter posts by category if specified 2018-04-17 16:17:46 +02:00
M.Ravi
ff1d4f1a6f Rename tags to category, because thats how we filter posts by 2018-04-17 16:15:49 +02:00
PCoder
ee35fbd784 Attempt to filter blogs by category 2018-04-17 11:49:01 +02:00
PCoder
b218ee1662 Add urlconfs for comic 2018-04-17 11:47:56 +02:00
PCoder
3fca9dbb0d Fix a bug creating hostingorder 2018-04-16 05:03:48 +02:00
PCoder
1e76864821 Get vm price and vat and pass it to context 2018-04-16 04:46:43 +02:00
PCoder
731fef8ad9 Show VAT details in hosting/order_details if it is set 2018-04-16 04:39:21 +02:00
PCoder
6cc40cb67f virtual machine detail: show price upto 2 decimal places 2018-04-16 04:34:40 +02:00
PCoder
602ad1b2c0 Reformat code 2018-04-16 04:32:27 +02:00
PCoder
5738dc8e1b Virtual machine detail: use hostingorder for obtaining the price,
rather than the serializer
2018-04-16 04:32:08 +02:00
PCoder
adbb8a269e Hostingorders: limit amount to 2 decimal places 2018-04-16 04:16:57 +02:00
PCoder
b71fec7e61 Fix a bug: use vm_pricing instead of pricing 2018-04-16 04:00:48 +02:00
PCoder
b103772c0d Pass vm_pricing if available when creating HostingOrder 2018-04-16 03:37:19 +02:00
PCoder
25c0694b6c Use vm_pricing for creating HostingOrder 2018-04-16 03:36:56 +02:00
PCoder
a8339a23a9 Use get_vm_price_with_vat in hosting invoice 2018-04-16 03:27:54 +02:00
PCoder
0b9c67166e Rename variable name: disk_size -> ssd_size 2018-04-16 03:26:51 +02:00
PCoder
85b8c50ef1 Use proper decimal arithmetic to compute price and vat 2018-04-16 03:25:36 +02:00
PCoder
c92bf30514 Associate HostingOrder and VMPricing 2018-04-16 03:23:09 +02:00
PCoder
c5029d8752 Update datacenterlight's django.po 2018-04-16 01:48:39 +02:00
PCoder
95daa37670 Use total_price for amout to be charged, always 2018-04-16 01:32:38 +02:00
PCoder
4148eff03e Rename variable: amount_to_be_charged -> price 2018-04-16 01:31:16 +02:00
PCoder
d0276f22c1 Reorganize imports 2018-04-16 01:30:02 +02:00
PCoder
1b37eed53d Include pricing_name in the email sent to admin 2018-04-16 01:29:07 +02:00
PCoder
8e28756bd8 Check if we have total_price (indicates that we have VAT excluded
price);hence,use it as final_price. if not use the previous casei and use it as final_price. If not use the preivous case
2018-04-16 01:27:42 +02:00
PCoder
6d6a8ea597 Refactor: reuse final_price variable 2018-04-16 01:24:21 +02:00
PCoder
903336a46f Show 2 upto decimal places in order detail 2018-04-16 00:59:42 +02:00
PCoder
ec753eb0d5 Improve string representation of VMPricing 2018-04-16 00:50:34 +02:00
PCoder
68032ec184 Update migration file 2018-04-16 00:49:55 +02:00
PCoder
1cb3fa80cf Improve logger error 2018-04-16 00:29:43 +02:00
PCoder
896984ef1f Set vm_pricing context from plugins value 2018-04-16 00:29:23 +02:00
PCoder
665fa7479b Add 0019_auto_20180415_2129.py 2018-04-15 23:32:14 +02:00
PCoder
09a03783b7 Merge branch 'master' into task/4379/price_without_vat 2018-04-15 23:27:36 +02:00
PCoder
465431d858 Add DCLCustomPricingPlugin 2018-04-15 23:24:15 +02:00
PCoder
45fc0dbaac Add .orig to .gitignore 2018-04-15 23:23:42 +02:00
PCoder
fc0bc52ea3 Rename model
DCLCalculatorPluginModel -> DCLCustomPricingModelModel
2018-04-15 23:19:18 +02:00
PCoder
6575ff1afe Increase decimal_places for all VMPricing fields 2018-04-15 23:07:50 +02:00
PCoder
069ba34f94 Remove old migration file 2018-04-15 23:07:07 +02:00
PCoder
d296ce72cb Register VMPricing with admin site 2018-04-15 21:37:51 +02:00
PCoder
40b984be15 Update order_detail landing template 2018-04-15 21:04:06 +02:00
PCoder
23bd0fa147 Pass context params to various landing templates 2018-04-15 21:03:31 +02:00
PCoder
957cec00a0 Add get_vm_price_with_vat method 2018-04-15 20:59:31 +02:00
PCoder
e9a883bf2e Fix a bug: use ssd_unit_price instead of sdd_unit_price 2018-04-15 20:57:10 +02:00
PCoder
962c96067f Add get_vm_pricing_by_name VMPricing method 2018-04-15 20:55:39 +02:00
PCoder
63a12ffe06 Use updated get_vm_price method 2018-04-15 13:42:39 +02:00
PCoder
558e187e11 Update text: including/excluding VAT 2018-04-15 13:39:41 +02:00
PCoder
c738888ab2 Set vm unit price parameters from the passed context 2018-04-15 13:39:01 +02:00
PCoder
aa55c1e868 Update main.js to compute total from the unitprice's defined in the window context 2018-04-15 13:37:06 +02:00
PCoder
82a2014fa5 Pass vm_pricing context from default VMPricing object 2018-04-15 13:34:55 +02:00
PCoder
74393ac6ac Optimize imports 2018-04-15 13:32:53 +02:00
PCoder
283a0d25d1 Update get_vm_price method to use pricing defined in VMPricing 2018-04-15 13:31:55 +02:00
PCoder
3f4156ed8e Update Changelog 2018-04-13 20:52:58 +02:00
Pcoder
4cea97c5d6
Merge pull request #617 from pcoder/bugfix/load_blog_on_all_domains
Make /blog available on all domains
2018-04-13 20:48:58 +02:00
Arvind Tiwari
7d05ab5f5f
Update Changelog 2018-04-13 18:53:21 +05:30
Arvind Tiwari
00be159285
Merge pull request #621 from tiwariav/task/4376/cms_promo_section_link_color
Task/4376 cms promo link color
2018-04-13 18:44:51 +05:30
Arvind Tiwari
9cf89f6481
Merge pull request #619 from tiwariav/task/4367/dcl_email_logo_resolution
Task/4367 dcl email logo resolution
2018-04-13 18:44:20 +05:30
Arvind Tiwari
403f9b5a08 change logo in hosting emails 2018-04-13 17:55:08 +05:30
Arvind Tiwari
5b8b40f967 restore ungleich style 2018-04-13 17:49:27 +05:30
Arvind Tiwari
2536f94058 django parler config fix 2018-04-13 17:44:00 +05:30
Arvind Tiwari
ca480ce9c8 darker shade for hover 2018-04-13 16:23:17 +05:30
Arvind Tiwari
479d6fbd4f change promo link color 2018-04-13 15:45:06 +05:30
Arvind Tiwari
5679289329 replaced cms_menu with static menu 2018-04-12 22:24:50 +05:30
PCoder
0ea9051de1 Change the name of the DCL Calculator Plugin
DCL Caclulator Plugin -> DCL Calculator Section Plugin
Note: We do not change the plugin name itself because it causes
data loss
2018-04-12 08:38:14 +02:00
PCoder
3e1d5ba0e2 Improve string representation of VMPricing object 2018-04-12 08:03:19 +02:00
PCoder
d50f282057 Add create_vm_pricing management command 2018-04-12 08:01:43 +02:00
PCoder
588f513f2a Remove initial VMPricing code from migration 2018-04-12 07:59:04 +02:00
Arvind Tiwari
c0c2dc5c37 larger image used in email 2018-04-12 09:26:30 +05:30
Arvind Tiwari
ebba6d3795 cms page extension favicon 2018-04-12 08:56:24 +05:30
M.Ravi
be72b9628c Add djangocms_blog namespace and urls 2018-04-10 13:21:58 +02:00
PCoder
1116812a99 Correct hdd price in VMPricing init 2018-04-09 21:40:03 +02:00
PCoder
76c9b20cc9 Add VMPricing init migration 2018-04-09 21:34:09 +02:00
PCoder
4d6fdf2de9 Add DCLCalculatorPluginModel and VMPricing models 2018-04-09 21:32:53 +02:00
PCoder
b9d44b510f Merge branch 'master' into task/4379/price_without_vat 2018-04-09 21:20:24 +02:00
PCoder
dd30542f9f Use DCLCalculatorPluginModel in DCLCalculatorPlugin 2018-04-09 21:18:50 +02:00
PCoder
c7afbb32c0 Add DCLCalculatorPluginModel 2018-04-09 21:18:18 +02:00
PCoder
d07cc41d0a Update VMPricing and add get_default_pricing class method 2018-04-09 21:17:48 +02:00
Arvind Tiwari
d53e70be2c
Update Changelog 2018-04-09 03:30:37 +05:30
Arvind Tiwari
a7db7e05b0
Merge pull request #615 from tiwariav/bugfix/4427/fix_navbar_logo_repeat
bugfix/4427 fix navbar logo repeat
2018-04-09 03:27:29 +05:30
Arvind Tiwari
f30719f320
Merge pull request #613 from pcoder/bugfix/footer_links
Bugfix/footer links
2018-04-09 03:27:09 +05:30
Arvind Tiwari
a306f59327
Update mixins.py 2018-04-09 03:12:41 +05:30
Arvind Tiwari
d1347afaff update changelog 2018-04-09 03:10:32 +05:30
Arvind Tiwari
6e95e3d885 merge master 2018-04-09 03:09:05 +05:30
Arvind Tiwari
79b5ff6e2c
Merge pull request #616 from tiwariav/bugfix/4396/ungleich_favicon
Bugfix/4396 ungleich favicon
2018-04-09 03:08:03 +05:30
Arvind Tiwari
5dd29bb09e
Update mixins.py 2018-04-09 03:02:50 +05:30
Arvind Tiwari
4305c5cc41 fix logo link url to ungleich home 2018-04-09 02:46:09 +05:30
Arvind Tiwari
600cc7899a mobile visibility 2018-04-09 02:34:34 +05:30
Arvind Tiwari
f9ce871c5d update changelog 2018-04-09 02:18:34 +05:30
Arvind Tiwari
f4b6949d39 corrected favicon link on pages 2018-04-09 02:16:57 +05:30
Arvind Tiwari
e6629a1357 update changelog 2018-04-09 02:00:42 +05:30
Arvind Tiwari
774b13034d
Merge pull request #614 from tiwariav/bugfix/dcl_migration
bugfix/ dcl migrations
2018-04-09 01:54:37 +05:30
Arvind Tiwari
ff1908d2e6 added navbar-transparent styles to glasfaser.css 2018-04-09 01:52:49 +05:30
Arvind Tiwari
fb7ccff584 remove old migrations from squashed migration 2018-04-09 01:11:45 +05:30
PCoder
2a08c1efd3 Merge branch 'master' into task/4379/price_without_vat 2018-04-08 13:15:41 +02:00
PCoder
30d7785700 Redirect to DCL home on hosting footer for all domains 2018-04-08 08:36:00 +02:00
PCoder
c3dff3155e Redirect the contact link to dcl always 2018-04-08 00:29:39 +02:00
PCoder
698cf7f1ee Fix link in signup message 2018-04-07 13:16:36 +02:00
PCoder
7b1cb975df Fix Method Resolution Order 2018-04-07 13:15:44 +02:00
PCoder
178ff8da38 CMS home page can now be accessed at /cms/ for all sites 2018-04-07 13:13:55 +02:00
PCoder
c6e3963303 Update footer links in dcl _footer.html 2018-04-07 12:55:32 +02:00
PCoder
f911d6b403 Add HostingContextMixin to various hosting views 2018-04-07 12:53:53 +02:00
PCoder
399c91d636 Add HostingContextMixin that sets the REDIRECT_TO_CMS and
MULTISITE_CMS_FALLBACK urls
2018-04-07 12:51:49 +02:00
PCoder
ffe4eb4123 Use REDIRECT_TO_CMS and MULTISITE_CMS_FALLBACK to construct
/hosting footer urls
2018-04-07 10:25:27 +02:00
Pcoder
56f6c87fab
Merge pull request #612 from pcoder/bugifix/cms_redirect_for_multitenant_urls_also
bugfix/Redirect multi-tenant urls to /cms also
2018-04-07 00:13:14 +02:00
PCoder
24a9b8ab78 Redirect multi-tenant urls to /cms also 2018-04-07 00:13:24 +02:00
PCoder
c167e1ca94 Update Changelog for 1.6.4 2018-04-06 22:31:39 +02:00
PCoder
9fca25ec5a Update Changelog 2018-04-06 20:28:15 +02:00
Pcoder
dbc702ebcf
Merge pull request #600 from pcoder/task/4362/fix_need_of_cms_dummy_page
Task/4362/Remove conflicting cms/ urlconf
2018-04-06 20:13:25 +02:00
PCoder
2d5927bc31 Merge branch 'master' into task/4362/fix_need_of_cms_dummy_page 2018-04-06 08:13:47 +02:00
PCoder
7fe5c3f88c Merge branch 'master' into task/4379/price_without_vat 2018-04-06 00:53:29 +02:00
PCoder
28de423a14 Add VMPricing model 2018-04-06 00:51:44 +02:00
Arvind Tiwari
1e81587551
Update Changelog 2018-04-06 03:20:44 +05:30
PCoder
5cb51db6d7 Update .travis.yml
Add code to compile .po files before beginning tests
2018-04-05 23:31:50 +02:00
Arvind Tiwari
a00ce7605b
Merge pull request #608 from tiwariav/bugfix/4377/header_slider_btn_fix
Bugfix/4377 header slider btn fix
2018-04-04 18:43:46 +05:30
Arvind Tiwari
35decd208c merged master 2018-04-04 18:41:43 +05:30
Arvind Tiwari
cb4391b885 Merge remote-tracking branch 'ungleich/master' 2018-04-04 18:41:14 +05:30
Arvind Tiwari
80f4ac52e8 update changelog 2018-04-04 18:36:45 +05:30
Arvind Tiwari
bf2797eccd
Merge pull request #607 from tiwariav/task/4378/navbar_logo_multisite
Task/4378 navbar content on non-cms pages
2018-04-04 18:27:18 +05:30
Arvind Tiwari
c5dba114df update changelog 2018-04-04 18:26:19 +05:30
Arvind Tiwari
7c13def3a2 header btn link fix 2018-04-04 17:55:19 +05:30
Arvind Tiwari
8a390d3661 Merge remote-tracking branch 'ungleich/master' 2018-04-04 17:48:18 +05:30
PCoder
1aa8319feb Change order of ungleich_page namespace 2018-04-04 01:05:05 +02:00
PCoder
035f5c39ae Format code 2018-04-04 00:35:25 +02:00
PCoder
ae4a83bdb8 Remove name for cms.urls 2018-04-04 00:35:12 +02:00
PCoder
9b45b758c4 Add ungleich_page urlconf namespace again 2018-04-04 00:34:29 +02:00
PCoder
0ec29be4ec Use /cms for redirection instead of incorrect namespaces 2018-04-03 23:28:47 +02:00
Arvind Tiwari
ae2dea993d remove whitespace 2018-04-04 02:27:30 +05:30
PCoder
69003c6913 Merge branch 'master' into task/4362/fix_need_of_cms_dummy_page 2018-04-03 22:51:07 +02:00
PCoder
e0df641dbd Merge master into task/4362/fix_need_of_cms_dummy_page 2018-04-03 22:50:00 +02:00
Arvind Tiwari
fe3fcb5100 flake8 fix 2018-04-03 22:51:04 +05:30
Arvind Tiwari
9fbdc56c41 Merge remote-tracking branch 'ungleich/master' into task/4378/navbar_logo_multisite 2018-04-03 22:45:03 +05:30
Arvind Tiwari
d843c34d68 modified cms integrate to support separate content for each domain 2018-04-03 22:41:29 +05:30
Arvind Tiwari
d3c7149098
Update Changelog 2018-04-01 19:11:51 +05:30
Arvind Tiwari
9511428c9d
Merge pull request #606 from tiwariav/task/4373/hosting_login_footer
Task/4373 hosting login footer links
2018-04-01 19:06:13 +05:30
Arvind Tiwari
a1ac65bdee
Update Changelog 2018-04-01 19:05:48 +05:30
Arvind Tiwari
1e6fb26051 hosting login footer fix 2018-04-01 18:45:36 +05:30
PCoder
73c49aa964 Merge branch 'task/4362/fix_need_of_cms_dummy_page' of github.com:pcoder/dynamicweb into task/4362/fix_need_of_cms_dummy_page 2018-04-01 08:16:29 +02:00
PCoder
41d073da3b Remove conflicting cms/ urlconf 2018-04-01 08:14:50 +02:00
PCoder
bf48dc33de Update Changelog 2018-03-31 01:46:40 +02:00
Pcoder
10f6000e9a
Merge pull request #605 from pcoder/bugfix/user_activation_email_style
Bugfix/user activation html email style + some add/correct some DE translations
2018-03-31 01:42:49 +02:00
PCoder
fb29bd0128 [DCL] Add DE translations by Sanghee 2018-03-31 01:28:56 +02:00
PCoder
aa9becdfe7 Reduce space between content and your dcl team 2018-03-31 00:09:49 +02:00
PCoder
bf4f2f0f87 Correct a translation and add new translation 2018-03-30 23:47:27 +02:00
PCoder
07d15a8144 Include password reset link in the text 2018-03-30 23:46:29 +02:00
PCoder
74e69ff313 Add some space between account details and activate email linkpacebetween account details and activate email link 2018-03-30 23:45:11 +02:00
PCoder
b64fe2cb1c Attempt to fix user activation html email template 2018-03-30 23:02:44 +02:00
Arvind Tiwari
e19844d9ac
Update Changelog 2018-03-29 01:42:22 +05:30
Arvind Tiwari
141c6a7c0f
Update common.css 2018-03-29 01:24:18 +05:30
Arvind Tiwari
8708b3a513
Merge pull request #597 from tiwariav/task/4313/hosting_footer_text
Task/4313/hosting_footer_style_fix
2018-03-29 01:20:11 +05:30
Arvind Tiwari
1402c7fde1 footer padding fix 2018-03-29 01:19:10 +05:30
Arvind Tiwari
368fe0d08f merge master 2018-03-29 01:04:26 +05:30
Arvind Tiwari
8b4e0d847d
Merge pull request #601 from tiwariav/task/4315/cms_navbar_to_static
bugfix/ placeholder fields migration
2018-03-29 01:00:52 +05:30
Arvind Tiwari
29a2ee098b fix related name for placeholder fields 2018-03-29 00:58:08 +05:30
Arvind Tiwari
033e542cbc
Merge pull request #599 from tiwariav/task/4315/cms_navbar_to_static
Task/4315/cms navbar and footer integration to application pages
2018-03-29 00:45:40 +05:30
Arvind Tiwari
2b27d56e54 cmsintegrate management command 2018-03-29 00:43:38 +05:30
PCoder
8f6bae6bd6 Remove conflicting cms/ urlconf 2018-03-28 08:53:49 +02:00
Arvind Tiwari
8fc605f5b5 merge 2018-03-27 21:10:21 +05:30
Arvind Tiwari
e7d7cf67b2 add footer and header placeholders 2018-03-27 21:04:44 +05:30
Arvind Tiwari
8beebbf487
Update Changelog 2018-03-27 20:57:46 +05:30
Arvind Tiwari
4de9272389
Merge pull request #598 from tiwariav/bugfix/remove_default_thousand_separator
bugfix/ remove default thousand seperator
2018-03-27 19:41:43 +05:30
Arvind Tiwari
d52c061709 use humanize to add comma to numbers 2018-03-27 19:38:09 +05:30
Arvind Tiwari
bc36849178 cms integration 2018-03-27 19:19:26 +05:30
Arvind Tiwari
52dafc99d3 ungleich gmbh -> ungleich glarus ag, settings page fix 2018-03-27 00:54:44 +05:30
Arvind Tiwari
251d4928e2
Update Changelog 2018-03-26 00:32:53 +05:30
Arvind Tiwari
ba8719269e
Merge pull request #580 from tiwariav/task/3842/de_number_formatting_2
task/3842 de number formatting
2018-03-25 23:10:43 +05:30
Arvind Tiwari
9846cac6da
Merge pull request #596 from tiwariav/task/4266/dcl_cms_promotion_section
Task/4266/dcl cms promotion section
2018-03-25 22:52:23 +05:30
Arvind Tiwari
880ee3af4a padding fix for mobile 2018-03-25 22:16:46 +05:30
Arvind Tiwari
bd23d9462b mobile font fix 2018-03-25 21:06:08 +05:30
Arvind Tiwari
412f1f1508 right section alignment fix 2018-03-25 21:01:59 +05:30
Arvind Tiwari
ee65c61f95 promo heading font size reduced for mobile 2018-03-25 20:49:19 +05:30
Arvind Tiwari
dfe47e43a2 lineheight fix and line break filter 2018-03-23 04:36:40 +05:30
Arvind Tiwari
3484b75d8b calculaotr plugin allows child promo and html plugin 2018-03-23 03:22:29 +05:30
Arvind Tiwari
c3e83599a2 mobile side padding reduced 2018-03-23 02:54:24 +05:30
Arvind Tiwari
a1d01fd1ef wide promo section text maxwidth 2018-03-23 01:47:03 +05:30
Arvind Tiwari
9a57c3341e sectioniconplugin placement fix 2018-03-23 01:27:51 +05:30
Arvind Tiwari
414b783983 fix unreferenced migrations 2018-03-23 01:18:03 +05:30
Arvind Tiwari
d7fc4e686f fix migrations 2018-03-23 01:17:09 +05:30
Arvind Tiwari
d74fdf9472 fix migrations 2018-03-23 01:14:57 +05:30
Arvind Tiwari
5e8f21c8e3 remove template tag 2018-03-23 01:07:53 +05:30
Arvind Tiwari
ef1f19d698 migrations 2018-03-23 00:54:34 +05:30
Arvind Tiwari
8a3ddda93e promo section styling 2018-03-23 00:50:01 +05:30
Arvind Tiwari
d45f9076b5 Merge branch 'master' into task/4266/dcl_cms_promotion_section 2018-03-22 23:43:39 +05:30
Arvind Tiwari
a7193ee243
Update _navbar.html
removed from navbar
- why datacenterlight
- hightlights dropdown

changed contact url to absolute dcl cms landing page
2018-03-22 04:04:40 +05:30
Arvind Tiwari
adee93ca12 merge master 2018-03-22 03:49:06 +05:30
Arvind Tiwari
d454dd4b92
Merge pull request #595 from tiwariav/task/dcl_url_reditect_to_cms
bugfix/ dcl redirect to cms
2018-03-22 03:33:57 +05:30
Arvind Tiwari
6c27e0e6ff redirect form view instead of url 2018-03-22 03:30:43 +05:30
Arvind Tiwari
5184a25215
Merge pull request #594 from tiwariav/task/dcl_url_reditect_to_cms
redirect old dcl landing to cms dcl landing
2018-03-22 03:13:11 +05:30
Arvind Tiwari
748a74f38b redirect from static dcl landing to cms landing 2018-03-22 03:11:20 +05:30
Arvind Tiwari
7654cf55aa
Merge pull request #593 from tiwariav/bugfix/dcl_cms_plugins
Bugfix/ dcl cms plugins
2018-03-22 02:52:08 +05:30
Arvind Tiwari
f1a77d65c4 link target with absolute path on same page scrolls 2018-03-22 02:43:53 +05:30
Arvind Tiwari
50312db5f8 Merge remote-tracking branch 'ungleich/master' into bugfix/dcl_cms_plugins 2018-03-22 02:29:54 +05:30
Arvind Tiwari
102978f879 contact section heading 2018-03-22 02:29:32 +05:30
Arvind Tiwari
8f895a1d5a
Update contact.html 2018-03-22 01:59:45 +05:30
Arvind Tiwari
f9bedf20e0
Update navbar.html
change default url to `/` from `datacenterlight:index`
2018-03-22 01:18:21 +05:30
Arvind Tiwari
389d16931b
Update Changelog 2018-03-22 01:04:41 +05:30
Arvind Tiwari
7ef37de084
Merge pull request #592 from tiwariav/bugfix/dcl_cms_section_iamge_caption
Bugfix/ dcl cms section image caption
2018-03-22 00:59:30 +05:30
Arvind Tiwari
049cf5afa2 fix dcl navbar link navigation 2018-03-22 00:52:59 +05:30
Arvind Tiwari
bbfb37dd8f new plugins section 2018-03-22 00:52:06 +05:30
Arvind Tiwari
db99a40059 break long words to multiple lines 2018-03-21 22:26:43 +05:30
Arvind Tiwari
849cdec0e2 unlocalize vm id 2018-03-21 01:29:28 +05:30
Arvind Tiwari
c9ee9f6ec3 merge master 2018-03-21 01:09:47 +05:30
Arvind Tiwari
d65e678ef7
Merge pull request #591 from tiwariav/task/4278/dcl_cms_navbar_and_header
task/4278 dcl cms navbar and header
2018-03-21 01:00:46 +05:30
Arvind Tiwari
076aaac604 banner list item text set max-width 2018-03-21 00:57:03 +05:30
Arvind Tiwari
759b96f25c banner list item text set max-width 2018-03-21 00:55:20 +05:30
Arvind Tiwari
39d67c84a1 fix lead text size 2018-03-21 00:46:22 +05:30
Arvind Tiwari
e29865b310 fix banner list image size, lead text size 2018-03-21 00:27:35 +05:30
Arvind Tiwari
b252211a69 header btn target accepts id, navbar optional lang dropdown 2018-03-20 02:34:20 +05:30
Arvind Tiwari
b3742ed3f7
Update Changelog 2018-03-17 21:33:24 +05:30
Arvind Tiwari
c7ff4423db
Update navbar.html 2018-03-17 13:12:26 +05:30
Arvind Tiwari
944946e59e
Update cms_models.py 2018-03-17 13:11:42 +05:30
Arvind Tiwari
6ae98b525d
Merge pull request #589 from tiwariav/task/dcl_cms_navbar_logo
bugfix/ navbar plugin model fix
2018-03-17 12:54:50 +05:30
Arvind Tiwari
07e7efd377 add related name to logo fields 2018-03-17 12:51:44 +05:30
Arvind Tiwari
3d52cab02b
Merge pull request #588 from tiwariav/task/dcl_cms_navbar_logo
Task/ dcl cms navbar logo
2018-03-17 12:36:43 +05:30
Arvind Tiwari
9b3b1d547e fix header trans btn hover color 2018-03-16 23:56:45 +05:30
Arvind Tiwari
449683c72f fix flake8 error 2018-03-16 23:50:33 +05:30
Arvind Tiwari
94d291da6d model views refactor 2018-03-16 23:42:40 +05:30
Arvind Tiwari
648905421d fix dcl dark logo 2018-03-16 23:36:02 +05:30
Arvind Tiwari
14b5d90514 dcl cms navbar logo 2018-03-16 15:29:24 +05:30
PCoder
17ceca966c Update Changelog 2018-03-16 09:55:55 +01:00
Pcoder
fdf93428f6
Merge pull request #587 from pcoder/bug/4262/fix_template_name
Bug/4262/fix template name
2018-03-16 09:51:19 +01:00
PCoder
26424fe24e Reformat code 2018-03-16 09:38:35 +01:00
PCoder
f866368e85 Replace other occurrences of strip('public-') with
lstrip('public-')
2018-03-16 09:35:22 +01:00
PCoder
c0c79ebf2b Format code 2018-03-16 09:32:13 +01:00
PCoder
6baf989547 Replace strip with lstrip 2018-03-16 09:32:00 +01:00
Arvind Tiwari
6026b96ead
Update Changelog 2018-03-15 02:31:49 +05:30
PCoder
a54233dcf9 Update Changelog 2018-03-14 21:56:45 +01:00
Pcoder
d70a95b31c
Merge pull request #586 from pcoder/add_missing_analytics_codes
Add analytics codes for devuanhosting.com, ipv6onlyhosting.{com,net}
2018-03-14 21:51:49 +01:00
PCoder
d3faf94b4e Add analytics codes for devuanhosting.com, ipv6onlyhosting.{com,net} 2018-03-14 21:51:43 +01:00
Arvind Tiwari
8ae6d0c67b
Update Changelog 2018-03-15 01:01:03 +05:30
Arvind Tiwari
db9111a94d
Merge pull request #585 from tiwariav/task/4246/dcl_section_cms_full_width
Task/4246 dcl section cms plugin style fix
2018-03-15 00:58:02 +05:30
Arvind Tiwari
4431ddf5ec plugins change image and text order on mobile 2018-03-13 22:38:55 +05:30
Arvind Tiwari
776cd35172 heading font weight 2018-03-13 19:17:04 +05:30
Arvind Tiwari
b7af6ad4e6 headning font weight change 2018-03-13 03:03:28 +05:30
Arvind Tiwari
db3703bedc ehading fix 2018-03-13 02:57:29 +05:30
Arvind Tiwari
6b67cb815c reduce split-titlestyle speciicity 2018-03-13 02:55:55 +05:30
Arvind Tiwari
a29a151453 change font size 2018-03-13 02:34:39 +05:30
Arvind Tiwari
b9a1882080 fix style issues for dcl plugins 2018-03-13 01:52:54 +05:30
PCoder
9dfb53f2f4 Improve Changelog 2018-03-11 22:05:06 +01:00
PCoder
533ff9fed7 Update Changelog 2018-03-11 22:03:22 +01:00
Pcoder
387cb56636
Merge pull request #584 from pcoder/bugfix/do_not_force_calculator_in_DCL_template
Remove datacentelright_content placeholder conf
2018-03-11 21:58:09 +01:00
PCoder
44e913a744 Remove datacentelright_content placeholder conf 2018-03-11 21:24:24 +01:00
PCoder
82d4bf8c47 Update Changelog 2018-03-11 16:38:51 +01:00
Arvind Tiwari
9e41b95c61
Update section_products.html 2018-03-10 04:29:57 +05:30
Arvind Tiwari
46cc722299
Merge pull request #583 from tiwariav/bugfix/dcl_section_background
bugfix/ add gradient to sections
2018-03-10 03:15:10 +05:30
Arvind Tiwari
46b6fb44fa add gradient to sections 2018-03-10 03:14:23 +05:30
PCoder
dafaa13fbc Add devuanhosting.com to ALLOWED_HOSTS 2018-03-09 22:39:45 +01:00
Arvind Tiwari
835592c77f
Update landing-page.css 2018-03-10 02:49:42 +05:30
Arvind Tiwari
cf00cf3977
Update Changelog 2018-03-10 02:33:35 +05:30
Arvind Tiwari
52dd162e66
Update Changelog 2018-03-10 02:29:00 +05:30
Arvind Tiwari
d3765fccd7
Merge pull request #555 from pcoder/task/3452/back_button_mgmt
Task/3452/Back button management and cache control for hosting views
2018-03-10 02:13:55 +05:30
Arvind Tiwari
0260f955a0
Merge pull request #456 from tiwariav/task/3718/downtime_page
Task/3718 downtime page
2018-03-10 01:48:23 +05:30
PCoder
f10191cf89 Merge branch 'master' into task/3452/back_button_mgmt 2018-03-09 19:51:00 +01:00
PCoder
a7a0ec8864 Add no_cache decorators instead of cache_control 2018-03-09 19:49:40 +01:00
Arvind Tiwari
b6888106e5
Merge pull request #579 from tiwariav/task/4119/dcl_cms_plugins
task/4119/dcl_cms_plugins
2018-03-10 00:07:05 +05:30
Arvind Tiwari
89c2d3f1ae dcl cms base fix 2018-03-09 23:28:07 +05:30
Arvind Tiwari
c598a3d6f7
Merge pull request #582 from tiwariav/task/4231/hosting_invoice_footer
Task/4231 hosting add company fiscal number on invoice
2018-03-09 03:57:34 +05:30
Arvind Tiwari
eefe9ba940 company fiscal number added to hosting invoice footer 2018-03-09 03:47:18 +05:30
Arvind Tiwari
9e56857fc2 Merge branch 'task/4119/dcl_cms_plugins' of https://github.com/tiwariav/dynamicweb into task/4119/dcl_cms_plugins 2018-03-09 03:36:22 +05:30
Arvind Tiwari
82b8952595 removed unused tags from templated 2018-03-09 03:35:50 +05:30
PCoder
7cd563fe98 Merge remote-tracking branch 'tiwariav/task/4119/dcl_cms_plugins' into task/4119/dcl_cms_plugins 2018-03-08 19:57:05 +01:00
Arvind Tiwari
e7aa8e6139 undo url change 2018-03-07 19:27:50 +05:30
Arvind Tiwari
fc659cab9f number localization format for de set same as en 2018-03-07 19:22:13 +05:30
Arvind Tiwari
77843dd2cb header font-weight fix, unused code removed 2018-03-06 03:23:14 +05:30
Arvind Tiwari
69de26fa22 mobile image size fix 2018-03-06 00:53:53 +05:30
Arvind Tiwari
fefa5cd5a6 image caption alignment 2018-03-06 00:48:31 +05:30
Arvind Tiwari
5ba5cb07aa banner list alignment fix 2018-03-05 20:51:21 +05:30
Arvind Tiwari
ff635cb7e2 plain section image padding fix 2018-03-05 20:48:30 +05:30
Arvind Tiwari
b73d2529a2 image padding increased 2018-03-05 20:30:33 +05:30
Arvind Tiwari
4c5912ebc0 dropdown target fix 2018-03-05 20:00:31 +05:30
Arvind Tiwari
883118e050 whydcl section style fix, footer style fix 2018-03-05 18:41:13 +05:30
PCoder
75e0571521 Merge branch 'master' into task/3452/back_button_mgmt 2018-03-03 21:50:12 +01:00
PCoder
8d53917826 Update Changelog 2018-03-03 11:41:52 +01:00
PCoder
d933f71fe9 Merge branch 'master' into task/3452/back_button_mgmt 2018-03-03 11:37:41 +01:00
Pcoder
3d965effe5
Merge pull request #577 from ungleich/remove_beta_access
Remove some more beta access resources
2018-03-03 11:32:56 +01:00
Arvind Tiwari
a895f7caa7 squashed migrations 2018-03-02 02:13:20 +05:30
Arvind Tiwari
819848c90c why dcl plugin and id for each section 2018-03-02 02:05:42 +05:30
Arvind Tiwari
b0192ceadb style fix for section images 2018-03-01 01:38:56 +05:30
Arvind Tiwari
c3d8c7878f add scroll to links 2018-03-01 00:32:21 +05:30
Arvind Tiwari
4759d4e1a5 section multi image style 2018-03-01 00:30:20 +05:30
Arvind Tiwari
84d01e16e7 header btn style fix 2018-03-01 00:22:51 +05:30
Arvind Tiwari
0f28b02350 migration fix 2018-02-28 20:52:20 +05:30
Arvind Tiwari
cca555e681 navbar dropdown style 2018-02-28 04:27:32 +05:30
Arvind Tiwari
3cd89e244e minor style fixes 2018-02-28 04:22:48 +05:30
Arvind Tiwari
d85e1c671b All major DCL plugins added 2018-02-28 04:09:19 +05:30
Arvind Tiwari
0d4af5758d
Update Changelog 2018-02-24 20:31:46 +05:30
Arvind Tiwari
00d962a253
Merge pull request #578 from tiwariav/bugfix/dcl_tos_style
bugfix/dcl_tos_style
2018-02-24 20:26:21 +05:30
Arvind Tiwari
8469dd34a5 css style fix 2018-02-24 20:25:14 +05:30
Arvind Tiwari
18ef605e53 fix styles for dcl cms plugin 2018-02-24 20:22:27 +05:30
PCoder
c10dc9f2e2 Remove some more beta access resources 2018-02-24 10:12:32 +01:00
Arvind Tiwari
2b3e834d21
Update Changelog 2018-02-23 23:19:30 +05:30
Arvind Tiwari
5fde3de898
Update agency.css 2018-02-23 21:27:03 +05:30
Arvind Tiwari
bd303d13d5
Update agency.css 2018-02-23 21:24:44 +05:30
Arvind Tiwari
27a77d226e
Update glasfaser.css 2018-02-23 21:09:27 +05:30
Arvind Tiwari
4d31f2bbdc
Merge pull request #570 from tiwariav/task/4150/ungleich_mobile_font
task/4150/mobile_font_alignment
2018-02-23 21:05:27 +05:30
Arvind Tiwari
175a8baee3 font weight fix 2018-02-23 21:01:27 +05:30
Arvind Tiwari
58491c60da Merge branch 'master' into task/4150/ungleich_mobile_font 2018-02-23 20:49:56 +05:30
Arvind Tiwari
8e42f4c8b1
Merge pull request #563 from tiwariav/task/3713/clean_up_css
Task/3713 clean up css
2018-02-23 20:19:26 +05:30
Arvind Tiwari
4376ab4904 Merge remote-tracking branch 'ungleich/master' into task/3713/clean_up_css 2018-02-23 20:09:30 +05:30
Arvind Tiwari
519afe9cd1
Merge pull request #576 from tiwariav/bugfix/hosting_vm_list
bugfix/hosting_vm_list
2018-02-23 20:08:32 +05:30
Arvind Tiwari
ef0b2ea34e renamed sdd_size -> ssd_size 2018-02-23 20:05:24 +05:30
Arvind Tiwari
e9e9da519b fix flake8 warning 2018-02-23 19:05:45 +05:30
Arvind Tiwari
80ed92eece merged master 2018-02-23 18:14:31 +05:30
Arvind Tiwari
d9ee956a29
Merge pull request #575 from tiwariav/bugfix/digitalglarus_error
bugfix/fix url issue
2018-02-23 18:06:49 +05:30
PCoder
1e9716cfe6 Update Changelog 2018-02-23 07:37:59 +01:00
PCoder
9e33168d30 Update Changelog 2018-02-22 23:42:19 +01:00
Pcoder
6b3b86f140
Merge pull request #574 from pcoder/task/3798/fix_dg_logo_redirection
Task/3798/Redirect user to digital glarus on clicking logo in the email
2018-02-22 23:37:53 +01:00
Pcoder
1d1232e617
Merge pull request #573 from pcoder/task/3554/remove_beta_url
Task/3554/Remove beta access resources
2018-02-22 23:32:41 +01:00
Arvind Tiwari
d22b57e011 Merge branch 'master' into task/3713/clean_up_css 2018-02-23 01:38:19 +05:30
Arvind Tiwari
1e7ef77463
Merge pull request #571 from tiwariav/task/4166/dcl_fix_scroll
task/4166/dcl fix scroll
2018-02-23 00:21:18 +05:30
Arvind Tiwari
4b752f31ab Merge branch 'master' into task/3713/clean_up_css 2018-02-22 23:04:09 +05:30
M.Ravi
74a8a28c52 Reorganize imports and fix flake8 error 2018-02-22 18:20:12 +01:00
M.Ravi
35d6fd8fd3 Remove datacenterlight/order-success urlconf, view and template as
we are not using it anymore
2018-02-22 17:53:51 +01:00
Arvind Tiwari
03ea94a404 uncomment url 2018-02-22 20:46:02 +05:30
Arvind Tiwari
26abbbc091 contact section style fix 2018-02-22 18:41:21 +05:30
M.Ravi
488d259ec5 Merge branch 'master' into task/3554/remove_beta_url 2018-02-22 13:58:02 +01:00
Arvind Tiwari
14ec15ff13 stylefix 2018-02-22 17:24:45 +05:30
PCoder
d9760ba203 Use /cms prefix for multisites also 2018-02-22 10:41:34 +01:00
Arvind Tiwari
0879a3e324 fix flake8 issues 2018-02-22 14:18:55 +05:30
PCoder
3f489f5498 Update Changelog for 1.4 2018-02-22 07:32:31 +01:00
Pcoder
059ad0c26a
Merge pull request #572 from pcoder/multisite
Task/4104/Multisite and access control
2018-02-22 07:22:05 +01:00
PCoder
4035ffcfd4 Log the error also 2018-02-22 07:07:26 +01:00
PCoder
6477401093 Remove beta access related email templates 2018-02-22 06:45:58 +01:00
PCoder
d72df9b350 Merge remote-tracking branch 'mainRepo/master' into multisite 2018-02-21 20:19:05 +01:00
M.Ravi
b8db6d708d Rename sdd_size -> ssd_size 2018-02-21 11:46:33 +01:00
M.Ravi
22e18f578e Update Changelog for 1.3.3 2018-02-21 11:41:10 +01:00
Nico Schottelius
2927ca96cb Update allowed hosts with nüglarus.ch 2018-02-21 11:28:45 +01:00
M.Ravi
42bb5bd7a9 Update Changelog 2018-02-21 11:15:05 +01:00
Pcoder
d48f27711c
Merge pull request #567 from tiwariav/task/4105/cms_ungleich_footer_plugin
task/4105 cms footer plugin
2018-02-21 11:12:02 +01:00
PCoder
e8e9b56c94 Redirect user to digital glarus on clicking logo in the email 2018-02-20 20:27:40 +01:00
PCoder
8aeefd7144 Remove datacenterlight/img/beta-img.png and hosting/image/Beta.png
and corresponding references in the code
2018-02-20 19:56:22 +01:00
PCoder
a5ad1a9edf Remove unused beta access templates and js 2018-02-20 19:48:52 +01:00
PCoder
3769e00c8c Fix a PEP8 error 2018-02-20 19:22:28 +01:00
M.Ravi
8ba3bfc89f Dcl migration for removing beta-access related tables 2018-02-20 15:24:41 +01:00
M.Ravi
5f136a9dfe Remove BetaAccess related models 2018-02-20 15:13:12 +01:00
M.Ravi
a90bc3b3ce Remove BetaAccess related forms 2018-02-20 15:11:09 +01:00
M.Ravi
3cdf915b86 Remove more classes related to Beta 2018-02-20 15:06:24 +01:00
M.Ravi
4f1c5d7c77 Remove BetaProgramView 2018-02-20 12:19:30 +01:00
M.Ravi
cc2e18a7d2 Remove /beta_access url from dcl 2018-02-20 11:58:29 +01:00
M.Ravi
3389803493 Remove /beta-program url from dcl 2018-02-20 11:54:42 +01:00
PCoder
fcd11c93c2 Add UNGLEICH_SITE_CONFIGS env variable to travis.yml 2018-02-20 09:23:24 +01:00
PCoder
575835aa05 Load multisite urls using json 2018-02-20 08:48:19 +01:00
PCoder
7f6a66bc16 Update django-multisite version 2018-02-20 08:25:43 +01:00
PCoder
cb102fe622 Use ungleich's fork of djangocms-multisite 2018-02-20 07:20:01 +01:00
PCoder
05e49b04bb Revert back aldryn_newsblog app 2018-02-20 07:05:56 +01:00
PCoder
593c83aeee Autoformat membership/admin.py 2018-02-20 06:58:08 +01:00
PCoder
de4d1bc7c8 Change the multisite url prefix multi to ncms 2018-02-20 06:55:09 +01:00
PCoder
cc4f0dc32d Cleanup unused code from urls_multi 2018-02-20 06:53:29 +01:00
PCoder
c1d98603e6 Obtain value for MULTISITE_CMS_URLS from env 2018-02-20 06:25:02 +01:00
Arvind Tiwari
3bb64478ed merge master 2018-02-19 02:34:23 +05:30
PCoder
d5a0224476 Set FILER_ENABLE_PERMISSIONS to True 2018-02-17 17:01:07 +01:00
PCoder
aa63515ff5 Change url for multi domains 2018-02-17 16:54:11 +01:00
PCoder
4c5ff149f7 Some multisite parameters 2018-02-17 16:52:54 +01:00
PCoder
91d340c4b1 Fix some bugs 2018-02-17 13:11:54 +01:00
PCoder
be3aeb45e7 Remove urls2.py 2018-02-17 11:33:48 +01:00
PCoder
bca2956e06 Rename urls1.py to urls_multi.py 2018-02-17 11:33:28 +01:00
PCoder
c1c8b38cf2 Update multisite cms urls, aliases and fallback urls 2018-02-17 11:30:36 +01:00
M.Ravi
df35fd1f35 Add urls for example1 and example2 2018-02-15 17:58:30 +01:00
M.Ravi
d7d831a831 Comment out debug_toolbar for DEBUG version 2018-02-15 17:57:54 +01:00
M.Ravi
bea1f40b1b Add multisite dependent apps and corresponding settings 2018-02-15 17:37:51 +01:00
M.Ravi
cb5dd8a592 REmove aldryn_newsblog for the moment 2018-02-15 11:58:44 +01:00
M.Ravi
a30e8a6adf Configure multisite SITE_ID 2018-02-15 10:58:06 +01:00
M.Ravi
f62b331919 Add multisite requirements 2018-02-15 10:55:45 +01:00
Arvind Tiwari
aec7f99aee reduce the scroll amount on click of nav menu 2018-02-15 02:11:08 +05:30
Arvind Tiwari
0aa0e6fd6c carousel text style made more specific 2018-02-15 02:02:00 +05:30
Arvind Tiwari
bb6e6da2cb left alignment for mobile text, letter spacing reduced to 0px for headings 2018-02-15 01:55:29 +05:30
Arvind Tiwari
a2d79cfab3
Merge pull request #569 from tiwariav/bugfix/glasfaser_navbar
Bugfix/glasfaser navbar
2018-02-14 05:10:57 +05:30
Arvind Tiwari
7692997c82 minor improvements 2018-02-13 19:03:15 +05:30
M.Ravi
abf316da9e Add Change password functinality while editing a user via admin
site
2018-02-13 03:33:30 +01:00
M.Ravi
16add66ed8 Improve CustomUserAdmin
This is required for managing djangoCMS Users (page) and also
CustomUser via admin site.
2018-02-13 03:04:25 +01:00
M.Ravi
5e68fec29e Add is_staff setter method for CustomUser 2018-02-13 02:42:40 +01:00
M.Ravi
6a9232851a Set CMS_PERMISSION True for per page access control 2018-02-13 02:40:29 +01:00
M.Ravi
7f5866b777 Move djangocms_admin_style above django.contrib.auth in the
INSTALLED_APPS
2018-02-13 02:39:07 +01:00
M.Ravi
74f213e1d5 Set default value for validation_slug 2018-02-13 02:37:03 +01:00
Arvind Tiwari
b99ad38b67 remove yellow from :active state 2018-02-12 03:50:48 +05:30
Arvind Tiwari
c2d048d26b undo style changes inherited from agency.css 2018-02-12 03:44:41 +05:30
Arvind Tiwari
adb0db101d
Update django.po 2018-02-10 22:11:51 +05:30
Arvind Tiwari
6c3cb5edaf dcl footer link color 2018-02-09 07:36:04 +05:30
Arvind Tiwari
39f9dc25e7 fix 404 page 2018-02-09 07:00:36 +05:30
Arvind Tiwari
909067e11f removed vendor files from hosting and using the ones from dataccenterlight 2018-02-09 06:50:17 +05:30
Arvind Tiwari
f42c5a5e20 Merge branch 'master' into task/3713/clean_up_css 2018-02-09 02:20:06 +05:30
Arvind Tiwari
40fa46a85a merge migrations 2018-02-09 02:19:05 +05:30
Arvind Tiwari
daf8d178ad Merge branch 'master' into task/4105/cms_ungleich_footer_plugin 2018-02-09 01:35:42 +05:30
Arvind Tiwari
873c7b6c7c
Merge pull request #560 from tiwariav/task/cms_plugin_remove_unused_headers
Task/4051 remove unused cms header plugins
2018-02-09 01:31:28 +05:30
Arvind Tiwari
a3fa4b138f facebook and youtube url added 2018-02-08 21:26:28 +05:30
Arvind Tiwari
c9e2413c4e removed static_placeholder, added previous default 2018-02-08 20:08:20 +05:30
Arvind Tiwari
effb90feaa modified gitignore 2018-02-08 19:43:43 +05:30
Arvind Tiwari
10c6fd5696 add optimize folder 2018-02-08 19:43:13 +05:30
Arvind Tiwari
4145129974 remove whitespace from output 2018-02-08 19:10:37 +05:30
Arvind Tiwari
b9c53717e3 Merge branch 'master' into task/3713/clean_up_css 2018-02-08 17:11:41 +05:30
Arvind Tiwari
3378bf7562
Merge pull request #559 from tiwariav/task/3995/cms_plugins_padding_fix
Task/3995 galsfaser section cms plugin padding fix
2018-02-08 16:21:50 +05:30
Arvind Tiwari
b0548b6bb4
Update order_detail.html 2018-02-07 19:30:53 +05:30
Arvind Tiwari
3049e84961
Merge pull request #568 from tiwariav/bugifx/order_pdf_resolution
bugfix/invoice_pdf_resolution
2018-02-07 19:15:09 +05:30
Arvind Tiwari
22121fa7bc use the minified js 2018-02-07 19:14:03 +05:30
Arvind Tiwari
d50e249ba2 add static_placeholder for footer to ungleich_cms_page, help text for footer link 2018-02-07 18:37:48 +05:30
Arvind Tiwari
426e56c4f3 help text for copyright text 2018-02-07 18:21:16 +05:30
Arvind Tiwari
e93eda8845 update html2canvas to fix bugs 2018-02-07 02:23:23 +05:30
Arvind Tiwari
69a11a6b06 remove unused template tags 2018-02-07 01:12:11 +05:30
Arvind Tiwari
2ea1a11f2b new footer plugin added 2018-02-07 01:06:03 +05:30
Arvind Tiwari
95370c7562
Update Changelog 2018-02-05 03:26:33 +05:30
Arvind Tiwari
cdd4a8e041
Merge pull request #566 from tiwariav/bugifx/order_pdf_resolution
bugfix/invoice pdf resolution
2018-02-05 03:25:19 +05:30
Arvind Tiwari
d73b0e2fde scale increased to 2 2018-02-05 03:17:33 +05:30
Arvind Tiwari
ff2761912e minor fix 2018-02-05 02:57:46 +05:30
Arvind Tiwari
a43428539f optimize script documentation and report output 2018-02-05 02:47:18 +05:30
Arvind Tiwari
9f05298675 margin reduced for grid items 2018-02-04 19:56:11 +05:30
Arvind Tiwari
1f8fe3cb00 section-heading margin issue fix 2018-02-04 19:33:47 +05:30
Arvind Tiwari
4ebd52cd69 fix user keys layout, adjust @media breakpoints to bs4, fix more unused css, optimize script 2018-02-04 03:20:27 +05:30
Arvind Tiwari
18df2fd647 fix glasfaser page 2018-01-31 05:23:05 +05:30
Arvind Tiwari
527b39c28f fix missing dependency 2018-01-31 04:25:17 +05:30
Arvind Tiwari
6bb7f2f187 create vm error fix, more css optimizations 2018-01-31 04:22:34 +05:30
Arvind Tiwari
9d196416e2 optimize script 2018-01-30 19:09:55 +05:30
Arvind Tiwari
789d8a408f css optimizations 2018-01-30 19:08:36 +05:30
PCoder
4408f54a5c Update Changelog 2018-01-23 22:44:53 +01:00
Pcoder
b1099d20b9
Merge pull request #558 from pcoder/task/4046/compute_hdd_sdd
Task/4046/Add sdd_size, hdd_size to VirtualMachineSerializer
2018-01-23 22:40:11 +01:00
PCoder
d7ce4ef4c5 Update Changelog 2018-01-23 22:07:33 +01:00
Pcoder
5595bf9b9f
Merge pull request #562 from pcoder/task/3670/shorten_ssh_key_name
Task/3670/shorten ssh key name
2018-01-23 22:01:51 +01:00
PCoder
58eec62fc3 Update Changelog 2018-01-23 21:51:51 +01:00
Pcoder
effb8ab37b
Merge pull request #565 from pcoder/task/4049/replace_blog_image
Update blog header background image
2018-01-23 21:47:10 +01:00
PCoder
5f127ceb3d Compress blog background image 2018-01-23 21:43:11 +01:00
PCoder
2549d70ca4 Update blog header background image 2018-01-22 00:13:53 +01:00
Arvind Tiwari
a7a3c1cc15 removed unused styles 2018-01-18 23:42:09 +05:30
Arvind Tiwari
b5cc0d4d1f removed sekizai 2018-01-17 18:04:11 +05:30
Arvind Tiwari
a374421963 order details page 2018-01-17 17:32:32 +05:30
Arvind Tiwari
fb6ddd3512 moved styles to common.css, removed more unused styles 2018-01-17 16:31:46 +05:30
PCoder
63906a3b8a Update Changelog for 1.3.2 2018-01-16 00:32:28 +01:00
Pcoder
dcef5e5af2
Merge pull request #564 from pcoder/add_tos_to_dcl_footer
Add tos to dcl footer
2018-01-16 00:27:46 +01:00
PCoder
71071bf9ed Update dcl's django.po: Add translation for - Terms of Use 2018-01-16 00:13:40 +01:00
PCoder
b88c19c2c9 Add terms-of-service item to dcl's footer 2018-01-16 00:11:32 +01:00
Arvind Tiwari
4fd761c396 removed unused classes from datacenterlight css files 2018-01-10 02:47:25 +05:30
Arvind Tiwari
df22255104 remove unused scripts and links, mve styles for dcl into dcl 2018-01-09 22:12:53 +05:30
PCoder
dd9b0d8fd9 Refactor dcl's ssh key name prefix to DCL_SSH_KEY_NAME_PREFIX 2018-01-08 19:50:42 +01:00
PCoder
0706ac5909 Shorten generated ssh key and add seconds to the name 2018-01-08 19:35:39 +01:00
Arvind Tiwari
0697492ab8 removed unused css files 2018-01-08 07:36:30 +05:30
Arvind Tiwari
12fe1fa722
Update Changelog 2018-01-08 02:45:16 +05:30
Arvind Tiwari
eed63b1cf1
Merge pull request #561 from tiwariav/bugfix/4067/ungleich_landing_navbar
bugfix/4067 ungleich landing navbar fix
2018-01-08 02:44:27 +05:30
Arvind Tiwari
24bd5a1880 navbar closes on click, smooth scroll enabled 2018-01-08 02:33:04 +05:30
Arvind Tiwari
157cc5ac5d fix datacenterlight templates 2018-01-08 00:56:54 +05:30
Arvind Tiwari
205274be42 removed ununsed templates 2018-01-07 20:40:38 +05:30
PCoder
aff4288cd9 Update Changelog 2018-01-07 09:29:54 +01:00
Pcoder
5ad2f2c429
Merge pull request #557 from pcoder/bug/4000/replace_ungleichcom_ungleichch
Replace all ungleich.com with ungleich.ch
2018-01-07 09:26:27 +01:00
PCoder
6dd69b24fa Replace another occurrence in a commented block 2018-01-07 08:42:52 +01:00
Arvind Tiwari
3ef2aa4bfb removed unused header plugins 2018-01-05 18:31:24 +05:30
Arvind Tiwari
74626a59dc galsfaser section cms plugin extra padding fix 2018-01-05 05:18:35 +05:30
PCoder
b4fbd59144 Merge branch 'master' into task/4046/compute_hdd_sdd 2018-01-03 09:22:25 +01:00
PCoder
c368aa0272 Merge branch 'master' into bug/4000/replace_ungleichcom_ungleichch 2018-01-03 08:59:48 +01:00
PCoder
3d1738871b Replace all ungleich.com with ungleich.ch 2018-01-03 08:54:19 +01:00
PCoder
43999d803a Add sdd_size, hdd_size to VirtualMachineSerializer 2018-01-03 08:43:57 +01:00
PCoder
554335ae19 Update Changelog for 1.3.1 2017-12-31 18:28:41 +01:00
Pcoder
e85993eabf
Merge pull request #556 from pcoder/feature/use_email_smarthost
Obtain email host, port and tls settings from env
2017-12-31 18:14:46 +01:00
PCoder
ace2abc47e Obtain email host, port and tls settings from env 2017-12-31 00:58:37 +01:00
Arvind Tiwari
a4ff33f0fd
Update Changelog 2017-12-29 18:50:58 +05:30
PCoder
f5db08e3df Update psycopg2 from 2.7.1 to 2.7.3.2 2017-12-28 13:14:59 +01:00
PCoder
f2f1c61739 Remove margin from a tags for explanation text 2017-12-27 23:59:40 +01:00
PCoder
b0993d8728 Fix address: Bahnhotstrasse to Bahnhofstrasse 2017-12-27 23:44:27 +01:00
PCoder
34f841afd4 Update Changelog 2017-12-27 21:47:29 +01:00
PCoder
23c4069ebd Update Changelog for release 1.3 2017-12-27 21:31:53 +01:00
Pcoder
e497616c1e
Merge pull request #554 from pcoder/task/3994/dg_add_signup_clarification_line
Task/3994/Add DG signup clarification line
2017-12-27 21:27:46 +01:00
PCoder
2c6204de9b Merge branch 'task/3994/dg_add_signup_clarification_line' of https://github.com/pcoder/dynamicweb into task/3994/dg_add_signup_clarification_line 2017-12-27 21:18:43 +01:00
PCoder
a743e4e8a0 Merge branch 'master' into task/3994/dg_add_signup_clarification_line 2017-12-27 21:18:13 +01:00
PCoder
01b8266b61 Update Changelog 2017-12-27 20:37:34 +01:00
Pcoder
9c513e667f
Merge pull request #553 from pcoder/task/3799/dg_monthly_subscription
Task/3799/dg monthly subscription
2017-12-27 20:29:39 +01:00
PCoder
0abd165c8e Skip test_post if Stripe API key is not provided 2017-12-27 20:21:37 +01:00
PCoder
3189568884 Send emails to admin when Stripe transaction error 2017-12-27 20:04:29 +01:00
PCoder
2ed8df721b Merge branch 'master' into task/3799/dg_monthly_subscription 2017-12-27 19:28:38 +01:00
M.Ravi
e6931534ab Load i18n in ungleich_page's _header_with_background_video_slider_item.html 2017-12-27 18:09:50 +01:00
M.Ravi
251b5d7495 Remove a whitespace 2017-12-27 11:03:12 +01:00
PCoder
1395c04a00 Add cache_control to CreateVirtualMachinesView and VirtualMachineView 2017-12-27 09:10:41 +01:00
PCoder
639e4cf414 Add get method and cache_control to OrdersHostingListView 2017-12-27 09:09:54 +01:00
PCoder
14ff876fbf Add cache_control to PaymentVMView and OrdersHostingDetailView 2017-12-27 09:06:46 +01:00
PCoder
ab06eeff67 Add cache_control to SSHKEyCreateView and SettingsView post methods 2017-12-27 09:04:58 +01:00
PCoder
98e06686f9 Add get method and cache_control to SignupValidatedView 2017-12-27 09:03:17 +01:00
PCoder
bec541c06a Add get method to hosting.SignupView and cache_control 2017-12-27 08:33:53 +01:00
PCoder
87cdb08f3c Change success_url in hosting.SignupView from ssh_keys to dashboard 2017-12-27 08:32:55 +01:00
PCoder
72baa3635b Add cache_control decorator to LoginViewMixin 2017-12-27 08:31:19 +01:00
PCoder
d796272c10 Add cache_control headers to get and post methods 2017-12-25 15:54:23 +01:00
PCoder
f357c83fc4 Remove cache_control headers from Classes 2017-12-25 15:53:24 +01:00
PCoder
b4f03b9553 Add cache_control decorator to all hosting views 2017-12-25 15:10:34 +01:00
PCoder
dd54b3052e Reorganize imports 2017-12-25 15:07:12 +01:00
PCoder
3489640afe Add DG signup clarification line 2017-12-24 21:17:52 +01:00
PCoder
96ba93e206 Merge branch 'master' into task/3799/dg_monthly_subscription 2017-12-24 19:48:35 +01:00
PCoder
fe6bd2a807 Update Changelog 2017-12-24 19:37:29 +01:00
Pcoder
ed6e39d955
Merge pull request #552 from pcoder/bug/3993/dg_new_user_membership_payment
Set cardholder_name field for UserBillingAddressForm
2017-12-24 19:33:12 +01:00
PCoder
a3f212a59e Fix PEP8 error 2017-12-24 18:33:24 +01:00
PCoder
a34bd83c5e Refactor reactivate link html 2017-12-24 18:07:30 +01:00
PCoder
ca2a90ca2d On reactivate, take user to pricing page 2017-12-24 18:06:17 +01:00
PCoder
89d70a2b6a Fix bug: rename subscription_id to stripe_subscription_id 2017-12-24 15:04:20 +01:00
PCoder
eb067f5708 Refactor code and log messages for possible errors 2017-12-24 14:38:32 +01:00
PCoder
29c24574aa Cancel subscription on membership deactivation + some more reorganizes + import logger 2017-12-24 14:26:40 +01:00
PCoder
707e1897b3 Reorganize imports 2017-12-24 14:23:33 +01:00
PCoder
63215b1c42 Organize imports 2017-12-24 13:35:53 +01:00
PCoder
b19c3bdcde Reformat code 2017-12-24 13:15:48 +01:00
PCoder
b4421bc9b2 Reformat code 2017-12-24 13:06:23 +01:00
PCoder
f6d0b6ce9c Add stripe_subscription_id to MembershipOrder data 2017-12-24 12:54:59 +01:00
PCoder
3ed6119dc9 Check if DG subscription created was under trial; if not show error 2017-12-24 12:53:23 +01:00
PCoder
f5170cce5f Call DG subscribe_customer_to_plan with trial period until first of next month 2017-12-24 12:51:16 +01:00
PCoder
3826ca207a Reformat code 2017-12-24 12:48:03 +01:00
PCoder
11b8ebe401 Import time 2017-12-24 12:46:36 +01:00
PCoder
0091281357 Add next_month_in_sec_since_epoch MembershipType function 2017-12-24 12:45:59 +01:00
PCoder
6fa8dbb5cb Add trial_end parameter to subscribe_customer_to_plan 2017-12-24 12:32:08 +01:00
PCoder
b2d0fd45ad Fix PEP8 error 2017-12-24 00:21:25 +01:00
PCoder
872582f45f Add tentative code to subscribe customer to Stripe plan (wip) 2017-12-24 00:08:17 +01:00
PCoder
f226c551a8 Add stripe_subscription_id field to MembershipOrder 2017-12-24 00:06:21 +01:00
PCoder
10bc05f700 User customer's name instead of email for cardholder_name if not provided 2017-12-23 23:07:53 +01:00
PCoder
1f85273fd0 Set cardholder_name field for UserBillingAddressForm in digital glarus membership payment post 2017-12-23 22:59:16 +01:00
PCoder
5662cc44c8 Update Changelog 2017-12-23 18:19:10 +01:00
Pcoder
a7bd6560d1
Merge pull request #550 from pcoder/task/3973/change_dcl_contact_info
Update datacenterlight and glasfaser contact address
2017-12-23 18:15:38 +01:00
PCoder
959e624de8 Fix opening for p tag 2017-12-23 18:08:57 +01:00
PCoder
94b1051e85 Update glasfaser contact address too 2017-12-23 18:06:37 +01:00
PCoder
815b5392ac Merge branch 'master' into task/3973/change_dcl_contact_info 2017-12-23 07:38:28 +01:00
PCoder
9df6bd354d Update Changelog 2017-12-23 07:12:07 +01:00
Pcoder
f7f8a1e1d7
Merge pull request #548 from pcoder/task/3601/reduce_min_ram_to_1G
Change minimum required RAM from 2GB to 1GB
2017-12-23 07:07:07 +01:00
PCoder
a753c8d582 Merge remote-tracking branch 'mainRepo/master' into task/3601/reduce_min_ram_to_1G 2017-12-23 06:59:31 +01:00
Arvind Tiwari
f013ac3db4
Update Changelog 2017-12-23 05:38:24 +05:30
Arvind Tiwari
41a45f32bb
Merge pull request #551 from tiwariav/bugfix/ungleich_landing
bugfix/punctuation fix
2017-12-23 05:28:50 +05:30
Arvind Tiwari
810a540d08 punctuation fix 2017-12-23 05:22:21 +05:30
PCoder
4870649e93 Update datacenterlight contact address 2017-12-23 00:49:50 +01:00
Arvind Tiwari
6ea012571a
reduce section padding 2017-12-23 04:56:45 +05:30
PCoder
b91260bf26 Merge remote-tracking branch 'mainRepo/master' into task/3601/reduce_min_ram_to_1G 2017-12-23 00:16:05 +01:00
Arvind Tiwari
f26f43e391
Merge pull request #549 from tiwariav/bugfix/ungleich_landing
bugfix/text fix for ungleich landing page
2017-12-23 04:44:01 +05:30
PCoder
6c017d1581 Remove commented translation 2017-12-22 23:59:51 +01:00
Arvind Tiwari
4c73dddb6d text fix for landing 2017-12-23 04:29:31 +05:30
PCoder
57c5255708 Update translation in DE : 200 to 2000 2017-12-22 23:37:49 +01:00
PCoder
3a558c86a6 Merge branch 'master' into task/3601/reduce_min_ram_to_1G 2017-12-22 23:27:32 +01:00
PCoder
3e48b936f4 Update Changelog 2017-12-22 23:03:58 +01:00
Pcoder
bbd02687c9
Merge pull request #511 from pcoder/task/3774/update_stripe_subscription_on_vm_delete
Task/3774/update stripe subscription on vm delete
2017-12-22 22:46:02 +01:00
PCoder
485a7e1897 Merge mainRepo/master into task/3601/reduce_min_ram_to_1G 2017-12-22 22:10:08 +01:00
PCoder
a0774ca0d4 Merge remote-tracking branch 'mainRepo/master' into task/3774/update_stripe_subscription_on_vm_delete 2017-12-22 22:06:38 +01:00
Arvind Tiwari
8fad2ef09d
Merge pull request #542 from tiwariav/task/video_cover
video slider cms plugin
2017-12-23 02:18:31 +05:30
Arvind Tiwari
fc9b901f9a translations added 2017-12-22 01:06:55 +05:30
Arvind Tiwari
48eacef8ef typographical fixes 2017-12-22 00:59:53 +05:30
PCoder
3852ce04de Set default RAM value to 2G in landing and hosting VM calculators 2017-12-21 08:41:29 +01:00
PCoder
979a62f120 Merge branch 'master' into task/3774/update_stripe_subscription_on_vm_delete 2017-12-21 02:04:17 +01:00
PCoder
4dff4e07cb Change minimum required RAM from 2GB to 1GB 2017-12-21 01:25:52 +01:00
Pcoder
02bb3305a1
Merge pull request #547 from ungleich/update_psycopg2
Update psycopg2 from 2.6.1 to 2.7.1
2017-12-21 00:10:19 +01:00
PCoder
9194e64cc6 Merge branch 'master' into update_psycopg2 2017-12-21 00:03:32 +01:00
PCoder
2308726aaa Add DE translation for 404 page text 2017-12-20 23:44:30 +01:00
PCoder
39c4338b46 Update Changelog 2017-12-20 23:06:30 +01:00
Pcoder
5572a3199b
Merge pull request #544 from pcoder/task/3974/improve_invoice_number
Task/3974/improve invoice number
2017-12-20 23:02:44 +01:00
PCoder
4ee2ab8c45 Merge branch 'master' into task/3974/improve_invoice_number 2017-12-20 22:52:51 +01:00
PCoder
2628312bb9 Fix a bug and update delete vm email subject 2017-12-20 22:26:36 +01:00
PCoder
77002a1c9e Revert back celery task for delete_vm. Better to do it in another PR. 2017-12-20 21:32:10 +01:00
PCoder
0634a1a41f Merge branch 'master' into task/3774/update_stripe_subscription_on_vm_delete 2017-12-20 21:28:55 +01:00
PCoder
f61abf44c8 Remove unused import 2017-12-20 21:28:07 +01:00
PCoder
96de92d312 Reorganize code 2017-12-20 20:59:46 +01:00
Arvind Tiwari
88369d55a5 using new header slider 2017-12-20 02:53:26 +05:30
Arvind Tiwari
39d2697e30 merge master and fixed migration conflict 2017-12-20 01:36:38 +05:30
Arvind Tiwari
78ad99f757 fix migration 2017-12-20 01:05:40 +05:30
Arvind Tiwari
80e08c1b40 video cms plugin 2017-12-19 22:25:27 +05:30
Arvind Tiwari
66d1e4e046 padding fix for text 2017-12-19 19:53:06 +05:30
PCoder
7d683e1257 Move Stripe subscription cancelation before deleting vm 2017-12-17 20:20:42 +01:00
PCoder
78fa06aa94 Log exception details 2017-12-17 19:35:38 +01:00
PCoder
8356c3bf95 Refactor some code 2017-12-17 19:27:45 +01:00
PCoder
f611e25538 Update psycopg2 from 2.6.1 to 2.7.1
psycopg2-2.6.1 was throwing this error while running automated tests:

     Error: could not determine PostgreSQL version from '10.1'
2017-12-15 08:48:53 +01:00
Arvind Tiwari
955331f64b carousel height changed to min height, other style fixes 2017-12-15 01:34:07 +05:30
Arvind Tiwari
f4fb2e5d13
Update Changelog 2017-12-13 23:42:17 +05:30
Arvind Tiwari
db408e5916
Merge pull request #543 from tiwariav/task/3972/ungleich_info_invoice_page
Task/3972/invoice page footer
2017-12-13 23:40:37 +05:30
PCoder
b4e26ac51f Add delete_vm_task (wip) 2017-12-12 23:56:39 +01:00
PCoder
a04aa8542d Add some logger debug messages 2017-12-12 22:55:30 +01:00
PCoder
ef202833b2 Merge branch 'master' into task/3774/update_stripe_subscription_on_vm_delete 2017-12-12 21:40:53 +01:00
PCoder
546d7fe5eb Update Changelog 2017-12-12 21:31:13 +01:00
Pcoder
769d2df585
Merge pull request #546 from pcoder/task/3911/integrate_resend_activation_link
This PR proposes two minor changes.

    1. Add "resend activation link" to landing payment page
    2. Use target = _blank for the links, so that they open corresponding pages in a new window
2017-12-12 21:26:55 +01:00
PCoder
a339f65170 Correct _target to target and blank to _blank 2017-12-12 21:02:18 +01:00
PCoder
56962d5fdf Use target=_blank for links in landing payment page 2017-12-12 20:58:07 +01:00
PCoder
54185792cf Add resend activation link in the landing payment page 2017-12-12 20:48:47 +01:00
PCoder
1306dbe46a Merge branch 'master' into task/3774/update_stripe_subscription_on_vm_delete 2017-12-12 20:23:25 +01:00
M.Ravi
88afdc1dd1 Removed unwanted logger debug msg 2017-12-12 16:49:50 +01:00
M.Ravi
24d85d5086 Check has_perm only for invoices 2017-12-12 15:43:25 +01:00
M.Ravi
091b277f7d Correct call to has_perm 2017-12-12 12:42:40 +01:00
M.Ravi
57311eda73 Improve debug logs 2017-12-12 12:14:39 +01:00
PCoder
79b4b449d1 Add some logger messages 2017-12-12 09:53:19 +01:00
PCoder
beefeb62cb Raise 404 for HostingOrder not belonging to user 2017-12-12 09:38:08 +01:00
Arvind Tiwari
8d64915d71 invoice footer added 2017-12-11 00:47:55 +05:30
PCoder
6c81ffbdda Update Changelog for 1.2.13 2017-12-09 18:54:28 +01:00
PCoder
2fcb96b209 Remove <p> tag for ungleich cms customer item template 2017-12-09 18:30:39 +01:00
PCoder
8fac9758b1 Update Changelog 2017-12-09 17:28:39 +01:00
Pcoder
8f89363126
Merge pull request #541 from pcoder/ungleich_cms_update_background_slider
Ungleich cms update background slider
2017-12-09 17:22:04 +01:00
PCoder
180539df9a Update Changelog for 1.2.12 2017-12-09 16:37:10 +01:00
PCoder
ef7352a891 Add width: 100% to #portfolio .portfolio-item .portfolio-caption 2017-12-09 16:31:34 +01:00
PCoder
4fd3be2776 Update Changelog 2017-12-09 07:21:35 +01:00
Arvind Tiwari
6515195af5 digitalglarus logo alignment fix 2017-12-09 05:19:07 +05:30
Arvind Tiwari
b9f232ac0a unlgiech logo alignment fix 2017-12-09 05:17:27 +05:30
Arvind Tiwari
2747460184 auto slide carousel 2017-12-09 05:03:46 +05:30
Arvind Tiwari
288416ede9 header text background options 2017-12-09 04:37:37 +05:30
Arvind Tiwari
8af5e2d0af overlay 2017-12-08 03:26:11 +05:30
Arvind Tiwari
207064ed64 text shadow added 2017-12-08 03:19:20 +05:30
Arvind Tiwari
d723e4b1e4 video for 3rd slide 2017-12-08 02:03:33 +05:30
Arvind Tiwari
aba0fa4256 video urls changed 2017-12-08 02:00:59 +05:30
Arvind Tiwari
13d3419cd5 video cover 2017-12-07 23:40:14 +05:30
Arvind Tiwari
ed873ca59f
Merge pull request #532 from tiwariav/task/3594/digitalglarus_responsive_scrollbar_fix
task/3594 digitalglarus landing page fix
2017-12-05 17:28:26 +05:30
PCoder
c24d81042b Merge branch 'master' into task/3747/multiple_cards_support 2017-12-04 00:03:11 +01:00
PCoder
2d3833958e Update Changelog 2017-12-03 23:52:30 +01:00
Pcoder
2d26c58f9f
Merge pull request #540 from ungleich/enable_logging_custom_modules
Enable logging custom modules
2017-12-03 22:59:59 +01:00
PCoder
f7c606906c Rearrange code 2017-12-02 08:54:27 +01:00
PCoder
9beacd6f6a Introduce ungleich Header with Background and Image Slider plugin 2017-12-02 08:45:31 +01:00
PCoder
0ca4a83860 Update Changelog 2017-12-02 05:37:49 +01:00
Pcoder
7f38560aa2
Merge pull request #538 from tiwariav/task/3905/ungleich_header_slider
Task/3905/ungleich landing header slider
2017-12-01 21:45:28 +01:00
PCoder
77209921f9 Some more refactoring 2017-12-01 21:03:59 +01:00
Arvind Tiwari
bb159f17d3 software logos layout reverted back 2017-12-02 00:20:12 +05:30
Arvind Tiwari
9e4d229a90 rows flex fix 2017-12-01 23:49:01 +05:30
Arvind Tiwari
9c8910a1ff row flex removed 2017-12-01 23:23:11 +05:30
Arvind Tiwari
b2d6874090 softwares image links style to block 2017-12-01 21:07:00 +05:30
Arvind Tiwari
93d706e97d timleine heading margin bottom fix 2017-12-01 20:43:55 +05:30
Arvind Tiwari
eaf16822bd html restructure 2017-12-01 20:40:09 +05:30
Arvind Tiwari
403677aef9 merged task/3857/unlgeich_about_section_update 2017-12-01 20:23:00 +05:30
Arvind Tiwari
13ac77268b images updated for about section 2017-12-01 20:21:21 +05:30
Arvind Tiwari
02286e6657 image tags height width fixed 2017-12-01 19:15:00 +05:30
Arvind Tiwari
43df58d972 landing page software images resized 2017-12-01 19:03:33 +05:30
Arvind Tiwari
80f5393d08 Merge branch 'master' into task/3905/ungleich_header_slider 2017-12-01 18:18:45 +05:30
Arvind Tiwari
35a7233ae8 smaller header image 2017-12-01 17:57:39 +05:30
PCoder
89bc864b35 Update Changelog for 1.2.11 2017-11-30 21:21:34 +01:00
PCoder
4b88931ab6 Remove data-replaced image in ungleich CMS services item plugin template 2017-11-30 21:16:45 +01:00
PCoder
b6e734d84e Refactor code 2017-11-29 07:32:17 +01:00
PCoder
6e82add935 Rename debug.log to django-debug.log and refactor MODULES_TO_LOG_LEVEL 2017-11-29 07:07:03 +01:00
M.Ravi
137b45c12c Enable logging custom modules 2017-11-29 06:45:09 +01:00
Arvind Tiwari
cdca727a34 logo alignment fix 2017-11-29 04:02:52 +05:30
Arvind Tiwari
18a0713cda Merge branch 'master' into task/3857/unlgeich_about_section_update 2017-11-29 03:44:37 +05:30
Arvind Tiwari
5a85ee003f mobile fixes 2017-11-29 03:43:08 +05:30
Arvind Tiwari
8121393cd0 lear more btn on slider 2017-11-29 03:18:58 +05:30
Arvind Tiwari
86a941ae32 testimonial carousel height 2017-11-29 02:58:44 +05:30
Arvind Tiwari
bb8195bc0a contact section background, logos width 2017-11-29 02:56:31 +05:30
Arvind Tiwari
1d3307043e mobile text size and alignment fix 2017-11-29 01:30:50 +05:30
Arvind Tiwari
3eebed6245 about section heading margin fix 2017-11-29 00:55:13 +05:30
Arvind Tiwari
f9488b28f8 style fixes for mobile 2017-11-28 05:46:27 +05:30
Arvind Tiwari
07d1a61219 more style fixes 2017-11-27 18:57:56 +05:30
Arvind Tiwari
add395025a slider styles fix 2017-11-27 18:37:44 +05:30
Arvind Tiwari
2d05720016 merged master 2017-11-27 16:30:42 +05:30
PCoder
272e14f712 Update hosting django.po 2017-11-27 08:43:34 +01:00
PCoder
4a30438704 Update datacenterlight django.po 2017-11-27 08:38:10 +01:00
Pcoder
35d6c90b14
Update README.rst 2017-11-27 08:14:35 +01:00
PCoder
5e2c40f1a5 Fix flake8 warnings 2017-11-27 08:03:59 +01:00
PCoder
2102a89cdc Test if PEP8 warnings can be detected in travis build 2017-11-27 07:56:28 +01:00
PCoder
1e20b9404f Check if python 3.4.2 is a supported version 2017-11-27 07:29:46 +01:00
PCoder
dfbc46e998 Remove python 3.6 and coverage to shorten ci build 2017-11-27 07:11:40 +01:00
Pcoder
87eb5682e3
Update README.rst: add master build status image 2017-11-27 07:02:03 +01:00
PCoder
33dd0a892b Revert back to old ungleich header code 2017-11-27 00:14:05 +01:00
PCoder
b8a9dbfa0b Update Changelog 2017-11-26 23:33:53 +01:00
Pcoder
8d066cb66d
Merge pull request #465 from pcoder/task/3672/cleaning_existing_tests
Task/3672/Clean old test code
2017-11-26 23:27:48 +01:00
PCoder
45777878d7 Merge branch 'master' into task/3672/cleaning_existing_tests 2017-11-26 23:19:04 +01:00
PCoder
362609db73 Update Changelog 2017-11-26 21:26:04 +01:00
Pcoder
4034487ee4
Merge pull request #537 from pcoder/task/3843/generic_ungleich_cms_template
Task/3843/generic ungleich cms template
2017-11-26 21:22:05 +01:00
PCoder
cb198313e7 Merge branch 'master' into task/3843/generic_ungleich_cms_template 2017-11-26 21:19:52 +01:00
PCoder
9ad8f66318 Add build status image to README 2017-11-26 11:17:41 +01:00
PCoder
59fdf5dd23 travis: add test 2017-11-26 04:35:46 +01:00
PCoder
5ebc84328d travis: use coverage 2017-11-26 04:15:04 +01:00
PCoder
a97fe6645b .travis.yml: Provide all env variables together 2017-11-26 02:38:13 +01:00
PCoder
b210c982a4 Update .travis.yml 2017-11-26 02:19:19 +01:00
PCoder
94f0921168 Fix flake8 warning 2017-11-26 01:51:03 +01:00
PCoder
d466c56a17 Correct skipIf conditions 2017-11-26 01:49:54 +01:00
PCoder
273fa75d55 Fix PEP8 warnings 2017-11-26 01:12:16 +01:00
PCoder
2bc4db1cab Add skipif to tests that require connecting to OpenNebula 2017-11-26 00:55:14 +01:00
PCoder
a9a77cd6ac Add Stripe key to skipif condition for CeleryTaskTestCase 2017-11-26 00:06:58 +01:00
PCoder
e95967c668 Update skipif condition for dcl.tests.test_create_vm_task 2017-11-26 00:01:40 +01:00
PCoder
07ffbcda97 Add skipIf condition for utils.tests.TestStripeCustomerDescription 2017-11-25 23:57:58 +01:00
PCoder
8c5848c1aa Update skipif condition 2017-11-25 23:14:40 +01:00
PCoder
3284adaf7a Add cardholder_name to data in BillingAddressFormTest 2017-11-25 22:37:00 +01:00
PCoder
7656caedcf Comment out code in test membership.tests.LoginTestCase 2017-11-25 22:30:53 +01:00
PCoder
a0e36adebc Put skipIf condition at correct place 2017-11-25 21:56:48 +01:00
PCoder
7be92c72d4 Add skipIf condition to create_vm_task 2017-11-25 21:49:04 +01:00
PCoder
7104d74bda membership.tests.LoginTestCase: Comment out asserts 2017-11-25 21:32:57 +01:00
PCoder
a3525c1d18 SignupViewTest.test_anonymous_user_can_signup: Commented out user comparison in context 2017-11-25 21:22:59 +01:00
PCoder
3715b969b6 Comment out PaymentVMViewTest.test_post 2017-11-25 21:17:27 +01:00
PCoder
89ac6250f1 Add validated=1 to users created in utils.tests 2017-11-25 20:19:22 +01:00
Arvind Tiwari
523c7ff856 translation file fix 2017-11-26 00:35:23 +05:30
PCoder
57170b55be Update site_name used in PasswordResetViewMixin 2017-11-25 20:02:41 +01:00
PCoder
ddf69accdf Set validated=1 for user created in hosting.test_views.LoginViewTest 2017-11-25 19:44:19 +01:00
PCoder
baf00b1a8b Remove context assertion in HostingPricingViewTest 2017-11-25 19:34:31 +01:00
PCoder
4c63a7d138 Remove assert comparison of contexts for the time-being 2017-11-25 19:28:58 +01:00
PCoder
ff43e748af Set validated=1 when creating user in test 2017-11-25 19:23:18 +01:00
PCoder
1dc5bb9bc8 Use /cms in digitalglarus.test_views.ViewsTest 2017-11-25 19:12:08 +01:00
Arvind Tiwari
e0f2fb2f1f digitalglarus history html fix 2017-11-25 23:37:02 +05:30
PCoder
4d68f3bcbe Reformat code 2017-11-25 18:52:00 +01:00
Arvind Tiwari
9156e35f97 Merge branch 'master' into task/3594/digitalglarus_responsive_scrollbar_fix 2017-11-25 23:09:34 +05:30
PCoder
01aadefd6c Comment code that fails assertion 2017-11-25 12:39:56 +01:00
PCoder
3b6f047693 Comment out erroneous test code 2017-11-25 12:26:12 +01:00
Arvind Tiwari
71a522977f glasfaser height fix, about section last image fix, testimonials logo fix 2017-11-25 04:32:33 +05:30
Arvind Tiwari
bc867b831f layout fix 2017-11-25 03:36:08 +05:30
Arvind Tiwari
02abbb777a heading font fix. line-height fix for h3 headings 2017-11-25 03:29:09 +05:30
PCoder
cbac0dc156 Check request.current_page is present 2017-11-24 22:45:28 +01:00
PCoder
4a27890db5 Comment out test_anonymous_post 2017-11-24 22:43:39 +01:00
Arvind Tiwari
0245aeca80 fix heading overflow 2017-11-25 03:12:46 +05:30
Arvind Tiwari
40ea11b64a mobile background fix 2017-11-25 02:52:18 +05:30
Arvind Tiwari
38c0c653df image set to background of each slide instead of a common background 2017-11-25 02:34:26 +05:30
PCoder
6eec131218 Merge branch 'master' into task/3672/cleaning_existing_tests 2017-11-24 21:37:19 +01:00
PCoder
824fd1a6b5 Add UngleichHeaderWithTextAndImagePlugin 2017-11-24 20:29:26 +01:00
Arvind Tiwari
8976f4a8b5 Merge branch 'master' into task/3905/ungleich_header_slider 2017-11-25 00:30:56 +05:30
PCoder
7b662e9b88 Refactor header.html to header_with_slider.html 2017-11-24 19:31:54 +01:00
PCoder
b703a1326d Load ungleich menu dynamically 2017-11-24 08:29:24 +01:00
PCoder
2a0b4951fa Return name for ungleich HTMLonly plugin 2017-11-24 08:24:07 +01:00
PCoder
0730494f48 Add name to ungliech HTMLOnly plugin 2017-11-24 08:01:36 +01:00
PCoder
3f2304aa3b Remove h3 style for subtitles in services and products sections 2017-11-23 20:12:57 +01:00
M.Ravi
f4b252ff09 Show carousel indicators only if we have more than 1 item 2017-11-23 17:15:19 +01:00
M.Ravi
db4362af01 Remove unused includes in ungleich_cms_page 2017-11-23 14:52:21 +01:00
M.Ravi
6ec7fc182b Add ungleich HTML only template 2017-11-23 13:02:14 +01:00
M.Ravi
7fa23577f6 Change 0005_auto_20171015_0703 dependency to 0004_auto_20160328_1434 2017-11-23 11:35:39 +01:00
PCoder
0fff040a9b Use forloop.counter 2017-11-23 09:46:42 +01:00
PCoder
85289c2eed Add ungleich customer section, templates and migration 2017-11-23 09:45:38 +01:00
PCoder
609a49cdbb Add section_products and _products_item templates 2017-11-22 00:20:06 +01:00
PCoder
1e567ef6ad Add ungleichproduct and ungleichproductitem plugins 2017-11-22 00:19:07 +01:00
PCoder
16e5fb8f5c Add multiply filter 2017-11-22 00:16:39 +01:00
PCoder
567ff8d314 Change subtitle to HTMLfield 2017-11-19 15:51:52 +01:00
PCoder
f927220a88 Use image width 300px 2017-11-19 14:54:16 +01:00
PCoder
4e8b3cdbe8 Add ungleich header.html _header_item.html 2017-11-19 13:22:37 +01:00
PCoder
7a9c624012 Add ungleich header migration 2017-11-19 13:21:00 +01:00
PCoder
09b118b311 Add intro-cap-sans-transform p class 2017-11-19 13:20:26 +01:00
PCoder
e05a2eab7e Add UngleichHeader and UngleichHeaderItem models 2017-11-19 13:19:40 +01:00
PCoder
d006ddcf0d Add UngleichHeaderWithTextAndImageSliderPlugin and UngleichHeaderItemPlugin 2017-11-19 13:19:01 +01:00
PCoder
7aca251260 Add ungleich services and serivce item htmls 2017-11-19 10:25:30 +01:00
PCoder
41b68365ed Add ungleichserviceitem migration 2017-11-19 10:22:32 +01:00
PCoder
06e8b3acc9 Remove new line 2017-11-19 08:16:50 +01:00
Arvind Tiwari
7ed0715f0d merged master 2017-11-19 03:35:27 +05:30
M.Ravi
2af78be195 First version of ungleich/section_services.html (wip) 2017-11-17 17:39:46 +01:00
M.Ravi
cf1f7d6141 Add UngleichServicesPlugin and UngleichServicesItemPlugin 2017-11-17 17:37:05 +01:00
M.Ravi
8a2eb8307a Add UngleichServiceItem model 2017-11-17 17:36:11 +01:00
M.Ravi
432d109c48 Add migration 2017-11-17 16:36:25 +01:00
M.Ravi
4367b9e58a Add ungleich cms page template 2017-11-17 16:32:40 +01:00
M.Ravi
501dc08b0e Align text to flex-start or flex-end for timeline 2017-11-17 16:30:48 +01:00
M.Ravi
e9b3e77752 Change title char field in UngleichPicture to HTML field 2017-11-17 15:48:44 +01:00
M.Ravi
e35d9a2789 Add ungleich_cms_page.html 2017-11-16 17:44:15 +01:00
M.Ravi
0228592d32 Merge branch 'task/3905/ungleich_header_slider' of https://github.com/tiwariav/dynamicweb into task/3843/generic_ungleich_cms_template 2017-11-16 15:57:29 +01:00
PCoder
1651dc00b5 Changelog: Correct ungleich spelling 2017-11-13 19:54:37 +01:00
PCoder
dbd3fea5ca Update Changelog: Add date for 1.2.9 2017-11-13 19:46:20 +01:00
PCoder
b9a5c9fea1 Update Changelog 2017-11-13 19:43:53 +01:00
Pcoder
cde3548c82
Merge pull request #536 from pcoder/task/3858/affordable_vm_text_change
Task/3858/affordable vm text change
2017-11-13 19:40:25 +01:00
PCoder
6d7d24eafe Remove unwanted br tag in de translation 2017-11-13 19:40:00 +01:00
PCoder
0038bb8ee4 Remove commented translation 2017-11-13 19:37:46 +01:00
PCoder
629eb41ff5 Remove "From confirmation to access" text 2017-11-13 19:00:59 +01:00
PCoder
0b340f29e1 Add DE translation 2017-11-11 11:40:26 +01:00
PCoder
de76311ea3 Change "affordable vm hosting.." text 2017-11-11 11:39:29 +01:00
PCoder
a56f626aef Update Changelog 2017-11-10 21:57:43 +01:00
Pcoder
0732ed332b
Merge pull request #535 from pcoder/blog_redirect_to_ungleich_home_on_logo_click
blog: Redirect user to ungleich home on ungleich logo click
2017-11-10 21:53:14 +01:00
PCoder
edf4a87fa9 blog: Redirect user to ungleich home on ungliech logo click 2017-11-10 21:26:51 +01:00
Pcoder
4b35973902
Merge pull request #534 from pcoder/bugfix/add_missing_i18n
Add missing i18n
2017-11-10 19:55:21 +01:00
PCoder
fbcb1a8b08 Add missing i18n 2017-11-10 19:46:02 +01:00
Arvind Tiwari
a5342d91e1
Update Changelog 2017-11-07 23:26:56 +05:30
Arvind Tiwari
972c29f0e6
Update Changelog 2017-11-07 23:25:55 +05:30
Arvind Tiwari
c44d78c623
Merge pull request #533 from tiwariav/task/3848/ungleich_page_optimize
Task/3848/ungleich landing page optimize
2017-11-06 01:16:28 +05:30
Arvind Tiwari
aeefdfb370 contact us email font fix 2017-11-06 01:15:09 +05:30
Arvind Tiwari
994f193276 html fix 2017-11-06 00:26:39 +05:30
Arvind Tiwari
b26c58feec Merge branch 'master' into task/3848/ungleich_page_optimize 2017-11-05 23:49:53 +05:30
Arvind Tiwari
49ea549c73 ungleich header slider 2017-11-05 23:48:20 +05:30
Arvind Tiwari
19f91773e3 contact map working 2017-11-05 14:25:17 +05:30
Arvind Tiwari
fbf2fdd78b impact hub logo container alignment fix 2017-11-02 23:57:54 +05:30
Arvind Tiwari
fcc22945a4 digitalglarus landing page animation direction changed, bootstrap grid fix 2017-11-02 23:49:38 +05:30
Arvind Tiwari
0fdcfcfe50
Merge pull request #531 from tiwariav/task/3360/ungleich_animation_delay
task/3360 ungleich landing page animation
2017-11-02 16:22:39 +05:30
Arvind Tiwari
0d3258dbba navbar brand icon padding fixed 2017-11-01 03:06:07 +05:30
Arvind Tiwari
70ad6d0fe4 Merge branch 'master' into task/3848/ungleich_page_optimize 2017-11-01 02:57:02 +05:30
Arvind Tiwari
16f8ab6ecc ungleich landing page animation delay reduced, direction changed 2017-11-01 02:50:47 +05:30
Arvind Tiwari
6ff2a57e08
Merge pull request #528 from tiwariav/bugfix/3421/input_placeholder_translation
bugfix/3421 form placeholder translation
2017-10-31 21:03:10 +05:30
Arvind Tiwari
b8d0ca17d7 translation fix in utils.forms 2017-10-31 21:01:54 +05:30
Arvind Tiwari
372f015760 translation fix 2017-10-31 20:50:35 +05:30
Arvind Tiwari
4c3bc02968
Merge pull request #526 from tiwariav/task/3856/glasfaser_de_text
task/3856 glasfaser text modified
2017-10-31 20:47:55 +05:30
Arvind Tiwari
07dfd3d675 images changed to something more relatable 2017-10-31 15:10:10 +05:30
PCoder
c438c0d8cb Add some de translations 2017-10-31 09:38:36 +01:00
PCoder
f9bd849333 Remove redundant "previous" text 2017-10-31 09:05:49 +01:00
PCoder
d8ce0f95c5 Change letter-spacing to 2px for btn-vm-contact 2017-10-31 09:02:07 +01:00
PCoder
3e08760e04 Change letter-spacing to 2px for settings-container buttons 2017-10-31 08:58:43 +01:00
PCoder
a2a35a9475 Fix error accessing stripecustomer for user when it doesn't exist 2017-10-30 08:26:35 +01:00
PCoder
24d904288f Clear token and card form variables explicitly 2017-10-30 00:26:18 +01:00
PCoder
16b6ecb38c Clear session variables on payment error 2017-10-29 23:48:33 +01:00
PCoder
83dbae74e6 Add missing card_id to session variables to be cleared 2017-10-29 22:54:33 +01:00
PCoder
4be2796270 Clean up some unnecessary code 2017-10-29 22:40:21 +01:00
PCoder
62f30bf03c Remove some commented and unnecessary code 2017-10-29 22:03:19 +01:00
PCoder
edac806c11 Some more refactoring 2017-10-29 21:56:29 +01:00
PCoder
3d8f81339b Refactor, reorganize some code 2017-10-29 21:49:15 +01:00
PCoder
618d0004f2 Rearrange code 2017-10-29 21:41:54 +01:00
PCoder
af1690b846 Fix: obtaining stripe_customer in landing flow 2017-10-29 21:36:12 +01:00
PCoder
63eb7fc0e2 Rename contains to get_user_card_details 2017-10-29 21:31:11 +01:00
PCoder
abe8c9efa5 Add error details to messages datacenterlight landing flow 2017-10-29 15:05:32 +01:00
PCoder
bea3477d84 Handle errors related to payment by redirecting to payment page 2017-10-29 14:45:14 +01:00
PCoder
23e7edf7c2 Return True if associate_customer_card runs ok 2017-10-29 14:40:15 +01:00
PCoder
82ad9ac337 Add selected card handling in landing flow "Order confirmation" page 2017-10-29 13:17:26 +01:00
PCoder
2ffaee2d5b Add clear_items_from_list utility function 2017-10-29 13:14:29 +01:00
PCoder
248283b369 Show user's credit cards dynamically in landing payment page 2017-10-28 23:44:06 +02:00
PCoder
bafb4e7b68 Remove hasCreditcard js code - not used anymore 2017-10-28 23:42:30 +02:00
PCoder
db8dd9af54 Hosting payment: select card text update 2017-10-28 23:18:10 +02:00
PCoder
7e5cab2cc4 Fix PEP8 warnings 2017-10-28 22:44:58 +02:00
PCoder
2a8f02a197 Order by preferred and id fields for cards in settings page 2017-10-28 22:32:35 +02:00
PCoder
cac00d4b9e Implement select default card functionality 2017-10-28 22:19:53 +02:00
PCoder
dc8ea8d253 Make save_default_card method static 2017-10-28 22:18:54 +02:00
PCoder
c47b5cdc72 Add form to send selected card in settings page 2017-10-28 22:17:46 +02:00
PCoder
175180e193 Show DEFAULT text against the default card in the settings page 2017-10-28 20:45:00 +02:00
PCoder
2a59a3336b Add metadata (vm_id) to Stripe subscription 2017-10-28 20:25:18 +02:00
PCoder
d2ae94327a Associate card only if it has not already been done 2017-10-28 18:29:19 +02:00
PCoder
06a5cba50e Add contains utility method 2017-10-28 18:28:14 +02:00
PCoder
4be105a0a9 Set default card for newly added card in hosting flow 2017-10-28 16:48:03 +02:00
PCoder
a17a5f66bc Set preferred = False for cards that are not preferred 2017-10-28 16:47:10 +02:00
PCoder
b6d1e8df6b Set preferred for the card that's used for a subscription 2017-10-28 15:45:05 +02:00
PCoder
6212c9df50 Manage token and card_id properly in hosting flow 2017-10-28 15:30:42 +02:00
PCoder
d14a643171 Set preferred field as in card_details 2017-10-28 15:26:15 +02:00
PCoder
8759e2a4b5 Save default card only if Stripe's default_source is not None 2017-10-28 15:14:42 +02:00
PCoder
73169e825d Add set_as_default parameter for associate_customer_card method 2017-10-28 15:13:38 +02:00
PCoder
38168e8f8f Allow use of previous cards in hosting flow 2017-10-27 00:45:26 +02:00
PCoder
bd7db30633 Add card hidden field to BillingAddressForm 2017-10-27 00:43:07 +02:00
PCoder
1374eaf1a2 Rename id to stripe_api_cus_id 2017-10-27 00:41:49 +02:00
PCoder
a6d28bff86 Add set_default_card and set_default_card_from_stripe methods 2017-10-27 00:40:38 +02:00
M.Ravi
4dd407da67 Use card_id as session variable instead of token and customer 2017-10-26 17:57:11 +02:00
M.Ravi
780fa6cb60 Add get_or_create_user_card_detail method 2017-10-26 17:56:12 +02:00
M.Ravi
85d19c004b Remove redundant code in check_customer 2017-10-26 15:21:29 +02:00
M.Ravi
692f82cba4 Code rearrange 2017-10-26 15:15:27 +02:00
M.Ravi
ef9dc446db Use hasattr to check if a user already has a stripecustomer object 2017-10-26 15:00:54 +02:00
M.Ravi
8d2c120b43 Associate newly added card with customer from hosting 2017-10-26 12:29:16 +02:00
Arvind Tiwari
705e448e6f about section text added 2017-10-26 03:34:13 +05:30
Arvind Tiwari
64ffca6ded signup form placeholder translation 2017-10-26 03:24:29 +05:30
Arvind Tiwari
801c840a4d Merge branch 'master' into task/3848/ungleich_page_optimize 2017-10-26 03:03:19 +05:30
Arvind Tiwari
cf426b88e2 de text modified 2017-10-26 02:14:09 +05:30
PCoder
de5035d12e Add id_card input element 2017-10-22 00:21:08 +02:00
PCoder
21bb336166 Add js code to submit id_card 2017-10-22 00:20:40 +02:00
PCoder
8351b1bf8b Use refactored get_all_cards_list function 2017-10-21 23:14:55 +02:00
PCoder
bf91bf3822 Change text: delete card to remove card 2017-10-21 23:14:05 +02:00
PCoder
7f4993c3f0 Update hosting payment template to use added cards 2017-10-21 23:12:53 +02:00
PCoder
303eb4112d Add doc. and return empty list for get_all_cards_list function 2017-10-21 21:34:54 +02:00
PCoder
14c7d6ac0e Refactor getting all cards to UserCardDetail.get_all_cards_list() 2017-10-21 21:27:21 +02:00
PCoder
8df72620d6 Add 'billing address updated' message in that case 2017-10-21 20:58:54 +02:00
PCoder
1e08ae5426 Stripe API: Use list() instead of all() as the former is deprecated 2017-10-21 20:46:29 +02:00
PCoder
fb2056bf95 Update stripe_id for a missing case 2017-10-21 20:45:00 +02:00
PCoder
600b549704 Handle case where a Stripe account may have been deleted via dashboard 2017-10-21 20:39:00 +02:00
PCoder
75e90dbacd Refactor and add messages 2017-10-21 20:37:50 +02:00
PCoder
be8181ec42 Add _messages template to hosting/settings.html 2017-10-21 17:02:24 +02:00
PCoder
70b6bbdf2f Save card id as a parameter and use it to delete a source 2017-10-21 13:27:35 +02:00
PCoder
76b3785adc Merge branch 'master' into task/3747/multiple_cards_support 2017-10-21 12:04:15 +02:00
PCoder
7359431b9c Update Changelog 2017-10-21 11:44:55 +02:00
PCoder
12278fc5af Fetch page_title and meta_description dynamically in glasfaser CMS template 2017-10-21 11:42:56 +02:00
Nico Schottelius
ed87762ff0 Update changelog as well 2017-10-21 08:36:17 +02:00
Nico Schottelius
3d192ed59f Replace alplora.ch with .hack4glarus.ch 2017-10-21 08:33:37 +02:00
PCoder
c664b44f2c Add functionality to delete user card 2017-10-21 00:02:35 +02:00
PCoder
255c8a1d80 Add UserCardDetail create method that assigns appropriate object permission 2017-10-21 00:00:21 +02:00
PCoder
51039a5cb3 Merge branch 'master' into task/3747/multiple_cards_support 2017-10-20 21:45:39 +02:00
M.Ravi
725606ff98 Use correct glasfaser template name 2017-10-20 12:31:12 +02:00
M.Ravi
e807ad7834 Bugfix: Limit glasfaser menu to Glasfaser template only 2017-10-20 12:12:13 +02:00
pcoder
cfc289d09d Update Changelog for 1.2.7 2017-10-20 09:49:38 +02:00
pcoder
e282b2ae01 Update Changelog 2017-10-20 09:07:53 +02:00
Pcoder
333b7a99fb Merge pull request #525 from pcoder/feature/glasfaser_cms_template
Feature/glasfaser cms template
2017-10-20 09:05:19 +02:00
pcoder
c4975f0f9b Add link url to AboutItem 2017-10-20 08:50:30 +02:00
pcoder
c20e9372f9 SectionWithImage: Open link in a new window 2017-10-20 08:49:21 +02:00
M.Ravi
60cfc24319 Merge branch task/3766/credit_card_options from tiwariav into task/3747/multiple_cards_support 2017-10-19 20:24:28 +02:00
M.Ravi
68a34762b9 Merge branch 'master' into task/3747/multiple_cards_support 2017-10-19 20:17:39 +02:00
M.Ravi
824e0758e2 Rename TestMenu to GlasfaserMenu 2017-10-19 19:47:53 +02:00
M.Ravi
39ca45cfb9 Make fields of contact section customizable 2017-10-19 17:23:19 +02:00
M.Ravi
e7c7f6f73a Show background image and link only if specified 2017-10-19 16:23:28 +02:00
M.Ravi
c448562384 Remove empty items from menu 2017-10-19 16:04:18 +02:00
M.Ravi
55dd96570c Add custom padding bottom for services section 2017-10-19 15:24:00 +02:00
M.Ravi
6322140813 Add section id from cms for about 2017-10-19 14:22:02 +02:00
M.Ravi
46baaaf621 Add section id from cms for services 2017-10-19 14:14:29 +02:00
M.Ravi
502d822a02 Add section id from cms in the contact us section 2017-10-19 14:05:17 +02:00
M.Ravi
428d329d99 Add migrations 2017-10-19 13:49:30 +02:00
M.Ravi
ac5c43822f Add menus template for glasfaser template 2017-10-19 13:48:13 +02:00
M.Ravi
24fe8c4c6e Load section ids from cms 2017-10-19 13:46:20 +02:00
M.Ravi
0935877a4f Add get_section_id 2017-10-19 13:45:28 +02:00
M.Ravi
b21a533aeb Show menu using cms 2017-10-19 13:44:21 +02:00
M.Ravi
73818fd5b9 Add menu_text fields for various plugins 2017-10-19 13:40:48 +02:00
M.Ravi
c147b48af7 Add first version of cms_menus.py 2017-10-19 13:39:56 +02:00
M.Ravi
878a823e20 Use SectionWithImage 2017-10-19 00:30:07 +02:00
M.Ravi
bf044a4bf3 Improve section_with_image.html to include price_tag image and url 2017-10-19 00:29:34 +02:00
M.Ravi
8ce273ea1f Add SectionWithImage model and its migration 2017-10-19 00:28:34 +02:00
M.Ravi
38330d562c Remove unused cms config from base.py 2017-10-18 23:29:57 +02:00
M.Ravi
db45597e4e Remove foreign keys between nested plugins 2017-10-18 20:24:50 +02:00
M.Ravi
e563ae642f Merge branch 'master' into feature/glasfaser_cms_template 2017-10-18 18:24:53 +02:00
M.Ravi
c753d3061d Refactor glasfaser_cms_page.html template 2017-10-18 16:57:15 +02:00
M.Ravi
609501f987 Add GlasfaserAboutPlugin and GlasfaserAboutItemPlugin 2017-10-18 16:56:41 +02:00
M.Ravi
621424f182 Add updated migration file 2017-10-18 16:56:00 +02:00
M.Ravi
04e72696f1 Add About and AboutItem models 2017-10-18 16:53:32 +02:00
M.Ravi
5e2d1966f8 Add section_about and _about_item templates 2017-10-18 16:53:05 +02:00
M.Ravi
9ff5b4015f Rename section_services_item.html to _services_item.html 2017-10-18 15:58:50 +02:00
M.Ravi
cfcc3e0eb1 Add GlasfaserServicesPlugin and GlasfaserServicesItemPlugin 2017-10-18 15:51:47 +02:00
M.Ravi
f3e4ede52e Add section_services_item.html 2017-10-18 15:48:01 +02:00
M.Ravi
9c07565b73 Add section_services.html and section_services_item.html 2017-10-18 15:46:57 +02:00
M.Ravi
a8c49b7fde Delete 0002_ungleichtextsectionwithimage.py 2017-10-18 15:44:18 +02:00
M.Ravi
d05ef79ecc Add Service and ServiceItem models and corresponding migration 2017-10-18 15:43:12 +02:00
M.Ravi
ef0ab2d24a Add missing styles to intro section 2017-10-18 11:05:47 +02:00
M.Ravi
a9e97a8bc6 Add UngelichTextSectionWithImage migration 2017-10-18 09:14:05 +02:00
M.Ravi
977966f3ba Add glasfaser_services.html 2017-10-18 09:11:31 +02:00
M.Ravi
f6468a7c8c First attempt to services section
- base.py: add settings to load GlasfaserServicesPlugin by default
    - glasfaser_cms_page.html: create a placeholder for services
    - cms_plugins.py: add the plugin code
    - models.py: add UngelichTextSectionWithImage model
2017-10-18 09:10:50 +02:00
M.Ravi
97ba0bafd3 Define various sections in glasfaser cms template 2017-10-18 00:12:48 +02:00
M.Ravi
4fcc24d8b7 Delete unnecessary migration files 2017-10-17 23:57:12 +02:00
M.Ravi
d42e2d6e39 Make all migrations into one file 2017-10-17 23:56:38 +02:00
M.Ravi
f610a18691 Add glasfaser cms.css 2017-10-17 23:40:58 +02:00
M.Ravi
77d92719d3 Add glasfaser cms.css 2017-10-17 23:39:41 +02:00
M.Ravi
4cba13a509 Add div space for price tag container 2017-10-17 23:31:57 +02:00
M.Ravi
36a9c386cb Add migrations 2017-10-17 17:52:01 +02:00
M.Ravi
e9142b17ae Add UngleichTextSection 2017-10-17 17:51:01 +02:00
M.Ravi
14bbfe901d Add SectionTextParagraphDCL and SectionTextParagraphGlasfaser 2017-10-17 17:47:40 +02:00
M.Ravi
27766329c9 Add dcl glasfaser text section templates 2017-10-17 17:46:22 +02:00
M.Ravi
ef47e999f1 Create SectionContact CMSPlugin 2017-10-17 16:25:01 +02:00
M.Ravi
92086ad2ea Obtain email dynamically 2017-10-17 16:24:19 +02:00
M.Ravi
98a9a35b4f Add 0002_ungleichcontactussection.py migration file 2017-10-17 16:23:37 +02:00
M.Ravi
a709485e77 Add missing ids 2017-10-17 16:02:04 +02:00
M.Ravi
4d485ef178 Add initial ungleich_page migration 2017-10-17 15:58:27 +02:00
M.Ravi
8e76a1c671 Set image and title dynamically 2017-10-17 15:52:30 +02:00
M.Ravi
a5dea2b399 Add ungleich_page cms_plugins and section templates 2017-10-17 09:30:52 +02:00
M.Ravi
b6f1309735 Add glasfaser_cms_page.html 2017-10-17 09:06:45 +02:00
M.Ravi
daaf55b343 Update Changelog 2017-10-16 21:18:03 +02:00
Pcoder
0c519de3f4 Merge pull request #524 from ungleich/bugfix/digitalglarus_registration_link
bugfix/remove DG email registration validate link
2017-10-16 21:07:28 +02:00
Arvind Tiwari
1839a1c27c translation re compilation 2017-10-17 00:35:51 +05:30
Arvind Tiwari
2a71be354b conflicts resolved 2017-10-17 00:27:50 +05:30
M.Ravi
24cce4eed7 - Remove registration link from DG registration email
- Remove multiple declared settings
2017-10-16 20:53:51 +02:00
Arvind Tiwari
387cad476f Update translations for user activation email 2017-10-17 00:19:03 +05:30
M.Ravi
c939106a35 Prepare to handle delete card 2017-10-16 16:29:09 +02:00
M.Ravi
bff37d6246 Add card id param to card details 2017-10-16 16:20:03 +02:00
M.Ravi
3d50868c6a Add url for card delete 2017-10-16 16:18:39 +02:00
M.Ravi
de275c23ac Add modal for card delete 2017-10-16 16:18:17 +02:00
M.Ravi
619f37829e Now showing cards from UserCardDetails 2017-10-15 23:57:15 +02:00
M.Ravi
52791f5e48 Refactor cc_brand to brand 2017-10-15 23:56:38 +02:00
M.Ravi
3f9c1a68d1 Remove unused code 2017-10-15 23:38:18 +02:00
M.Ravi
74a1f82c30 Refactor handling post for settings card input form 2017-10-15 23:37:01 +02:00
M.Ravi
a3ce43fd53 Add add_card_to_stripe_customer function 2017-10-15 23:32:16 +02:00
M.Ravi
83363f4701 Remove some lines 2017-10-15 21:46:26 +02:00
M.Ravi
7d69d8d5d4 Add get_cards_details_from_token function 2017-10-15 21:45:17 +02:00
Arvind Tiwari
220a85b4a4 Merge pull request #523 from tiwariav/bugfix/account_activation_email
bugfix user account details added and translation fix
2017-10-16 01:08:54 +05:30
Arvind Tiwari
88be7be180 translation fix 2017-10-16 01:07:54 +05:30
Arvind Tiwari
9bc86255c4 user account details added and translation fix 2017-10-16 01:04:49 +05:30
M.Ravi
167e3589d4 Rename user to stripe_customer 2017-10-15 21:21:36 +02:00
M.Ravi
a1d7b07e0c Relate UserCardDetail with StripeCustomer and add more fields to uniquely identify if a user already has a card 2017-10-15 21:19:13 +02:00
M.Ravi
9a9a764023 Add preferred card field to UserCardDetail 2017-10-15 20:06:56 +02:00
M.Ravi
f3ca9110e1 Add UserCardDetail migration 2017-10-15 19:56:40 +02:00
M.Ravi
6420a9869b Add functionality to save UserCardDetail 2017-10-15 19:55:37 +02:00
M.Ravi
f71c8e553d Add name to user details form button name 2017-10-15 19:54:01 +02:00
M.Ravi
1a25bbf11e Add name to card form button name 2017-10-15 19:51:58 +02:00
M.Ravi
a4b63e220a Relate UserCardDetail to CustomUser and rename some fields 2017-10-15 19:49:44 +02:00
M.Ravi
707f1a8768 Add UserCardDetail model + Reorganize imports 2017-10-15 18:00:43 +02:00
M.Ravi
e6f92d9ae4 Manual merge 2017-10-15 16:14:33 +02:00
Arvind Tiwari
839b7acd74 Update Changelog 2017-10-15 02:31:19 +05:30
Arvind Tiwari
5d35cb02ad Merge pull request #516 from tiwariav/task/3838/restyle_login_pages
Task/3838 restyle login pages
2017-10-15 02:31:09 +05:30
Arvind Tiwari
3370f06bff msg fix 2017-10-15 02:30:42 +05:30
Arvind Tiwari
c60d45c292 merge master 2017-10-15 01:52:29 +05:30
Arvind Tiwari
1c50eb45e9 Merge pull request #509 from tiwariav/task/3828/invoice_period
task/3828 invoice period
2017-10-15 01:27:02 +05:30
Arvind Tiwari
6fe0e27e04 Merge pull request #494 from tiwariav/task/3794/update_email_styles
Task/3794 update email styles
2017-10-15 00:47:14 +05:30
Arvind Tiwari
ed1f1451ce [] removed around the vm name 2017-10-15 00:41:31 +05:30
Arvind Tiwari
2cd1850f02 password reset email fix 2017-10-15 00:30:52 +05:30
Arvind Tiwari
7b71ba1749 merged master 2017-10-15 00:10:02 +05:30
Arvind Tiwari
1fd5b51cae cdn links for vendor files 2017-10-14 23:04:19 +05:30
M.Ravi
d452118b2f Update Changelog 2017-10-14 13:08:21 +02:00
Pcoder
49cb69b2a8 Merge pull request #517 from pcoder/task/3829/handle_landing_login_fail_in_same_page
Task/3829/handle landing login fail in same page
2017-10-14 13:05:35 +02:00
M.Ravi
ed05411dac Return if the form already contains error 2017-10-14 12:52:18 +02:00
M.Ravi
e7882c0dec Merge branch 'master' into task/3829/handle_landing_login_fail_in_same_page 2017-10-14 11:41:25 +02:00
M.Ravi
64695d0a38 Remove commented code 2017-10-13 00:57:30 +02:00
Arvind Tiwari
ce5513621d Merge pull request #522 from tiwariav/bugfix/ungleich_landing
bugfix line break on subheading
2017-10-13 02:25:01 +05:30
Arvind Tiwari
d250539ade minor fix 2017-10-13 02:24:29 +05:30
Arvind Tiwari
2493536fb4 line break on subheading 2017-10-13 02:22:51 +05:30
M.Ravi
152c930180 Redirect explicitly to the payment page on dcl landing login 2017-10-12 22:50:54 +02:00
Arvind Tiwari
606a687bc7 conflicts resolved 2017-10-13 02:08:28 +05:30
Arvind Tiwari
bb0b2f33a7 Update Changelog 2017-10-13 02:05:10 +05:30
Arvind Tiwari
f9819428a7 Merge pull request #521 from tiwariav/bugfix/3847/ungleich_landing
Bugfix/3847 ungleich landing text
2017-10-13 02:02:55 +05:30
M.Ravi
1018792df3 Merge branch 'master' into task/3829/handle_landing_login_fail_in_same_page 2017-10-12 22:32:26 +02:00
Arvind Tiwari
0e0057c8ce translation update 2017-10-13 01:57:25 +05:30
Arvind Tiwari
2d5acff4a8 sub heading text changed 2017-10-13 01:55:36 +05:30
M.Ravi
764a51c0e7 Merge branch 'master' into task/3774/update_stripe_subscription_on_vm_delete 2017-10-12 19:32:00 +02:00
M.Ravi
07e67f727a Update Changelog 2017-10-12 19:12:32 +02:00
Pcoder
3b9cfed794 Merge pull request #520 from ungleich/bugfix/stripe_js_error
Bugfix/stripe js error in confirm order page
2017-10-12 19:10:28 +02:00
M.Ravi
859ccd54a6 Remove some more commented code and console logs 2017-10-12 19:06:26 +02:00
M.Ravi
1b14598cc9 Create Stripe elements only stripe key is defined 2017-10-12 00:43:55 +02:00
M.Ravi
8678f7f8ea Remove unused import 2017-10-12 00:32:47 +02:00
M.Ravi
a03040b449 Merge branch 'master' into task/3774/update_stripe_subscription_on_vm_delete 2017-10-11 21:25:52 +02:00
M.Ravi
4f6fd52ce8 Merge branch 'master' into task/3829/handle_landing_login_fail_in_same_page 2017-10-11 21:23:13 +02:00
Arvind Tiwari
9ae2b94b44 hosting products -> our products 2017-10-12 00:01:31 +05:30
M.Ravi
53956a6c2f Update Changelog for 1.2.6 2017-10-10 22:41:59 +02:00
Arvind Tiwari
5a3ba0dad3 Merge pull request #519 from tiwariav/task/glasfaser_page
Bugfix/glasfaser_page
2017-10-11 01:42:54 +05:30
Arvind Tiwari
f7e6c26a34 merged master 2017-10-11 01:28:35 +05:30
Arvind Tiwari
e13a2fba01 fixed html lang attr 2017-10-11 01:23:53 +05:30
Arvind Tiwari
31781778e4 bootstrap js file added 2017-10-11 01:16:31 +05:30
M.Ravi
09f67e46b9 glasfaser: Fix email to parameter 2017-10-10 21:22:11 +02:00
Arvind Tiwari
8ad3cb16df timeline last icon extended line removed 2017-10-11 00:50:09 +05:30
Arvind Tiwari
7410a73e60 from email removed direct dependency from post request 2017-10-11 00:36:17 +05:30
Arvind Tiwari
3e6084a1b1 translation fix 2017-10-11 00:30:32 +05:30
Arvind Tiwari
fe02cf0a1b links added to ungleich landing, svg icons added 2017-10-10 23:04:54 +05:30
M.Ravi
1c67d66ff7 Merge remote-tracking branch 'mainRepo/master' into task/3829/handle_landing_login_fail_in_same_page 2017-10-10 19:22:37 +02:00
Arvind Tiwari
25a4768bda animation diration and direction changed 2017-10-10 22:46:29 +05:30
Arvind Tiwari
50e6ecdc11 css link fixed 2017-10-10 22:41:32 +05:30
Arvind Tiwari
b908fc582c Merge branch 'master' into task/glasfaser_page 2017-10-10 22:37:38 +05:30
Arvind Tiwari
ff3f0e8ed3 converted png to jpg, removed unused scripts/styles, cdn links added 2017-10-10 22:16:51 +05:30
Arvind Tiwari
9530894308 translation fix 2017-10-10 22:12:35 +05:30
Nico Schottelius
c721d81075 Update changelog for 1.2.5 2017-10-10 18:22:29 +02:00
Nico Schottelius
5237cef552 Merge pull request #518 from tiwariav/task/glasfaser_page
glasfaser page
2017-10-10 18:15:43 +02:00
Arvind Tiwari
452089e103 translation fix 2017-10-10 21:38:49 +05:30
Arvind Tiwari
dedbcec8e7 mobile layout fix, animation directions changed 2017-10-10 21:32:01 +05:30
Arvind Tiwari
0616be9864 op text sections added, from email fixed 2017-10-10 20:58:11 +05:30
Arvind Tiwari
8c37f02b91 text changed 2017-10-10 02:38:19 +05:30
Arvind Tiwari
f68857cacb border padding aded 2017-10-10 02:18:56 +05:30
Arvind Tiwari
c1d03b1281 hero image changed to progressive 2017-10-10 02:16:27 +05:30
Arvind Tiwari
96a993b235 images added, ungleich landing modified 2017-10-10 02:09:03 +05:30
Arvind Tiwari
695a8687fd first iteration 2017-10-10 00:04:19 +05:30
M.Ravi
8b36d9cba4 Create stripe customer if not exists 2017-10-08 21:01:25 +02:00
M.Ravi
b44948b277 Prefill cc info on landing for logged in case
Attention: We still support only one card
2017-10-08 20:21:20 +02:00
M.Ravi
86c931cde1 Remove prefixes for billing_address_forms 2017-10-08 19:24:58 +02:00
M.Ravi
cdbab541bc Refactor billing_address_form for not logged in case 2017-10-08 17:29:10 +02:00
M.Ravi
5a2657e357 Create billing_address_form only for a logged user 2017-10-08 17:21:38 +02:00
M.Ravi
110888e5aa Merge branch 'master' into task/3829/handle_landing_login_fail_in_same_page 2017-10-08 13:51:45 +02:00
M.Ravi
564f47cf8a Handle login and billing address forms together in PaymentOrderView 2017-10-08 13:50:43 +02:00
Arvind Tiwari
6cdca621b2 original pattern.jpg added 2017-10-07 23:35:13 +05:30
Arvind Tiwari
25e3980b20 pattern.jpg compressed 2017-10-07 23:33:08 +05:30
Arvind Tiwari
c400fdb02e width adjusted 2017-10-07 23:17:57 +05:30
Arvind Tiwari
2dd2945ee9 wider auth box 2017-10-07 17:51:18 +05:30
Arvind Tiwari
d0003ce9f3 style fixes 2017-10-07 17:35:10 +05:30
Arvind Tiwari
f3832c1db9 content-dashboard removed for unregistered pages 2017-10-07 17:06:55 +05:30
M.Ravi
02d144fbf9 Add form name and error fields to payment login form 2017-10-07 12:59:40 +02:00
Arvind Tiwari
1dc374e09d footer links color changed 2017-10-07 16:23:04 +05:30
Arvind Tiwari
7d7b8661ea translations 2017-10-07 16:19:53 +05:30
Arvind Tiwari
769396d95e login pages restyled and footer included 2017-10-07 14:38:48 +05:30
Arvind Tiwari
88781e992c 24 hr fix 2017-10-06 04:20:38 +05:30
Arvind Tiwari
d3d57ade37 formats fixed 2017-10-06 04:16:58 +05:30
Arvind Tiwari
8e5654bdb5 date time converted to locale 2017-10-06 04:11:40 +05:30
Arvind Tiwari
4dbf08f995 Merge branch 'master' into task/3828/invoice_period 2017-10-06 02:39:07 +05:30
Arvind Tiwari
05b7b43064 Merge remote-tracking branch 'ungleich/master' 2017-10-06 02:06:03 +05:30
Arvind Tiwari
cc2e08aff5 translations 2017-10-06 02:02:22 +05:30
Arvind Tiwari
ba8eaa2937 new card details option added 2017-10-06 01:59:18 +05:30
Arvind Tiwari
bd3c59eb3e card_input template 2017-10-06 01:17:50 +05:30
Arvind Tiwari
6536991209 list all cards, card_input template 2017-10-06 01:17:35 +05:30
Arvind Tiwari
5e8b34d39c Update hosting favicon to dcl favicon 2017-10-06 01:02:14 +05:30
M.Ravi
f0be6d6d7f Merge remote-tracking branch 'mainRepo/master' into task/3774/update_stripe_subscription_on_vm_delete 2017-10-04 19:32:02 +02:00
Arvind Tiwari
e8625d7602 Merge remote-tracking branch 'ungleich/master' 2017-10-04 22:55:25 +05:30
Arvind Tiwari
fc68715bcb Merge pull request #507 from tiwariav/task/3811/create_vm_page_text
task/3811 create vm page lead text added
2017-10-04 01:00:03 +05:30
Arvind Tiwari
242f4edf8c Merge pull request #513 from tiwariav/bugfix/stripe_customer_id
bugfix/stripe_customer_id
2017-10-04 00:05:27 +05:30
Arvind Tiwari
1990c4758e merged master 2017-10-03 23:49:26 +05:30
Arvind Tiwari
e7545247c9 Merge remote-tracking branch 'ungleich/master' 2017-10-03 23:46:43 +05:30
Arvind Tiwari
7362a2f14e Update Changelog 2017-10-03 23:43:30 +05:30
Arvind Tiwari
0ba6bca06b Merge pull request #508 from tiwariav/task/3823/hosting_favicon
task/3823 hosting favicon link fixed
2017-10-03 23:42:57 +05:30
Arvind Tiwari
4c8be518a9 Update Changelog 2017-10-03 23:42:15 +05:30
Arvind Tiwari
618a82fc66 Merge remote-tracking branch 'ungleich/master' 2017-10-03 21:51:28 +05:30
Arvind Tiwari
7e380267b7 Update payment.css 2017-10-03 21:49:51 +05:30
Arvind Tiwari
eb7b1a4ea0 Merge remote-tracking branch 'ungleich/master' 2017-10-03 21:46:23 +05:30
Arvind Tiwari
96d8f8358f Merge pull request #512 from tiwariav/bugfix/card_input
Bugfix/hosting_card_input
2017-10-03 21:39:44 +05:30
Arvind Tiwari
c410e2cbc5 stripe_customer_id retrieved from request.user relation 2017-10-03 21:35:08 +05:30
Arvind Tiwari
bfbf4d87cc Merge pull request #503 from tiwariav/task/3785/my_bills_page
Task/3785 update my bills page
2017-10-03 21:31:27 +05:30
Arvind Tiwari
315ce92a78 post request attributes changed 2017-10-03 21:24:35 +05:30
Arvind Tiwari
0263964705 stripe_id used instead of id 2017-10-03 21:04:25 +05:30
Arvind Tiwari
6802e2fdbc merged master 2017-10-03 18:54:47 +05:30
Arvind Tiwari
734a41a371 merged master 2017-10-03 18:42:00 +05:30
Arvind Tiwari
2e34d404ea translation 2017-10-03 18:25:32 +05:30
Arvind Tiwari
e4837b063c alignment fix 2017-10-03 18:18:18 +05:30
M.Ravi
777aab7115 Add cancel subscription code on VM cancel 2017-10-03 13:07:41 +02:00
M.Ravi
f044b83b8f Add Stripe unsubscribe_customer method 2017-10-03 13:06:37 +02:00
M.Ravi
65745b5098 Update Changelog for 1.2.4 2017-10-03 00:36:49 +02:00
M.Ravi
a79efa4db6 Update Changelog 2017-10-03 00:27:05 +02:00
M.Ravi
60b233f082 Fix flake8 warnings 2017-10-03 00:26:50 +02:00
M.Ravi
c63e3cb0ff Update Changelog 2017-10-02 23:43:25 +02:00
Pcoder
97ed965b8b Merge pull request #510 from ungleich/tiwariav-task/3808/dcl_order_confirm
Task/3808 dcl order confirmation redesign
2017-10-02 23:39:58 +02:00
M.Ravi
44b5d9bb3a hosting order: Add price to vm context 2017-10-02 23:17:37 +02:00
M.Ravi
e2188cc166 Added some skipIf conditions 2017-10-02 17:19:51 +02:00
M.Ravi
b848841337 Add logger error messages for Stripe errors 2017-10-02 01:35:28 +02:00
M.Ravi
42224a5d38 Add missing form ids 2017-10-02 01:34:32 +02:00
M.Ravi
a605901850 Update datacenterlight django.po 2017-10-02 00:15:13 +02:00
M.Ravi
7680e5aa25 Update hosting django.po 2017-10-02 00:13:28 +02:00
M.Ravi
22af001489 Merge upstream master 2017-10-02 00:09:38 +02:00
M.Ravi
7aa50dcfa7 Update Changelog 2017-10-01 23:31:26 +02:00
Pcoder
350a52c657 Merge pull request #506 from ungleich/bugfix/stripe_error
- Bugfix/stripe error
- #3835 [dcl] Forbidden (403) CSRF verification failed. Request aborted.
- hosting/dashboard only available after login
2017-10-01 23:24:06 +02:00
M.Ravi
68cbfdd393 Update translation and fix loginmixin required for dashboard view 2017-10-01 23:06:51 +02:00
M.Ravi
cf45a9ac75 Add messages to some hosting templates 2017-10-01 20:39:55 +02:00
M.Ravi
06b1ce9e72 Update error message 2017-10-01 20:32:51 +02:00
M.Ravi
167eaf2a0c Add forbidden_view method adds the message and redirects to the same path 2017-10-01 20:17:03 +02:00
M.Ravi
9e8d930a3b Refactor messages to includes/_messages.html 2017-10-01 20:16:05 +02:00
M.Ravi
3a33dd2035 Add CSRF_FAILURE_VIEW 2017-10-01 20:14:46 +02:00
Arvind Tiwari
df93dfe047 day set to one before 2017-09-30 18:10:34 +05:30
Arvind Tiwari
1f09bab3e4 minimum month diff set to 1 2017-09-30 18:08:02 +05:30
Arvind Tiwari
3701899304 timezone aware 2017-09-30 18:06:50 +05:30
Arvind Tiwari
f1790445cd timezone aware 2017-09-30 18:05:02 +05:30
Arvind Tiwari
bd91883369 end_date added 2017-09-30 17:55:49 +05:30
Arvind Tiwari
1fb7511292 favicon link changed 2017-09-30 17:08:40 +05:30
Arvind Tiwari
c6173ed2e6 lead text added 2017-09-30 16:53:44 +05:30
M.Ravi
6ef8a03de7 Respond with JSON 2017-09-30 01:02:59 +02:00
M.Ravi
4334dfaa44 Update utils django.po 2017-09-29 22:36:38 +02:00
M.Ravi
43e6fc45e2 Add de translations 2017-09-29 22:19:26 +02:00
M.Ravi
b04f9ea1ec Update hosting django.po 2017-09-29 22:12:02 +02:00
M.Ravi
00341e014c Update hosting django.po 2017-09-29 22:02:53 +02:00
M.Ravi
4bf73db14f Update datacenterlight django.po 2017-09-29 22:01:28 +02:00
M.Ravi
5bbfb54b79 Revert back to simple error message 2017-09-29 21:54:31 +02:00
M.Ravi
1dfe1d7cf8 Redirect to my virtual machines page if any error 2017-09-29 21:53:02 +02:00
M.Ravi
e6869612d8 Update resend activation link email text 2017-09-29 21:45:30 +02:00
M.Ravi
4b8d68fc8e Reuse price parameter 2017-09-29 09:35:45 +02:00
M.Ravi
5393ffa10d Small code reorganizing 2017-09-29 09:16:00 +02:00
M.Ravi
5c99dd4da7 hosting/views: remove billing_address_id in call to create_vm_task 2017-09-29 09:07:38 +02:00
M.Ravi
d06f5ffb00 datacenterlight/views: remove billing_address_id in call to
create_vm_task
2017-09-29 08:58:45 +02:00
M.Ravi
61a4060e10 datacenterlight/tests: remove billing_address_id in call to
create_vm_task
2017-09-29 08:55:30 +02:00
M.Ravi
483aa493bb Remove billing_address_id as it is no more used 2017-09-29 08:51:58 +02:00
M.Ravi
ac37349aef Refactor code and pass subscription_id instead of obj 2017-09-29 08:50:03 +02:00
M.Ravi
313ba9d502 Refactor set_subscription_id - use stripe subscription id instead of obj 2017-09-29 08:42:17 +02:00
M.Ravi
caad79304b Pass subscription_id instead of subscription object 2017-09-29 08:40:43 +02:00
M.Ravi
f29a3ad0e6 Pass subscription_id to create_vm_task instead of the object 2017-09-29 08:39:20 +02:00
M.Ravi
5783e42171 Refactor code and add following fixes
- create_vm_task receiving stripe_subscription_id instead of object
    - Fix: use BillingAddress instead of UserBillingAddress in
    HostingOrder, HostingPlan
    - Remove DictDotLookup class
2017-09-29 08:37:25 +02:00
M.Ravi
4ce1ff073a Some more modal styles 2017-09-28 23:31:29 +02:00
M.Ravi
f60a2c3482 Make correct icons load on dcl createvm error modal 2017-09-28 23:20:43 +02:00
M.Ravi
9cab43f051 Update modal with html from server 2017-09-28 23:03:22 +02:00
M.Ravi
0202d5ba93 Add initial values for dcl billing form 2017-09-28 22:56:33 +02:00
PCoder
fcda0b5637 DCL payment page: Get form data from session on error 2017-09-29 01:25:22 +05:30
PCoder
4efc1b4943 Merge branch 'master' into bugfix/stripe_error 2017-09-28 23:43:21 +05:30
M.Ravi
03442398c2 Handle message create vm request in js 2017-09-28 17:31:29 +02:00
M.Ravi
c13015eabd Refactor and correct some logic 2017-09-28 15:56:09 +02:00
Arvind Tiwari
9c69c4cb25 Update landing-page.css 2017-09-28 19:14:13 +05:30
Arvind Tiwari
519a74e834 logo update 2017-09-28 19:08:25 +05:30
Arvind Tiwari
d751aa6d63 padding fix 2017-09-28 18:48:21 +05:30
Arvind Tiwari
7bd61f708c Merge branch 'master' into task/3785/my_bills_page 2017-09-28 18:38:49 +05:30
Arvind Tiwari
ba366eed77 merge master 2017-09-28 18:37:33 +05:30
M.Ravi
57f0757fa3 Update datacenterlight django.po 2017-09-28 15:00:44 +02:00
Arvind Tiwari
abb7c38d75 translation fix 2017-09-28 18:27:26 +05:30
M.Ravi
46925c29c4 Add error detail to the message 2017-09-28 14:57:03 +02:00
Arvind Tiwari
b65bc3f1f5 merge master 2017-09-28 18:23:48 +05:30
M.Ravi
4add1af933 Fix flake8 warnings 2017-09-28 14:49:17 +02:00
M.Ravi
07aaa20efe Fix issue : stripe user created every time for unauthenticated user 2017-09-28 14:46:56 +02:00
PCoder
e110fd10f2 Update Changelog 2017-09-28 05:06:30 +05:30
Pcoder
ed459c827b Merge pull request #493 from pcoder/tiwariav-task/3756/landing_billing_page
Tiwariav task/3756/landing billing page
2017-09-27 23:32:05 +00:00
PCoder
3ceaf0192f Fix flake8 warnings 2017-09-28 04:57:40 +05:30
PCoder
39cb930326 Compute vm price on post of dcl index and set in session 2017-09-28 04:22:15 +05:30
PCoder
e215a85a4d dcl order confirmation: add code to show button on modal 2017-09-28 04:14:35 +05:30
PCoder
fccd75f1fc Add missing imports 2017-09-28 03:46:05 +05:30
PCoder
06ef940b01 Merge upstream 2017-09-28 03:33:43 +05:30
Arvind Tiwari
f0a49ef075 translations 2017-09-28 03:12:03 +05:30
Arvind Tiwari
88706b0088 merged master 2017-09-28 03:06:47 +05:30
Arvind Tiwari
4379cebbed default 'card' translated 2017-09-28 03:05:47 +05:30
Pcoder
e0c9764e4e Merge pull request #505 from tiwariav/bugfix/order_details
Bugfix/ order details page
2017-09-27 21:26:36 +00:00
Arvind Tiwari
3ba1f191a3 show period if dates exist 2017-09-28 02:47:58 +05:30
Arvind Tiwari
df67fa3333 period added 2017-09-28 02:39:55 +05:30
PCoder
4e080c9afc Invoice: Get VM name from id and configuration 2017-09-28 02:36:49 +05:30
Arvind Tiwari
858fdd5e3f Update order_detail.html 2017-09-28 02:11:11 +05:30
Arvind Tiwari
7039ccd3b9 modal btn color changed 2017-09-28 02:09:03 +05:30
Arvind Tiwari
c103c916ef Merge remote-tracking branch 'ungleich/master' 2017-09-28 02:06:24 +05:30
PCoder
5a43a38e19 Update Changelog 2017-09-28 01:57:17 +05:30
Pcoder
e4ba4f0dfc Merge pull request #496 from pcoder/task/3730/refactor_price_parameter
Task/3730,3736/Refactor price parameters in dcl flow and compute vm price parameter
2017-09-27 20:25:46 +00:00
PCoder
5a2a134070 Merge upstream master 2017-09-28 01:35:09 +05:30
PCoder
edd79bcd32 Update Changelog 2017-09-28 01:19:26 +05:30
Pcoder
a0eada2e77 Merge pull request #500 from pcoder/task/3764/show_cancelled_vms_my_orders
Task/3764/show cancelled vms my orders
2017-09-27 19:47:17 +00:00
PCoder
3bc82907a9 Merge branch 'master' into task/3764/show_cancelled_vms_my_orders 2017-09-28 01:14:37 +05:30
Arvind Tiwari
7a07785a94 vm cancel email subject changed 2017-09-28 01:11:39 +05:30
Arvind Tiwari
8b9935f677 padding fix 2017-09-28 00:59:49 +05:30
Arvind Tiwari
77b2684217 mobile alignment fix for btn 2017-09-28 00:50:38 +05:30
Arvind Tiwari
4194a7c2d7 table header fixed 2017-09-27 22:50:42 +05:30
M.Ravi
13556ef672 Merge branch 'master' into task/3672/cleaning_existing_tests 2017-09-27 14:18:14 +02:00
M.Ravi
f1d273b9d0 .gitignore: remove .gitconfig 2017-09-27 13:47:28 +02:00
M.Ravi
172fffe7be .gitignore: change .sql to *.sql 2017-09-27 13:13:16 +02:00
M.Ravi
aceaecc748 Add .gitconfig and .sql to .gitignore 2017-09-27 13:08:23 +02:00
Arvind Tiwari
11c1781839 fix for gmail autoformatiing 2017-09-27 04:37:02 +05:30
Arvind Tiwari
313b32e098 vm name bold in email 2017-09-27 04:24:22 +05:30
Arvind Tiwari
06bc37a977 paddings changed 2017-09-27 04:13:04 +05:30
Arvind Tiwari
937cd2cd82 minor fix 2017-09-27 03:41:18 +05:30
Arvind Tiwari
45df525a37 vm cancel name fix 2017-09-27 03:38:39 +05:30
Arvind Tiwari
96f24881fe vm name fix 2017-09-27 03:36:02 +05:30
Arvind Tiwari
f4b6b38522 minor fix 2017-09-27 03:28:06 +05:30
Arvind Tiwari
5747468c21 outline removed 2017-09-27 03:09:43 +05:30
Arvind Tiwari
2d06173edb logo padding 2017-09-27 02:50:59 +05:30
Arvind Tiwari
d888b260ee welcome user mail 2017-09-27 02:45:24 +05:30
Arvind Tiwari
8307636b9b Merge branch 'master' into task/3794/update_email_styles 2017-09-27 02:16:09 +05:30
Arvind Tiwari
fc6d600db3 Merge remote-tracking branch 'ungleich/master' 2017-09-27 02:15:47 +05:30
Arvind Tiwari
03b4ff1b65 png logo 2017-09-27 02:14:45 +05:30
Arvind Tiwari
d3f2fd2aa0 dcl logo changed to png 2017-09-27 02:14:20 +05:30
Arvind Tiwari
21660f8d00 font-size reduced, vm cancel and vm create email data fixed 2017-09-27 02:07:52 +05:30
Arvind Tiwari
96933d50c8 Update Changelog 2017-09-27 00:46:14 +05:30
Arvind Tiwari
ce63d397be Merge pull request #504 from tiwariav/task/3812/modal_weight_fix
Task/3812 modal font size and check icon weight fix
2017-09-27 00:42:37 +05:30
Arvind Tiwari
6ef5d2f777 typo fix 2017-09-27 00:08:14 +05:30
Arvind Tiwari
42985c28f1 using data.redirect to set redirect path on success 2017-09-26 22:58:56 +05:30
PCoder
e33e9cd1ae Merge branch 'master' into tiwariav-task/3756/landing_billing_page 2017-09-26 12:20:56 +05:30
PCoder
c17604e5c1 Merge master into task/3730/refactor_price_parameter 2017-09-26 12:16:50 +05:30
PCoder
a9e8d8bb34 Merge branch 'master' into task/3764/show_cancelled_vms_my_orders 2017-09-26 12:09:09 +05:30
Arvind Tiwari
2dbaa1c693 template name 2017-09-26 03:57:07 +05:30
Arvind Tiwari
2a99d053dc text fixes 2017-09-26 03:42:10 +05:30
Arvind Tiwari
3cf28c793c form method fix 2017-09-26 03:29:38 +05:30
Arvind Tiwari
dfbda2a53b load tag 2017-09-26 03:21:20 +05:30
Arvind Tiwari
3c32abbf8e dcl form added 2017-09-26 03:18:19 +05:30
Arvind Tiwari
050f750322 merged master 2017-09-26 03:06:12 +05:30
Arvind Tiwari
b782c6212a Merge remote-tracking branch 'ungleich/master' 2017-09-26 02:53:25 +05:30
Arvind Tiwari
a37c734c94 translation fix 2017-09-26 02:53:09 +05:30
Arvind Tiwari
f35c3dbc10 modal check icon thinner, terminate modal text smaller 2017-09-26 02:38:31 +05:30
PCoder
543465e89b Update Changelog for 1.2.3 2017-09-26 02:34:10 +05:30
PCoder
29a45e81bf Include cdist 4.7.0 in requirements.txt 2017-09-26 02:24:17 +05:30
PCoder
7933584942 Updated changelog 2017-09-26 02:13:49 +05:30
Pcoder
3095b64561 Merge pull request #498 from pcoder/task/3781/resend_activation_mail
Task/3781/resend activation mail
2017-09-25 20:39:20 +00:00
PCoder
6bf89669ef some more de translations 2017-09-26 02:07:28 +05:30
PCoder
3b55e331ed Merge branch 'master' into task/3764/show_cancelled_vms_my_orders 2017-09-26 01:58:42 +05:30
PCoder
75ff7e4ea8 Added some translations 2017-09-26 01:53:19 +05:30
Arvind Tiwari
1fdc533f4d bills list page updated 2017-09-26 01:18:39 +05:30
PCoder
81bc5d5555 Merge branch 'master' into task/3781/resend_activation_mail 2017-09-26 01:18:02 +05:30
Arvind Tiwari
230866e563 Merge branch 'master' into task/3808/dcl_order_confirm 2017-09-26 01:10:16 +05:30
Arvind Tiwari
a646fef2c7 merged master 2017-09-26 01:09:45 +05:30
PCoder
25f3118126 Updated Changelog 2017-09-26 01:06:41 +05:30
Pcoder
ed4c968974 Merge pull request #501 from pcoder/bug/3806/cannot_create_vms_after_password_reset
Fix cannot create vms after password reset
2017-09-25 19:34:39 +00:00
Arvind Tiwari
63ea7dac37 datacenterlight invoice redesigned 2017-09-26 01:04:38 +05:30
PCoder
6321f44c08 Merge branch 'master' into bug/3806/cannot_create_vms_after_password_reset 2017-09-26 00:54:33 +05:30
PCoder
177c4719e1 Merge remote-tracking branch 'mainRepo/master' 2017-09-26 00:53:58 +05:30
verysanghee
f35663b5ac Update django.po 2017-09-25 21:18:46 +02:00
verysanghee
e85a7c9e2a Update django.po 2017-09-25 21:14:19 +02:00
verysanghee
2f4b7bb749 Update django.po 2017-09-25 21:07:33 +02:00
PCoder
f0ba9a0c0c Updated hosting django.po 2017-09-26 00:36:06 +05:30
PCoder
a9755ccbff Updated hosting django.po 2017-09-26 00:34:33 +05:30
verysanghee
889d737c7c Update django.po 2017-09-25 20:58:59 +02:00
PCoder
e2779314b0 Fix cancel vm modal text translation 2017-09-26 00:25:54 +05:30
PCoder
c2844d25ed Corrected a de spelling 2017-09-26 00:06:17 +05:30
PCoder
78abc0c740 Merge branch 'master' into bug/3806/cannot_create_vms_after_password_reset 2017-09-25 23:55:20 +05:30
PCoder
bb8c1a72fd Add missing import get_language 2017-09-25 23:52:47 +05:30
verysanghee
04c29d0622 Update django.po 2017-09-25 20:17:12 +02:00
M.Ravi
a73bcaef05 Store hash 2017-09-25 09:35:18 +02:00
PCoder
70d5efb21a Update hosting django.po with a de translation 2017-09-25 02:09:49 +05:30
PCoder
46d82268f4 Show terminated in invoice for VM that has been terminated 2017-09-25 02:04:40 +05:30
PCoder
7fcece40c1 Using VMDetail model to show order details 2017-09-25 01:49:00 +05:30
PCoder
f2213305f6 Reformatted hosting views.py 2017-09-25 00:46:39 +05:30
PCoder
83ccb9cffa Added vmdetail migration file 2017-09-25 00:36:33 +05:30
PCoder
114511e924 Fixed some flake8 warnings 2017-09-25 00:34:18 +05:30
PCoder
f2f2fc22df Update VMDetail's terminated_at on delete of a vm 2017-09-25 00:30:28 +05:30
PCoder
7278a20135 Added get_or_create_vm_detail function 2017-09-25 00:02:36 +05:30
PCoder
f4899ffc18 Added missing get_language import 2017-09-25 00:01:48 +05:30
PCoder
a45679d89a Added VMDetail model 2017-09-25 00:00:45 +05:30
PCoder
cd5607b44e Updated hosting django.po 2017-09-24 19:04:18 +05:30
PCoder
84db1606a3 Added resend_activation_link.html template file 2017-09-24 18:04:11 +05:30
PCoder
24522908e0 Added resend activation link to login page 2017-09-24 16:02:06 +05:30
PCoder
3e32e5127b Added ResendActivationLinkViewMixin 2017-09-24 15:55:52 +05:30
PCoder
af426c5b7a Added ResendActivationEmailForm and translation function to untranslated texts 2017-09-24 15:54:45 +05:30
PCoder
3247616137 Added resend activation link url 2017-09-24 15:53:08 +05:30
PCoder
afc368e9dd Added ResendActivationEmailView 2017-09-24 15:52:17 +05:30
M.Ravi
0974376e9f Reformatted code 2017-09-24 09:34:30 +02:00
PCoder
03a565b4d0 Corrected a small de text füll->fülle 2017-09-24 04:44:20 +05:30
PCoder
09dc0cde13 Removed unwanted js code that was causing error 2017-09-24 04:39:00 +05:30
PCoder
39a2455817 Merged upstream master into task/3730/refactor_price_parameter 2017-09-24 04:20:41 +05:30
PCoder
c6c5a20a17 Updated datacenterlight django.po 2017-09-24 03:06:05 +05:30
PCoder
9491bb81a2 Added missing import after merge 2017-09-24 02:03:48 +05:30
PCoder
656e7563fd Merged upstream master into tiwariav-task/3756/landing_billing_page 2017-09-24 01:31:57 +05:30
PCoder
300997699a Redirecting new user to my virtual machines page and not forcing ssh key for creating a vm 2017-09-24 01:08:15 +05:30
PCoder
537e350c8c Redirecting users on creation of accounts to my virtual machines page 2017-09-24 00:22:18 +05:30
Arvind Tiwari
313b2b2f57 fixed vreate vm error 2017-09-23 23:47:25 +05:30
Arvind Tiwari
cd3fdcf935 Updated pre-changelog 1.2.3 2017-09-23 23:33:48 +05:30
Arvind Tiwari
ae1a317bf9 Merge pull request #486 from tiwariav/task/3728/vm_teminate_animation
task/3728 vm termination animation
2017-09-23 23:26:00 +05:30
Arvind Tiwari
7456baac16 merged master 2017-09-23 23:05:10 +05:30
Arvind Tiwari
eca7ba01c5 fixed duplicate translation 2017-09-23 22:54:17 +05:30
Arvind Tiwari
363017d85f Merge pull request #488 from tiwariav/task/3777/hosting_calculator
Task/3777 hosting create vm calculator
2017-09-23 22:50:25 +05:30
PCoder
8781905fc6 Removed DataCenterLight PricingView 2017-09-23 21:24:42 +05:30
PCoder
b428a0933e Deleted datacenterlight pricing.html 2017-09-23 21:23:48 +05:30
PCoder
83b52d95ae Merge branch 'master' into task/3730/refactor_price_parameter 2017-09-23 21:18:54 +05:30
Arvind Tiwari
487af6e1c8 Update Changelog 2017-09-23 20:44:53 +05:30
Arvind Tiwari
61a1486ea4 Merge pull request #497 from tiwariav/bugfix/hosting_invoice_page
bugfix/hosting_invoice_page
2017-09-23 20:33:05 +05:30
Arvind Tiwari
e9721705ca margin fix 2017-09-23 20:30:53 +05:30
Arvind Tiwari
2385c108e1 Merge pull request #491 from tiwariav/task/3786/hosting_invoice_page
Task/3786 order-details/invoice page redesign
2017-09-23 20:07:05 +05:30
Arvind Tiwari
3685bf591d error msgs translation 2017-09-23 19:02:23 +05:30
Arvind Tiwari
be0c50aa2f error msgs translation 2017-09-23 19:01:22 +05:30
Arvind Tiwari
ec2413d3dc removed extra quote 2017-09-23 18:57:35 +05:30
PCoder
dec1f34250 Updated Changelog with pre-1.2.3 text 2017-09-23 17:17:24 +05:30
Pcoder
1b7da239e1 Merge pull request #492 from pcoder/feature/cms_prefix
Added /cms prefix for all the django-cms generated urls
2017-09-23 11:40:39 +00:00
PCoder
93d36306fb Removed total and price fields used in dcl flow 2017-09-23 13:21:01 +05:30
PCoder
0bc2b22f62 Reformatted datacenterlight/tasks.py 2017-09-23 13:09:14 +05:30
PCoder
b17af3bb09 Merge branch 'task/3736/refactor_compute_vm_price' into task/3730/refactor_price_parameter 2017-09-23 12:48:31 +05:30
PCoder
8de4a75107 Removed some occurrences of price 2017-09-23 12:48:21 +05:30
PCoder
9ab7622a9c Reformatted stripe_utils.py 2017-09-23 03:25:48 +05:30
PCoder
99e5cf5587 Using refactored get_vm_price and get_vm_plan_name functions 2017-09-23 03:18:05 +05:30
PCoder
285d664660 Refactored obtaining stripe plan name to utils.stripe_utils.get_stripe_plan_name 2017-09-23 03:17:21 +05:30
PCoder
3bb7f09d41 Refactored obtaining vm price to utils.hosting_utils.get_vm_price 2017-09-23 03:16:18 +05:30
Arvind Tiwari
ad66b16fd3 other app translation files change undo 2017-09-23 02:31:23 +05:30
Arvind Tiwari
6983b6f72e all emails redesigned 2017-09-23 02:27:19 +05:30
Arvind Tiwari
057a2c77a6 password reset email, user activation email redesigned 2017-09-23 01:57:40 +05:30
PCoder
ea9e62db37 Reverted back django cms ckeditor migration module code 2017-09-23 01:55:21 +05:30
Arvind Tiwari
29fb7224a6 new translations 2017-09-23 01:08:09 +05:30
Arvind Tiwari
6004a7ede4 new welcome email 2017-09-23 01:03:43 +05:30
M.Ravi
c362dccd0f Handling payment error response by json 2017-09-22 21:30:42 +02:00
M.Ravi
a48188a190 datacenterlight: Added create vm modal and responding with json 2017-09-22 21:20:00 +02:00
M.Ravi
ab66d25abe Removed some commented code 2017-09-22 13:54:20 +02:00
M.Ravi
0e5a27862a Added base_url and fixed new account emails 2017-09-22 13:46:22 +02:00
M.Ravi
ca73e1bb33 Fixed a logger message 2017-09-22 13:45:15 +02:00
M.Ravi
4c0c1ffb27 Do a user login after creation 2017-09-22 12:46:33 +02:00
M.Ravi
31f7c4a51a Simplified code 2017-09-22 12:38:05 +02:00
M.Ravi
994ffaf117 Send account details in email 2017-09-22 12:01:09 +02:00
M.Ravi
f67b69d490 Formatted code and added condition to create user only if an email does not exist 2017-09-22 11:45:21 +02:00
M.Ravi
faa26a05dd Reverted back some lines for preserving format 2017-09-22 08:51:35 +02:00
M.Ravi
2b0dbfa1e5 Added /cms prefix to django-cms urls 2017-09-22 08:47:42 +02:00
Arvind Tiwari
0993f2cab1 merged master 2017-09-21 19:43:20 +05:30
Arvind Tiwari
4a1596b093 merged master 2017-09-21 19:41:45 +05:30
Arvind Tiwari
6be245a811 merged master 2017-09-21 19:38:47 +05:30
Arvind Tiwari
1c0f0da96e conditional texts 2017-09-21 19:32:22 +05:30
Arvind Tiwari
a16dbb50d8 design fixes 2017-09-21 19:17:10 +05:30
M.Ravi
e5ad57d3f1 Resolved some issues 2017-09-21 14:29:49 +02:00
Arvind Tiwari
db3955ab94 error 500 fixed 2017-09-21 17:45:12 +05:30
Arvind Tiwari
a792911dea hosting view fix 2017-09-21 17:22:02 +05:30
Arvind Tiwari
5d8fb71215 removed redirects form get_context() to get() 2017-09-21 16:38:54 +05:30
Arvind Tiwari
2c4390767d minor fixes 2017-09-21 15:14:15 +05:30
Arvind Tiwari
6c381dd3fb invoice page redesigned 2017-09-21 15:03:00 +05:30
PCoder
e2cb70a697 first attempt at refatoring the user creating to order confirmaton page 2017-09-21 06:41:09 +05:30
Arvind Tiwari
6dfbf67d7d rearranging text 2017-09-21 02:50:07 +05:30
PCoder
143f40bd2d Merge branch 'task/3756/landing_billing_page' of https://github.com/tiwariav/dynamicweb into tiwariav-task/3756/landing_billing_page 2017-09-21 02:41:26 +05:30
Arvind Tiwari
1eff51099c exception handling fix 2017-09-21 02:26:42 +05:30
Arvind Tiwari
dd77f40707 top options added 2017-09-21 02:23:08 +05:30
Pcoder
dd3c967500 Merge pull request #490 from pcoder/fix_digitalglarus_subdomain
Fix broken subdomain - digitalglarus.ungliech.ch
2017-09-20 20:52:37 +00:00
PCoder
2c2ee0f4a4 Some more translations 2017-09-21 02:18:39 +05:30
Arvind Tiwari
f0e50a4e94 removed commented code 2017-09-21 01:20:51 +05:30
Arvind Tiwari
98eb2f85d8 printing pdf 2017-09-21 01:19:38 +05:30
Arvind Tiwari
0f5bf606da minor fixes 2017-09-20 23:32:48 +05:30
Arvind Tiwari
ec354332f8 translation fix 2017-09-20 23:28:36 +05:30
Arvind Tiwari
65618bb2aa merged master 2017-09-20 23:24:20 +05:30
Arvind Tiwari
fc03df4652 merged master 2017-09-20 23:21:24 +05:30
Arvind Tiwari
f4766c7d7c merged master 2017-09-20 23:19:32 +05:30
Arvind Tiwari
37017dd31a minor mods 2017-09-20 23:06:51 +05:30
Arvind Tiwari
636ccd4b9d Merge branch 'master' into task/3786/hosting_invoice_page 2017-09-19 15:03:36 +05:30
Arvind Tiwari
98f094e5b8 initial changes 2017-09-19 15:03:06 +05:30
Arvind Tiwari
04126c69ee vm name added 2017-09-19 14:34:53 +05:30
Arvind Tiwari
445359e1ed modal restyle 2017-09-19 14:29:18 +05:30
Arvind Tiwari
c53c966136 success modal modification 2017-09-19 14:24:23 +05:30
Arvind Tiwari
4787276afe bootstrap form input box-shadow removed 2017-09-19 13:54:27 +05:30
Arvind Tiwari
e893f1baf1 padding fix 2017-09-19 01:17:15 +05:30
Arvind Tiwari
3ef07758ef translation and text fix 2017-09-19 01:08:27 +05:30
Arvind Tiwari
78423c83e3 removed error details from error msg 2017-09-19 00:59:51 +05:30
Arvind Tiwari
61bf158238 fix 2017-09-19 00:25:38 +05:30
Arvind Tiwari
8db7ead9e2 checking VM termination error 2017-09-19 00:24:06 +05:30
Arvind Tiwari
43300c7226 translations added, modal fixed 2017-09-18 23:21:04 +05:30
Arvind Tiwari
226f744bae success modal added 2017-09-18 21:52:59 +05:30
Arvind Tiwari
b276194f31 width normalized 2017-09-18 20:18:02 +05:30
Arvind Tiwari
772469a23e design modifications 2017-09-18 19:49:14 +05:30
PCoder
28661c0c48 Replaced all occurrences of digitalglarus.ungliech.ch with digitalglarus.ch 2017-09-18 11:57:41 +05:30
Arvind Tiwari
2de0fc13b9 translation fix 2017-09-15 20:17:54 +05:30
Arvind Tiwari
556ed75262 translations 2017-09-15 20:14:32 +05:30
Arvind Tiwari
87327d028a hosting form view modified 2017-09-15 20:03:52 +05:30
Arvind Tiwari
d49e90bd20 catching WrongIdError 2017-09-15 18:15:06 +05:30
Arvind Tiwari
9c0cefd419 js polling timing to 5s 2017-09-15 17:44:27 +05:30
Arvind Tiwari
bbb1919404 error msg fix 2017-09-15 17:38:52 +05:30
Arvind Tiwari
77f2454e3c remove error msg on successful termination 2017-09-15 17:20:42 +05:30
Arvind Tiwari
0c3f605735 status pending style in vm-list 2017-09-15 17:02:02 +05:30
Arvind Tiwari
fdb5039c02 minor adjustments 2017-09-15 16:57:17 +05:30
Arvind Tiwari
6136a48961 edge cases handled 2017-09-15 16:46:56 +05:30
Arvind Tiwari
852c1228ba minor fix 2017-09-15 14:48:11 +05:30
Arvind Tiwari
75156d2c00 undo changes in navbar 2017-09-15 01:00:07 +05:30
Arvind Tiwari
a935871722 code reformating 2017-09-15 00:57:59 +05:30
Arvind Tiwari
c2b5c62014 hosting calculator added 2017-09-15 00:49:39 +05:30
Arvind Tiwari
8402fd4fd3 merge master 2017-09-15 00:19:01 +05:30
Arvind Tiwari
a1a90ed5d0 while loop code formating 2017-09-15 00:14:09 +05:30
Arvind Tiwari
8393afe141 translations and test methods removed 2017-09-14 02:59:08 +05:30
Arvind Tiwari
e045caebbe redirect on success 2017-09-14 02:52:37 +05:30
Arvind Tiwari
a808f3bf7e error fix on termination 2017-09-14 02:48:56 +05:30
Arvind Tiwari
abc290de61 added error msg 2017-09-14 02:43:01 +05:30
Arvind Tiwari
8ca1b13f80 template fixed 2017-09-14 02:29:51 +05:30
Arvind Tiwari
07a464231d animation added to vm termination 2017-09-14 02:24:10 +05:30
Arvind Tiwari
787ff6b6d3 mixxing translation 2017-09-13 01:58:40 +05:30
Arvind Tiwari
6237469ab2 mobile order fixed 2017-09-13 01:55:58 +05:30
Arvind Tiwari
4d2903ca86 billing address save and get 2017-09-12 00:54:02 +05:30
Arvind Tiwari
5f6f2e4ca9 added more translations 2017-09-11 23:52:30 +05:30
Arvind Tiwari
5d9a20dd94 merged master and added translations 2017-09-11 23:47:35 +05:30
Arvind Tiwari
d4e73f4c74 Merge branch 'master' into task/3756/landing_billing_page 2017-09-09 02:13:24 +05:30
Arvind Tiwari
7a4573f7ad user logged in after signup on payment page 2017-09-09 02:10:25 +05:30
Arvind Tiwari
f2a04c20f2 form submit fix 2017-09-09 00:05:13 +05:30
Arvind Tiwari
2dc9ce4d31 vm specs fixed 2017-09-08 23:53:32 +05:30
Arvind Tiwari
de1895d2a0 billing address form fixed 2017-09-08 23:46:29 +05:30
Arvind Tiwari
daba6ae2fb merged master 2017-09-08 20:22:22 +05:30
Arvind Tiwari
0ed104cd56 logged in user 2017-09-07 19:56:34 +05:30
Arvind Tiwari
114b4bea48 new translations 2017-09-07 02:52:25 +05:30
Arvind Tiwari
db90ea8713 new translations 2017-09-07 02:51:07 +05:30
Arvind Tiwari
98e8be1da9 landing payment page layout complete 2017-09-07 02:47:57 +05:30
Arvind Tiwari
aaf3bc18d8 landing_payment all sections arranged 2017-09-06 00:12:13 +05:30
Arvind Tiwari
09b80467b9 landing payment page cleanup 2017-09-05 00:24:18 +05:30
Arvind Tiwari
046b716091 Merge branch 'master' into task/3756/landing_billing_page 2017-09-04 23:58:22 +05:30
Arvind Tiwari
cc5eaa4047 new template for datacenterlight/payment 2017-09-01 23:06:57 +05:30
PCoder
8b5117ba80 Commented code that was causing the error when executing the tests 2017-08-25 13:28:16 +05:30
Arvind Tiwari
06c68873ae downtime.html modified as a static html page 2017-08-20 03:59:24 +05:30
Arvind Tiwari
0e72f8a436 downtime page 2017-08-20 03:30:10 +05:30
390 changed files with 17633 additions and 32943 deletions

7
.gitignore vendored
View file

@ -36,3 +36,10 @@ secret-key
.env
*.mo
*.log
*.sql
/utils/optimize/
# to keep empty dirs
!.gitkeep
*.orig

View file

@ -1,13 +1,15 @@
language: python
python:
- "3.5"
- "3.6"
- "3.4.2"
# - "3.6"
env:
# Set a dummy secret key
- DJANGO_SECRET_KEY=0
- DJANGO_SECRET_KEY=0 OPENNEBULA_USERNAME='test' OPENNEBULA_PASSWORD='test' OPENNEBULA_PROTOCOL='http' OPENNEBULA_DOMAIN='test_domain' OPENNEBULA_PORT='2633' OPENNEBULA_ENDPOINT='/RPC2' DCL_TEXT='Data Center Light' CELERY_MAX_RETRIES=0 UNGLEICH_SITE_CONFIGS='{"localhost":{"MULTISITE_CMS_URL":"dynamicweb.urls"}}'
# install dependencies
install: "pip install -r requirements.txt"
script:
- flake8
- python manage.py test
- python manage.py compilemessages
- python manage.py test -v 3
# - coverage run --source='.' manage.py test dynamicweb -v 3
# - coverage report

235
Changelog
View file

@ -1,3 +1,219 @@
Next:
* bugfix: Use correct version of django-multisite (MR #676)
2.4.1: 2018-10-18
* bugfix: Update pycryptodome module from 3.4 to 3.6.6 (PR #674)
2.4: 2018-10-18
* #5681: [hosting,dcl] Allow admin to lower minimum RAM to 512 MB (PR #672)
2.3.1: 2018-10-17
* bugfix: [hosting, dcl] Show VAT percent rounded to 2 decimal places in the order confirmation page (PR #673)
2.3: 2018-10-08
* #5690: Generic payment page - allow admin to add a onetime/monthly product and the frontend for user to pay for this product (PR #666)
2.2.2: 2018-09-28
* #5721: Set calculator OS list in alphabetical order and set `Devuan Ascii` as the default (PR #668)
* bugfix: Fix some typos and correct DE translations (PR #667)
2.2.1: 2018-09-25
* feature: Change DCLNavbarPlugin to show login option only if set (PR #665)
* bugfix: Log opennebula errors and send proper message when vm terminate is not completed in the stipulated time (PR #648)
2.2: 2018-09-06
* bugfix: Include price in the Stripe plan name to make it distinct and to correct pricing since version 1.9
2.1.2: 2018-08-30
* bugfix: [blog, comic] Set blog rss feed for all blog templates
2.1.1: 2018-08-24
* #5487: [hosting] Add explicit warning message for teminating VM (PR #656)
* bugfix: [dg] Send email to admin on dg subscription and increase cc_brand field to 128 characters (PR #652)
* #5458: [admin] Make hostingorder more readable (PR #657)
* bugfix: [CMS templates] Set description meta field of ungleich template (was missing before) and set ungleich glarus ag uniformly as author of various CMS pages (PR #653)
* #5473: Ping a VM before saving ssh key of the user (PR #655)
2.1: 2018-08-21
* Bugfix: Increase CC brand name fields from 10 to 128 characters (PR #654)
2.0.5: 2018-08-08
* Fix IPv6 VM name in the billing invoice
2.0.4: 2018-08-07
* Add RSS feed link to the footer of the blog template (PR #651)
* #5308: [ipv6only] Fix - when creating a VM, the name begins with v6only (PR #649)
* #5293: Use `terminate-hard` action instead of `terminate` in the opennebula call to terminate a vm (PR #650)
2.0.3: 2018-07-18
* Remove unused /comic url (PR #644)
* #5126: Allow dynamicweb sites to be iframed on other by setting `X_FRAME_OPTIONS_ALLOW_FROM_URI` (PR #645)
2.0.2: 2018-07-14
* bugfix: [blog] Add missing content block in the blog_ungleich.html template file
2.0.1: 2018-07-14
* bugfix: [blog] Enable content/structure mode in blog page
2.0: 2018-07-07
* #3747: [dcl,hosting] Add multiple cards support (PR #530)
* #3934: [dcl,hosting] Create HostingOrder outside celery task and add and associate OrderDetail with HostingOrder (PR #624)
* #4890: [hosting] Manage SSH keys using IPv6 of the VM (PR #640)
* bugfix: Fix flake8 error that was ignored in release 1.9.1
1.9.1: 2018-06-24
* #4799: [dcl] Show selected vm templates only in calculator (PR #638)
* #4847: [comic] Add google analytics code for comic.ungleich.ch (PR #639)
* feature: add vm_type option to vm_template and dcl calculator to distinguish between public and ipv6only templates (PR #635)
1.9: 2018-05-16
* #4559: [cms] enable discount on cms calculator
1.8: 2018-05-01
* #4527: [hosting] cms calculator on non-cms pages for the hosting app
* bgfix: [dcl] navbar dropdown target fix
* bgfix: [hosting] login/signup pages footer link fix
1.7.2: 2018-04-30
* bgfix: [cms] add favicon extension to ungleich cms pages
* #4474: [cms] reduce heading slider side padding
1.7.1: 2018-04-21
* #4481: [blog] fix de blog pages 500 error
* #4370: [comic] new url /comic to show only comic blogs
1.7: 2018-04-20
* bgfix: [all] Make /blog available on all domains
* #4367: [dcl] email logo resolution fix
* #4376: [cms] dcl promo section plugin link color changed to brighter shade
* #4379: [dcl] pricing without VAT
* bgfix: [blog] fix top menu items to show only one item
* #4297: [cms] favicon as a page attribute for dcl template
1.6.5: 2018-04-08
* #4396: [ungleich] add favicon to ungleich blog
* #4327: [dcl] fix navbar logo repeat
* bgfix: [hosting] fix broken footer links
* bgfix: [dcl] remove ghost migrations from squashed migration
* bgfix: [cms] redirect multi-tenant urls to /cms also
1.6.4: 2018-04-06
* #4362: [cms] Fix the need of dummy home page for different CMS-based sites
1.6.3: 2018-04-05
* #4377: [cms] header btn external link fix
* #4378: [dcl cms] update CMS Integration to have different content for different domains
1.6.2: 2018-04-01
* bgfix: [dcl] Fix user activation email style; add/correct some DE text
* #4373: [dcl] update footer menu for pw reset/login/signup/activation request pages
1.6.1: 2018-03-28
* bgfix: fix header slider interval issue
* #4315: [cms] navbar consistency from cms page to static page
* #4313: [hosting] footer style fix
1.6: 2018-03-25
* #4266: [dcl cms] add promotional section plugin
* #3842: [dcl, hosting] change number formatting for all the numbers from german to english locale
1.5.5: 2018-03-22
* #4278: [dcl cms] edit options for cms navbar and header plugins
* bgfix: [dcl cms] fix link plugin issues and section image alignment
1.5.4: 2018-03-17
* bgfix: [dcl cms] update DCLNavbarPlugin to allow change of brand logo and url
1.5.3: 2018-03-16
* #4262: [dcl] Bugfix for incorrect template name
1.5.2: 2018-03-14
* [devuan, ipv6] Add google analytics code for devuanhosting.com, ipv6onlyhosting.{com,net}
* #4246: [dcl cms] Enable full width options for DCL plugins
* #4247: [dcl cms] Fix alignment issues with the "plain heading" option
1.5.1: 2018-03-11
* bgfix: [dcl cms] Remove datacenterlight_content placeholder conf so that we can create a cms page without calculator
1.5: 2018-03-09
* #3554: [dcl] Remove some more beta access resources (some were left in the earlier release)
* #3452: [hosting] Back button management and cache control for hosting views
* #3718: [dcl] downtime page
* #4119: [dcl] CMS plugins for dcl pages
* #4231: [hosting] add company fiscal number to invoice footer
1.4.1: 2018-02-23
* bgfix: [dcl] fix header style for tos page
* #3798: [dg] Redirect user to digital glarus on clicking logo in the email
* #3554: [dcl] Remove beta access resources
* #4166: [glasfaser] heading text not to be blocked by topnav on mobile after navbar menu click
* bgfix: [hosting] Change sdd_size to ssd_size in VirtualMachineSerializer
* bgfix: [dg] fix error on /digitalglarus/supporters/
* #4166: [dcl] Fix scroll on top menu click
* #4150: [ungleich] mobile font alignment
* #3713: [dcl] clean up css
* bgfix: [glasfaser] mobile top navigation toggle button fixed
1.4: 2018-02-22
* #4104: [cms, nuglarus] Multisite and access control of cms pages per user
1.3.3: 2018-02-21
* Add ALLOWED_HOST nüglarus.ch IDN
* #4105: [cms] Add cms footer plugin
* #4049: [blog] Replace header background image
* #3670: [hosting] Shorten ssh key name
* #4046: [hosting] Add sdd_size, hdd_size to VirtualMachineSerializer (No visual change)
* bgfix: [hosting] increase invoice pdf resolution
1.3.2: 2018-01-16
* #4000: [all] Replace all ungleich.com with ungleich.ch
* #4067: [ungleich] mobile navbar toggle fix
* #4103: [dcl] Add "Terms of Service" item to the footer
1.3.1: 2017-12-31
* feature: [all] Load email configurations host, port and use_tls from env
* bugfix: [all] Use ungleich's smtp as relayhost for sending emails
1.3: 2017-12-27
* #3911: [dcl] Integrate resend activation link into dcl landing payment page
* #3972: [hosting] Add ungleich company info to invoice footer
* #3974: [hosting] Improve invoice number: Show 404 for invoice resources that do not belong to the user
* #3961: [ungleich] Add video cover to the header on ungleich.ch landing page and add corresponding cms plugin
* #3774: [hosting] Update Stripe subscription on vm delete
* [ungleich] Update text on landing page
* #3601: [dcl, hosting] Change minimum required RAM from 2GB to 1GB
* #3973: [dcl] Update datacenterlight and glasfaser contact address to Linthal and company name to "ungleich glarus ag"
* #3993: [dg] Fix new user membership payment by setting cardholder_name field for UserBillingAddressForm
* #3799: [dg] Make digital glarus billing work as monthly subscription
* #3994: [dg] Add a line on signup for clarifying dcl users can login without new signup
1.2.13: 2017-12-09
* [cms] Introduce UngleichHeaderBackgroundImageAndTextSliderPlugin that allows to have scrolling images and texts
* [cms] Remove <p> tag for ungleich cms customer item template
1.2.12: 2017-12-09
* #3594: [digitalglarus] Remove white scroll bar on the right in mobile
* #3905: [ungleich] Update ungleich.ch header into a slider
* #3968: [ungleich] Fix navbar logo alignment
* [all] Enable logging custom modules
1.2.11: 2017-11-30
* [all] TravisCI: Test against python 3.4.2 only
* [ungleich] Remove data-replaced image in ungleich CMS services item plugin template
1.2.10: 2017-11-26
* #3843: [ungleich] Add generic ungleich CMS template
* #3672: [all] Clean existing automated tests
1.2.9: 2017-11-13
* #3848: [ungleich] Optimize ungleich.ch landing page
* #3360: [ungleich] Ungleich.ch landing page animation fix
* #3421: [hosting] Signup form placeholder translations
* #3856: [ungleich] Glasfaser text modified
* bugfix: [blog] Redirect user to ungleich home on ungleich logo click
* #3858: [dcl] Change "affordable vm ..." text to "Ready in 30 seconds ..."
1.2.8: 2017-10-21
* Remove ALLOWED_HOST alplora.ch
* Add ALLOWED_HOST hack4glarus.ch
* Fetch page_title and meta_description dynamically in glasfaser CMS template
1.2.7: 2017-10-20
* Bugfix: [dcl, hosting] Fix Stripe js error in confirm payment page
* #3847: [ungleich] change text 'hosting products' -> 'our products'
* #3829: [dcl] Handle landing login fail in payment page itself
* #3794: [dcl, hosting] Update email styles
* #3828: [dcl, hosting] invoice period set to show monthly subscription
* #3838: [hosting] restyle signup/login/password reset/password pages
* Bugfix: [dg] Remove validate email link in the registration email
* Feature: [ungleich_page] Add new glasfaser CMS template
1.2.6: 2017-10-10
* Bugfix: [dcl] Refactor and optimize images, links in glasfaser page
* Bugfix: [dcl] Fix email not being sent issue
1.2.5: 2017-10-10
* #3785: [hosting] update 'my bills' page design
* Bugfix: [hosting] card details input form alignment fix
* #3823: [hosting] favicon link fixed
* #3844: [dcl] Add Glasfaser page for advertisement
1.2.4: 2017-10-02
* #3780: [hosting] Store VM details locally
* #3764: [hosting] Show cancelled VMs' invoices
* #3736: [dcl] Refactor the place where we compute the VM price
* #3730: [dcl] Refactor price parameter passed in the DCL flow
* #3807: [dcl] Remove PricingView as it is no more used
* #3813: [hosting] JS error in create ssh key page
* #3756: [dcl] Update landing calculator and billing info page
* Bugfix: Fix PR 493 bug that creates a new StripeCustomer for each buying of VM with the same email id
* #3835: [all] Forbidden (403) CSRF verification failed issue.
* Bugfix: [hosting] Dashboard strictly available after login
* #3808: [dcl] Order confirmation page redesign
1.2.3: 2017-09-25
* #3484: [dcl, hosting] Refactored account activation, password reset, VM order and cancellation email
* #3731: [dcl, hosting] Added cdist ssh key handler
* #3628: [dcl] on hosting, VM is created at credit card info submit
* #3772: [dcl] Updated hosting app billing into monthly subscription and added new text and translations
* #3786: [hosting] Redesigned the hosting invoice and order-confirmation page
* #3728: [hosting] VM Termination animation added
* #3777: [hosting] Create new VM calculator added like dcl landing
* #3781: [hosting] Resend activation mail
* #3806: [hosting] Fix can not create VMs after password reset
* #3812: [hosting] Modal check icon made thin and font-size fixed
* Feature: [cms, blog] Added /cms prefix for all the django-cms generated urls
* Bugfix: [dcl, hosting] added host to celery error mails
* Bugfix: [ungleich] Fixed wrong subdomain digitalglarus.ungleich.ch
1.2.2: 2017-09-08
* #3704: [hosting] Added my settings page
* #3771: [datacenterlight] Fixed the inconsistency in navbar style in billing page and onward
@ -17,8 +233,8 @@
* #3765: [hosting] Text fix Your SSH Keys to My SSH Keys
* #3639: [datacenterlight] Added navbar menu after payment page on landing
* #3735: [hosting] Increased modal width and modal button width
* #3709: Activated Text Plugin by default for the Page Title Text, enabled <title> tag text management
* #3768: [datacenterlight, hosting] Fixed missing DE translation
* #3709: Activated Text Plugin by default for the Page Title Text, enabled <title> tag text management
* #3768: [datacenterlight, hosting] Fixed missing DE translation
* #3678: [datacenterlight, hosting] Removed Lato font files
1.1.1: 2017-08-29
* #3709: [datacenterlight] Added faq tos cms template
@ -63,7 +279,7 @@
1.0.22: 2017-07-30
* #3593: [datacenterlight] Removed underbars between social icons in index
* #3509: [datacenterlight, hosting] Made navbar transparent and removed mobile navbar bug in login/signup/reset-password
* #3592: [datacenterlight] Changed “Order Now” button text to “Continue/weiter”
* #3592: [datacenterlight] Changed “Order Now” button text to “Continue/weiter”
* #3579: [datacenterlight] Removed “blinks” on click on navbar menus
* #3577: [datacenterlight] Added backend CPU, RAM, SSD fields validation
* #3615: [datacenterlight] Decoupled landing VM templates from OpenNebula
@ -74,7 +290,7 @@
* #3629: [datacenterlight] Fixed navbar language switching bug
1.0.21: 2017-07-21
* #3591: [datacenterlight, payment] Fixed card holder name to appear on Confirm Order page
* #3558: [datacenterlight] Changed font family and background color for header
* #3558: [datacenterlight] Changed font family and background color for header
* #3581: [datacenterlight] Lead font weight change
* #3584: [all] Add flag is_superuser=True in MyUserManager
1.0.20: 2017-07-18
@ -146,14 +362,14 @@
1.0.5: 2017-06-06
* [all] General cleanup
* [datacenterlight] Add German translations
* [datacenterlight] Change beta access to subscriptions
* [hosting] Add German translations
* [datacenterlight] Change beta access to subscriptions
* [hosting] Add German translations
* [blog] Add German translation for header
* [opennebula_api] Improve testing, add ssh key functions
* [opennebula_api] Remove template views
* [datacenterlight] Allow user to have multiple ssh keys
* [datacenterlight] Allow user to have multiple ssh keys
* [datacenterlight] Changed stripe.js v2 to v3
* [datacenterlight] Added support for stripe payment errors on current user language
* [datacenterlight] Added support for stripe payment errors on current user language
1.0.4: 2017-06-05
* [all] Added new Domains to accept
1.0.3: 2017-06-02
@ -165,6 +381,3 @@
* [datacenterlight] Fix initially shown price
1.0.0: 2017-05-25
* Initial stable release
Next:
[datacenterlight] Fixed credit card input issue

View file

@ -3,6 +3,10 @@ ungleich
dynamicweb
----------
.. image:: https://travis-ci.org/ungleich/dynamicweb.svg?branch=master
:target: https://travis-ci.org/ungleich/dynamicweb
Website for ungleich GmbH
=======

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-30 13:47+0000\n"
"POT-Creation-Date: 2017-10-10 21:35+0530\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,137 +18,99 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: alplora/templates/alplora/contact.html:6
msgid "New message"
msgstr "Neue Nachricht"
#: alplora/templates/alplora/contact.html:13
msgid "Name:"
msgstr "Name:"
#: alplora/templates/alplora/contact.html:15
msgid "What is your name ?"
msgstr "Was ist Dein Name?"
#: alplora/templates/alplora/contact.html:19
msgid "From:"
msgstr "Von:"
#: alplora/templates/alplora/contact.html:21
msgid "You email"
msgstr "Deine Email"
#: alplora/templates/alplora/contact.html:25
msgid "Message:"
msgstr "Nachricht:"
#: alplora/templates/alplora/contact.html:27
msgid "Leave us your message"
msgstr "Schreibe hier Deine Nachricht"
#: alplora/templates/alplora/contact.html:32
msgid "Close"
msgstr "schliessen"
#: alplora/templates/alplora/contact.html:33
msgid "Send message"
msgstr "Nachricht senden"
#: alplora/templates/alplora/contact_success.html:6
msgid "Message Sent"
msgstr "Nachricht gesendet"
#: alplora/templates/alplora/contact_success.html:9
msgid "Thank you, we will contact you as soon as possible"
msgstr "Dankeschön! Wir melden uns sobald wie möglich!"
#: alplora/templates/alplora/index.html:13
msgid "Find your animal anywhere, anytime"
msgstr "Finde deine Tiere"
#: alplora/templates/alplora/index.html:99
#: alplora/templates/alplora/index.html:463
msgid "About"
msgstr "Über"
#: alplora/templates/alplora/index.html:102
#: alplora/templates/alplora/index.html:248
#: alplora/templates/alplora/index.html:469
msgid "Why Alplora?"
msgstr "Warum Alplora?"
#: alplora/templates/alplora/index.html:105
#: alplora/templates/alplora/index.html:466
msgid "Usecase"
msgstr ""
#: alplora/templates/alplora/index.html:108
#: alplora/templates/alplora/index.html:358
msgid "Testimonials"
msgstr "Referenzen"
#: alplora/templates/alplora/index.html:111
#: alplora/templates/alplora/index.html:423
#: alplora/templates/alplora/index.html:477
msgid "Contact"
msgstr "Kontakt"
#: alplora/templates/alplora/index.html:114
msgid "Login"
msgstr "Login"
#: alplora/templates/alplora/index.html:137
msgid "Find your herd anytime, anywhere"
msgstr "Finde deine Herde jederzeit und überall"
#: alplora/templates/alplora/index.html:138
msgid "Perfect fit for Swiss Alps"
msgstr "Perfekt für die Schweizer Alpen"
#: alplora/templates/alplora/index.html:163
msgid "What is Alplora?"
msgstr "Was ist Alplora?"
#: alplora/templates/alplora/index.html:164
msgid ""
"Alplora is an animal tracker made for outdoor grazing animals in Swiss Alps."
msgstr ""
"Alplora ist ein Sender, der speziell für Weidetiere in den Schweizer Alpen "
"entwickelt wurde."
#: alplora/templates/alplora/index.html:165
msgid "Alplora is just like a cattle bell, but much better."
msgstr "Alplora ist wie eine Kuhglocke, nur viel besser."
#: alplora/templates/alplora/index.html:174
msgid "LOST"
msgstr "VERLOREN"
#: alplora/templates/alplora/index.html:176
msgid "When an animal gets separated from the herd and is lost."
msgstr "Wenn ein Tier sich von der Herde absondert und verloren geht."
#: alplora/templates/alplora/index.html:184
msgid "WOLF"
msgstr "WOLF"
#: alplora/templates/alplora/index.html:186
msgid "When a wolf gets close to the herd."
msgstr "Wenn ein Wolf sich der Herde nähert."
#: alplora/templates/alplora/index.html:193
msgid "INJURED"
msgstr "VERLETZT"
#: alplora/templates/alplora/index.html:195
msgid "When one of the animals is hurt."
msgstr "Wenn eins der Tiere verletzt ist."
#: alplora/templates/alplora/index.html:205
msgid "How does Alplora track my animals?"
msgstr "Wie kann Alplora meine Tiere verfolgen und ausfindig machen ?"
#: alplora/templates/alplora/index.html:206
msgid ""
"Each animal will be wearing a small tracker,<P></P>and the tracker will be "
"sending a signal every 30 to 60 minutes."
@ -156,33 +118,27 @@ msgstr ""
"Jedes Tier wird einen kleinen Sender tragen, <P></P> welcher alle 30 bis 60 "
"Minuten ein Signal senden wird."
#: alplora/templates/alplora/index.html:215
msgid "Access app"
msgstr "Zugang zur App"
#: alplora/templates/alplora/index.html:217
msgid ""
"You can see the animal locations on a map by logging into our Alplora app."
msgstr ""
"Du kannst den Standort deiner Tiere jederzeit auf einer Karte verfolgen, "
"indem du dich in unsere Alplora App einloggst."
#: alplora/templates/alplora/index.html:225
msgid "Get an alarm"
msgstr "Erhalte ein Warnsignal"
#: alplora/templates/alplora/index.html:227
msgid ""
"When certain signals for danger are detected, Alplora sends an alarm to you."
msgstr ""
"Wenn Anzeichen von Gefahr bestehen, sendet dir die Alplora App einen "
"Warnsignal."
#: alplora/templates/alplora/index.html:235
msgid "Find your animal"
msgstr "Finde deine Tiere"
#: alplora/templates/alplora/index.html:238
msgid ""
"You can locate the animal in trouble on the realtime map and can take "
"actions for keeping the animal safe."
@ -190,11 +146,9 @@ msgstr ""
"Du kannst dein Tier in Notsituationen auf einer Echtzeit-Karte lokalisieren "
"und hast die Möglichkeit es in Sicherheit zu bringen."
#: alplora/templates/alplora/index.html:255
msgid "Perfect fit for Swiss mountains"
msgstr "Perfekt für die Schweizer Alpen"
#: alplora/templates/alplora/index.html:257
msgid ""
"Alplora is made and tested for Swiss Alps. It is a perfect fit for Swiss "
"environment."
@ -202,11 +156,9 @@ msgstr ""
"Alplora wurde speziell für die Schweizer Alpen entwickelt und vor Ort "
"getestet. Das Produkt passt perfekt in die Schweiz!"
#: alplora/templates/alplora/index.html:263
msgid "Energy efficient"
msgstr "Energieeffizient"
#: alplora/templates/alplora/index.html:265
msgid ""
"Alplora uses the latest wireless technology, our batteries last the whole "
"alp season."
@ -214,11 +166,9 @@ msgstr ""
"Alplora arbeitet mit den neuesten Technologien, so dass der Akku die gesamte "
"Alpsaison überdauert."
#: alplora/templates/alplora/index.html:271
msgid "Made with love"
msgstr "Mit Liebe gemacht"
#: alplora/templates/alplora/index.html:273
msgid ""
"With a lot of love and respect for Swiss agriculture and nature, Alplora is "
"made by a Swiss company."
@ -226,61 +176,49 @@ msgstr ""
"Alplora wurde mit viel Liebe und Respekt für die Schweizer Natur und "
"Landwirtschaft von einer Schweizer Firma entwickelt."
#: alplora/templates/alplora/index.html:285
msgid "Who needs Alplora?"
msgstr "Wer benötigt Alplora?"
#: alplora/templates/alplora/index.html:301
msgid " Are your animals..."
msgstr "Sind deine Tiere..."
#: alplora/templates/alplora/index.html:304
msgid "sheep, goats, cows or llamas living freely in the Alps?"
msgstr "Schafe, Ziegen, Kühe oder Lamas, die frei in den Alpen leben?"
#: alplora/templates/alplora/index.html:306
msgid "wearing bells?"
msgstr "solche, die Glocken tragen?"
#: alplora/templates/alplora/index.html:308
msgid ""
"sometimes getting confused and going too far away from where they are "
"supposed to be?"
msgstr ""
"manchmal verwirrt und entfernen sich zu weit von ihrem vorgesehenen Standort?"
#: alplora/templates/alplora/index.html:332
msgid "Do you..."
msgstr "Möchtest du..."
#: alplora/templates/alplora/index.html:335
msgid "have animals which are staying outdoor during some time of the year?"
msgstr ""
"deine Tiere, die eine längere Zeit im Jahr unbeobachtet Draussen verbringen, "
"schützen und überwachen können?"
#: alplora/templates/alplora/index.html:337
msgid "want to get an alarm when your animal is hurt, or in danger?"
msgstr ""
"alarmiert werden, wenn sich eines deiner Tiere verletzt oder in Gefahr "
"befindet ?"
#: alplora/templates/alplora/index.html:339
msgid "want to see where your animals are on your cell phone map?"
msgstr ""
"mit deinem Smartphone auf einer Karte sehen können, wo sich deine Tiere "
"befinden? "
#: alplora/templates/alplora/index.html:341
msgid "want to make sure 24/7 that your animals are safe?"
msgstr ""
"sicherstellen, dass sich deine Tiere rund um die Uhr in Sicherheit befinden?"
#: alplora/templates/alplora/index.html:359
msgid "What our customers say"
msgstr ""
#: alplora/templates/alplora/index.html:379
msgid ""
"“Alplora is an innovation in looking after my cows. I can check where my "
"cows have been in the higher mountain all day while doing other works at the "
@ -292,11 +230,9 @@ msgstr ""
"selben Zeit andereDinge auf dem Hof unten im Dorf erledigen. Dank Alplora "
"kann ich meinen Kühenmehr Sicherheit gewährleisten."
#: alplora/templates/alplora/index.html:382
msgid "Farmer in canton Glarus"
msgstr "Bauern im Kanton Glarus"
#: alplora/templates/alplora/index.html:388
msgid ""
"\"Alplora is exactly what I was waiting for. I have lost my sheep almost "
"every year. Finally I have a way when I want to locate them.\""
@ -305,11 +241,9 @@ msgstr ""
"Schafe fastjedes Jahr aus den Augen verloren. Nun habe ich endlich die "
"Möglichkeit, sie zulokalisieren.\""
#: alplora/templates/alplora/index.html:391
msgid "Owner of 50 sheep "
msgstr "Besitzerin von 50 Schafen"
#: alplora/templates/alplora/index.html:397
msgid ""
"\"I have a farm down all the way down in the village and y goats are always "
"freely grazing in the Alps. There are times that I am worried about them but "
@ -323,30 +257,23 @@ msgstr ""
"noch um meineanderen Tiere kümmern muss. Mit Alplora kann ich nun ohne "
"Probleme beides tun.\""
#: alplora/templates/alplora/index.html:401
msgid "Farmer at Berner Oberland"
msgstr "Bauer aus dem Berner Oberland"
#: alplora/templates/alplora/index.html:418
msgid "How do I get Alplora?"
msgstr "Wie kriege ich Zugriff zu Alplora?"
#: alplora/templates/alplora/index.html:419
msgid "Click the button below and leave us your contact."
msgstr "Klicke unten auf Kontakt und hinterlasse uns deine Angaben."
#: alplora/templates/alplora/index.html:419
msgid "Team Alplora will contact you and visit you with a tracking device."
msgstr "Das Alpora Team wird sich mit Dir schnellstens in Verbindung setzen."
#: alplora/templates/alplora/index.html:459
msgid "Home"
msgstr "Startseite"
#: alplora/templates/alplora/index.html:472
msgid "Testimonials "
msgstr "Referenzen"
#: alplora/views.py:24
msgid "Message Successfully Sent"
msgstr ""

View file

@ -1,9 +1,19 @@
from django.contrib import admin
from .models import BetaAccess, BetaAccessVMType, BetaAccessVM
# Register your models here.
from cms.admin.placeholderadmin import PlaceholderAdminMixin
from cms.extensions import PageExtensionAdmin
from .cms_models import CMSIntegration, CMSFaviconExtension
from .models import VMPricing, VMTemplate
admin.site.register(BetaAccess)
admin.site.register(BetaAccessVMType)
admin.site.register(BetaAccessVM)
class CMSIntegrationAdmin(PlaceholderAdminMixin, admin.ModelAdmin):
list_display = ('name', 'domain')
class CMSFaviconExtensionAdmin(PageExtensionAdmin):
pass
admin.site.register(CMSIntegration, CMSIntegrationAdmin)
admin.site.register(CMSFaviconExtension, CMSFaviconExtensionAdmin)
admin.site.register(VMPricing)
admin.site.register(VMTemplate)

View file

@ -0,0 +1,364 @@
from cms.extensions import PageExtension
from cms.extensions.extension_pool import extension_pool
from cms.models.fields import PlaceholderField
from cms.models.pluginmodel import CMSPlugin
from django import forms
from django.conf import settings
from django.contrib.postgres.fields import ArrayField
from django.contrib.sites.models import Site
from django.db import models
from django.utils.safestring import mark_safe
from djangocms_text_ckeditor.fields import HTMLField
from filer.fields.file import FilerFileField
from filer.fields.image import FilerImageField
from datacenterlight.models import VMPricing, VMTemplate
class CMSIntegration(models.Model):
name = models.CharField(
max_length=100, default='default',
help_text=(
'A unique name for the Integration. This name will be used to '
'fetch the Integration into pages'
)
)
footer_placeholder = PlaceholderField(
'datacenterlight_footer', related_name='dcl-footer-placeholder+'
)
navbar_placeholder = PlaceholderField(
'datacenterlight_navbar', related_name='dcl-navbar-placeholder+'
)
calculator_placeholder = PlaceholderField(
'datacenterlight_calculator',
related_name='dcl-calculator-placeholder+'
)
domain = models.ForeignKey(Site, null=True, blank=True)
class Meta:
unique_together = ('name', 'domain')
def __str__(self):
return self.name
class CMSFaviconExtension(PageExtension):
favicon = FilerFileField(related_name="cms_favicon_image")
extension_pool.register(CMSFaviconExtension)
# Models for CMS Plugins
class DCLSectionPluginModel(CMSPlugin):
heading = models.CharField(
blank=True, null=True, max_length=100,
help_text='An optional heading for the Section',
)
content = HTMLField()
TEXT_DIRECTIONS = (
('left', 'Left'),
('right', 'Right')
)
text_direction = models.CharField(
choices=TEXT_DIRECTIONS, max_length=10, default=True,
help_text='The alignment of text in the section'
)
html_id = models.SlugField(
blank=True, null=True,
help_text=(
'An optional html id for the Section. Required to set as target '
'of a link on page'
)
)
plain_heading = models.BooleanField(
default=False,
help_text='Select to keep the heading style simpler.'
)
center_on_mobile = models.BooleanField(
default=False,
help_text='Select to center align content on small screens.'
)
background_gradient = models.BooleanField(
default=False,
help_text='Select to add a gradient background to the section.'
)
def get_extra_classes(self):
extra_classes = self.text_direction
if self.center_on_mobile:
extra_classes += ' section-sm-center'
if self.background_gradient:
extra_classes += ' section-gradient'
if self.plain_heading:
extra_classes += ' split-section-plain'
return extra_classes
def __str__(self):
return '#' + self.html_id if self.html_id else str(self.pk)
class DCLBannerListPluginModel(CMSPlugin):
heading = models.CharField(
blank=True, null=True, max_length=100,
help_text='An optional heading for the Section',
)
html_id = models.SlugField(
blank=True, null=True,
help_text=(
'An optional html id for the Section. Required to set as target '
'of a link on page'
)
)
def __str__(self):
return '#' + self.html_id if self.html_id else str(self.pk)
class DCLBannerItemPluginModel(CMSPlugin):
content = HTMLField()
banner_text = HTMLField(
blank=True, null=True, max_length=100,
help_text='Optional text to be shown as banner in other half.',
)
banner_image = FilerImageField(
on_delete=models.CASCADE, null=True, blank=True,
help_text='Optional image to be used in the banner in other half.'
)
TEXT_DIRECTIONS = (
('left', 'Left'),
('right', 'Right')
)
text_direction = models.CharField(
choices=TEXT_DIRECTIONS, max_length=10, default=True,
help_text='The alignment of text in the section'
)
def get_extra_classes(self):
extra_classes = ''
if self.text_direction == 'left':
extra_classes = 'flex-row-rev'
return extra_classes
class DCLLinkPluginModel(CMSPlugin):
target = models.CharField(
max_length=100,
help_text='Url or #id to navigate to'
)
text = models.CharField(
max_length=50,
help_text='Text for the menu item'
)
title = models.CharField(
blank=True, null=True, max_length=100,
help_text=(
'Optional title text, that will be shown when a user '
'hovers over the link'
)
)
separator = models.BooleanField(
default=False,
help_text='Select to include a separator after the previous link'
)
class DCLNavbarPluginModel(CMSPlugin):
logo_light = FilerImageField(
on_delete=models.CASCADE, null=True, blank=True,
help_text='Logo to be used on transparent navbar',
related_name="dcl_navbar_logo_light",
)
logo_dark = FilerImageField(
on_delete=models.CASCADE, null=True, blank=True,
help_text='Logo to be used on white navbar',
related_name="dcl_navbar_logo_dark",
)
logo_url = models.URLField(max_length=300, null=True, blank=True)
language_dropdown = models.BooleanField(
default=True,
help_text='Select to include the language selection dropdown.'
)
show_login_option = models.BooleanField(
default=True,
help_text='Uncheck this if you do not want to show login/dashboard.'
)
def get_logo_dark(self):
# used only if atleast one logo exists
return self.logo_dark.url if self.logo_dark else self.logo_light.url
def get_logo_light(self):
# used only if atleast one logo exists
return self.logo_light.url if self.logo_light else self.logo_dark.url
class DCLNavbarDropdownPluginModel(CMSPlugin):
target = models.CharField(
max_length=100, null=True, blank=True,
help_text='Optional Url or #id to navigate on click'
)
text = models.CharField(
max_length=50,
help_text='Text for the dropdown toggle'
)
class DCLContactPluginModel(CMSPlugin):
heading = models.CharField(max_length=100, default="Contact", blank=True)
organization_name = models.CharField(
max_length=100, default="ungleich glarus ag", blank=True
)
email = models.EmailField(max_length=200, default="info@ungleich.ch")
address = models.CharField(
max_length=100, default="In der Au 7, Schwanden 8762", blank=True
)
country = models.CharField(
max_length=100, default="Switzerland", blank=True
)
form_header = models.CharField(
max_length=100, default="Send us a message.", blank=True
)
class DCLFooterPluginModel(CMSPlugin):
copyright_label = models.CharField(
max_length=100, default='ungleich glarus ag', blank=True,
help_text='Name of the company alongside the copyright year'
)
class DCLSectionIconPluginModel(CMSPlugin):
fontawesome_icon_name = models.CharField(
max_length=30,
help_text=mark_safe(
'Name of the fontawesome icon to use. '
'<a href="https://fontawesome.com/v4.7.0/icons/" target="_blank">'
'Refer docs.</a>'
)
)
class DCLSectionImagePluginModel(CMSPlugin):
image = FilerImageField(
on_delete=models.CASCADE,
help_text=(
'Image file to be used in section. Add multiple plugins '
'to add more than one image'
)
)
caption = models.CharField(
max_length=100, null=True, blank=True,
help_text='Optional caption for the image.'
)
class DCLSectionPromoPluginModel(CMSPlugin):
background_image = FilerImageField(
on_delete=models.CASCADE, null=True, blank=True,
help_text=('Optional background image for the Promo Section'),
related_name="dcl_section_promo_promo",
)
heading = models.CharField(
blank=True, null=True, max_length=100,
help_text='An optional heading for the Promo Section',
)
subheading = models.CharField(
blank=True, null=True, max_length=200,
help_text='An optional subheading for the Promo Section',
)
content = HTMLField()
html_id = models.SlugField(
blank=True, null=True,
help_text=(
'An optional html id for the Section. Required to set as target '
'of a link on page'
)
)
plain_heading = models.BooleanField(
default=False,
help_text='Select to keep the heading style simpler.'
)
text_center = models.BooleanField(
default=False,
help_text='Select to center align content on small screens.'
)
def __str__(self):
return '#' + self.html_id if self.html_id else str(self.pk)
def get_extra_classes(self):
extra_classes = ''
if self.text_center:
extra_classes += ' text-center'
if self.plain_heading:
extra_classes += ' promo-section-plain'
if self.background_image:
extra_classes += ' promo-with-bg'
return extra_classes
class MultipleChoiceArrayField(ArrayField):
"""
A field that allows us to store an array of choices.
Uses Django's Postgres ArrayField
and a MultipleChoiceField for its formfield.
"""
VMTemplateChoices = []
if settings.OPENNEBULA_DOMAIN != 'test_domain':
VMTemplateChoices = list(
(
str(obj.opennebula_vm_template_id),
(obj.name + ' - ' + VMTemplate.IPV6.title()
if obj.vm_type == VMTemplate.IPV6 else obj.name
)
)
for obj in VMTemplate.objects.all()
)
def formfield(self, **kwargs):
defaults = {
'form_class': forms.MultipleChoiceField,
'choices': self.VMTemplateChoices,
}
defaults.update(kwargs)
# Skip our parent's formfield implementation completely as we don't
# care for it.
# pylint:disable=bad-super-call
return super(ArrayField, self).formfield(**defaults)
class DCLCalculatorPluginModel(CMSPlugin):
pricing = models.ForeignKey(
VMPricing,
related_name="dcl_custom_pricing_vm_pricing",
help_text='Choose a pricing that will be associated with this '
'Calculator'
)
vm_type = models.CharField(
max_length=50, choices=VMTemplate.VM_TYPE_CHOICES,
default=VMTemplate.PUBLIC
)
vm_templates_to_show = MultipleChoiceArrayField(
base_field=models.CharField(
blank=True,
max_length=256,
),
default=list,
blank=True,
help_text="Recommended: If you wish to show all templates of the "
"corresponding VM Type (public/ipv6only), please do not "
"select any of the items in the above field. "
"This will allow any new template(s) added "
"in the backend to be automatically listed in this "
"calculator instance."
)
default_selected_template = models.CharField(
default="Devuan Ascii",
null=True,
max_length=128,
help_text="Write the name of the template that you need selected as"
" default when the calculator loads"
)
enable_512mb_ram = models.BooleanField(default=False)

View file

@ -0,0 +1,180 @@
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from .cms_models import (
DCLBannerItemPluginModel, DCLBannerListPluginModel, DCLContactPluginModel,
DCLFooterPluginModel, DCLLinkPluginModel, DCLNavbarDropdownPluginModel,
DCLSectionIconPluginModel, DCLSectionImagePluginModel,
DCLSectionPluginModel, DCLNavbarPluginModel,
DCLSectionPromoPluginModel, DCLCalculatorPluginModel
)
from .models import VMTemplate
from datacenterlight.utils import clear_all_session_vars
@plugin_pool.register_plugin
class DCLSectionPlugin(CMSPluginBase):
module = "Datacenterlight"
name = "DCL Section Plugin"
model = DCLSectionPluginModel
render_template = "datacenterlight/cms/section.html"
cache = False
allow_children = True
child_classes = [
'DCLSectionIconPlugin', 'DCLSectionImagePlugin',
'DCLSectionPromoPlugin', 'UngleichHTMLPlugin', 'DCLCalculatorPlugin'
]
def render(self, context, instance, placeholder):
context = super(DCLSectionPlugin, self).render(
context, instance, placeholder
)
context['children_to_side'] = []
context['children_to_content'] = []
context['children_calculator'] = []
if instance.child_plugin_instances is not None:
right_children = [
'DCLSectionImagePluginModel',
'DCLSectionIconPluginModel',
]
for child in instance.child_plugin_instances:
if child.__class__.__name__ in right_children:
context['children_to_side'].append(child)
elif child.plugin_type == 'DCLCalculatorPlugin':
context['children_calculator'].append(child)
else:
context['children_to_content'].append(child)
return context
@plugin_pool.register_plugin
class DCLSectionIconPlugin(CMSPluginBase):
module = "Datacenterlight"
name = "DCL Section Icon Plugin"
model = DCLSectionIconPluginModel
render_template = "datacenterlight/cms/section_icon.html"
cache = False
require_parent = True
@plugin_pool.register_plugin
class DCLSectionImagePlugin(CMSPluginBase):
module = "Datacenterlight"
name = "DCL Section Image Plugin"
model = DCLSectionImagePluginModel
render_template = "datacenterlight/cms/section_image.html"
cache = False
require_parent = True
@plugin_pool.register_plugin
class DCLSectionPromoPlugin(CMSPluginBase):
module = "Datacenterlight"
name = "DCL Section Promo Plugin"
model = DCLSectionPromoPluginModel
render_template = "datacenterlight/cms/section_promo.html"
cache = False
@plugin_pool.register_plugin
class DCLCalculatorPlugin(CMSPluginBase):
module = "Datacenterlight"
name = "DCL Calculator Plugin"
model = DCLCalculatorPluginModel
render_template = "datacenterlight/cms/calculator.html"
cache = False
require_parent = True
def render(self, context, instance, placeholder):
clear_all_session_vars(context['request'])
context = super(DCLCalculatorPlugin, self).render(
context, instance, placeholder
)
ids = instance.vm_templates_to_show
if ids:
context['templates'] = VMTemplate.objects.filter(
vm_type=instance.vm_type
).filter(opennebula_vm_template_id__in=ids).order_by('name')
else:
context['templates'] = VMTemplate.objects.filter(
vm_type=instance.vm_type
).order_by('name')
context['instance'] = instance
context['min_ram'] = 0.5 if instance.enable_512mb_ram else 1
return context
@plugin_pool.register_plugin
class DCLBannerListPlugin(CMSPluginBase):
module = "Datacenterlight"
name = "DCL Banner List Plugin"
model = DCLBannerListPluginModel
render_template = "datacenterlight/cms/banner_list.html"
cache = False
allow_children = True
child_classes = ['DCLBannerItemPlugin']
@plugin_pool.register_plugin
class DCLBannerItemPlugin(CMSPluginBase):
module = "Datacenterlight"
name = "DCL Banner Item Plugin"
model = DCLBannerItemPluginModel
render_template = "datacenterlight/cms/banner_item.html"
cache = False
require_parent = True
parent_classes = ['DCLBannerListPlugin']
@plugin_pool.register_plugin
class DCLNavbarPlugin(CMSPluginBase):
module = "Datacenterlight"
name = "DCL Navbar Plugin"
model = DCLNavbarPluginModel
render_template = "datacenterlight/cms/navbar.html"
cache = False
allow_children = True
child_classes = ['DCLLinkPlugin', 'DCLNavbarDropdownPlugin']
@plugin_pool.register_plugin
class DCLNavbarDropdownPlugin(CMSPluginBase):
module = "Datacenterlight"
name = "DCL Navbar Dropdown Plugin"
model = DCLNavbarDropdownPluginModel
render_template = "datacenterlight/cms/navbar_dropdown.html"
cache = False
allow_children = True
child_classes = ['DCLLinkPlugin']
require_parent = True
parent_classes = ['DCLNavbarPlugin']
@plugin_pool.register_plugin
class DCLLinkPlugin(CMSPluginBase):
module = "Datacenterlight"
name = "DCL Link Plugin"
model = DCLLinkPluginModel
render_template = "datacenterlight/cms/link.html"
cache = False
require_parent = True
@plugin_pool.register_plugin
class DCLContactPlugin(CMSPluginBase):
module = "Datacenterlight"
name = "DCL Contact Plugin"
model = DCLContactPluginModel
render_template = "datacenterlight/cms/contact.html"
cache = False
@plugin_pool.register_plugin
class DCLFooterPlugin(CMSPluginBase):
module = "Datacenterlight"
name = "DCL Footer Plugin"
model = DCLFooterPluginModel
render_template = "datacenterlight/cms/footer.html"
cache = False
allow_children = True
child_classes = ['DCLLinkPlugin']

View file

@ -0,0 +1,24 @@
from cms.extensions.toolbar import ExtensionToolbar
from cms.toolbar_pool import toolbar_pool
from django.utils.translation import ugettext_lazy as _
from .cms_models import CMSFaviconExtension
@toolbar_pool.register
class CMSFaviconExtensionToolbar(ExtensionToolbar):
# defineds the model for the current toolbar
model = CMSFaviconExtension
def populate(self):
# setup the extension toolbar with permissions and sanity checks
current_page_menu = self._setup_extension_toolbar()
# if it's all ok
if current_page_menu:
# retrieves the instance of the current extension (if any) and the toolbar item url
page_extension, url = self.get_page_extension_admin()
if url:
# adds a toolbar item
current_page_menu.add_modal_item(
_('CMS Favicon'), url=url, disabled=not self.toolbar.edit_mode
)

View file

@ -1,26 +1,9 @@
from django import forms
from .models import BetaAccess, ContactUs
class BetaAccessForm(forms.ModelForm):
email = forms.CharField(widget=forms.EmailInput())
class Meta:
fields = ['name', 'email']
model = BetaAccess
from .models import ContactUs
class ContactForm(forms.ModelForm):
class Meta:
fields = ['name', 'email', 'message']
model = ContactUs
# class BetaAccessVMForm(forms.ModelForm):
# type = forms.CharField(widget=forms.EmailInput())
# class Meta:
# fields = ['email']
# model = BetaAccessVM

View file

@ -8,83 +8,35 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-16 14:09+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2018-09-26 20:44+0000\n"
"PO-Revision-Date: 2018-03-30 23:22+0000\n"
"Last-Translator: b'Anonymous User <coder.purple+25@gmail.com>'\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"
"X-Translated-Using: django-rosetta 0.8.1\n"
msgid "CMS Favicon"
msgstr ""
#, 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 "Enter name"
msgstr "Name"
msgid "All Rights Reserved"
msgstr "Alle Rechte vorbehalten"
msgid "Enter email"
msgstr "E-Mail-Adresse"
msgid "Toggle navigation"
msgstr "Umschalten"
msgid "Request Beta Access"
msgstr "Beantrage Beta-Zugang"
msgid "Login"
msgstr "Anmelden"
msgid "Request Sent"
msgstr "Anfrage verschickt"
msgid ""
"Thank you for your subscription! You will receive a confirmation mail from "
"our team"
msgid "Dashboard"
msgstr ""
"Vielen dank für Ihre Anmeldung. Sie erhalten in kürze eine Bestätigungsmail "
"von unserem Team"
msgid "VM hosting"
msgstr ""
msgid "month"
msgstr "Monat"
msgid "VAT included"
msgstr "MwSt. inklusive"
msgid "Hosted in Switzerland"
msgstr "Standort: Schweiz"
msgid "Please enter a value in range 1 - 48."
msgstr "Bitte gib einen Wert von 1 bis 48 ein."
msgid "Please enter a value in range 2 - 200."
msgstr "Bitte gib einen Wert von 2 bis 200 ein."
msgid "Please enter a value in range 10 - 2000."
msgstr "Bitte gib einen Wert von 10 bis 200 ein."
msgid "GB Storage (SSD)"
msgstr "GB Storage (SSD)"
msgid "Name"
msgstr ""
msgid "Your Name"
msgstr "Dein Name"
msgid "Please enter your name."
msgstr "Bitte gib Deinen Namen ein."
msgid "Email"
msgstr "E-Mail-Adresse"
msgid "Your Email"
msgstr "Deine E-Mail"
msgid "Please enter a valid email address."
msgstr "Bitte gib eine gültige E-Mailadresse ein."
msgid "Continue"
msgstr "Weiter"
msgid "Thank you for contacting us."
msgstr "Nachricht gesendet."
@ -95,6 +47,18 @@ msgstr "Vielen Dank für Deine Nachricht."
msgid "Get in touch with us!"
msgstr "Sende uns eine Nachricht."
msgid "Name"
msgstr ""
msgid "Please enter your name."
msgstr "Bitte gib Deinen Namen ein."
msgid "Email"
msgstr "E-Mail-Adresse"
msgid "Please enter a valid email address."
msgstr "Bitte gib eine gültige E-Mailadresse ein."
msgid "Message"
msgstr "Nachricht"
@ -106,102 +70,115 @@ msgstr ""
msgid "SUBMIT"
msgstr "ABSENDEN"
msgid "Data Center Light Account Activation"
msgstr "Data Center Light Account Aktivierung"
#, python-format
msgid ""
"You can activate your Data Center Light account by clicking <a href="
"\"%(base_url)s%(activation_link)s\" style=\"text-decoration: none; color: "
"#4382c8; font-weight: 400;\">here</a>."
msgstr ""
"Klicke <a href=\"%(base_url)s%(activation_link)s\"style=\"text-decoration: "
"none; color: #4382c8; font-weight: 400;\">hier</a> um deinen Data Center "
"Light Account zu aktivieren."
msgid ""
"You can also copy and paste the following link into the address bar of your "
"browser to activate your Data Center Light account."
msgstr "Kopiere den folgenden Link in die Adressleiste deines Browsers."
msgid "Your account details are as follows"
msgstr "Deine Account Details sind unten aufgelistet"
msgid "Username"
msgstr "Username"
msgid "Your email address"
msgstr "Deine E-Mail-Adresse"
msgid "Password"
msgstr "Passwort"
#, python-format
msgid ""
"You can reset your password <a href=\"%(base_url)s%(reset_password_url)s\" "
"style=\"text-decoration: none; color: #4382c8; font-weight: 400;\">here</a>."
msgstr ""
"Du kannst dein Passwort <a href=\"%(base_url)s%(reset_password_url)s\" style="
"\"text-decoration: none; color: #4382c8; font-weight: 400;\">hier</a> "
"zurücksetzen."
msgid "Your Data Center Light Team"
msgstr "Dein Data Center Light Team"
msgid "Thank you for your request."
msgstr "Vielen Dank für Deine Anfrage."
msgid ""
"You can copy and paste the following link into the address bar of your "
"browser to activate your Data Center Light account."
msgstr "Kopiere den folgenden Link in die Adressleiste deines Browsers."
msgid "You are one step away from being our beta tester!"
msgstr ""
"Sie sind nur noch einen Schritt davon entfernt, unser Beta-Tester zu werden!"
msgid "You can reset your password here"
msgstr "Du kannst dein Passwort hier zurücksetzen"
msgid "Welcome to Data Center Light!"
msgstr "Willkommen beim Data Center Light!"
msgid ""
"Currently we are running our tests to make sure everything runs perfectly."
"Thanks for joining us! We provide the most affordable virtual machines from "
"the heart of Switzerland."
msgstr "Bei uns findest Du die günstiges VMs aus der Schweiz."
msgid "Try now, order a VM. VM price starts from only 15CHF per month."
msgstr "Unser Angebot beginnt bei 15 CHF pro Monat. Probier's jetzt aus!"
msgid "ORDER VM"
msgstr "VM BESTELLEN"
msgid "VM hosting"
msgstr ""
"Momentan testen wir die Beta-Umgebung um sie für Ihren Gebrauch "
"sicherzustellen."
msgid ""
"In the meantime, we would like to ask you a little patience<br/> until our "
"team contacts you with beta access."
msgstr ""
"Wir werden dann sobald als möglich Ihren Beta-Zugang erstellen und Sie "
"daraufhin kontaktieren.Bis dahin bitten wir Sie um etwas Geduld."
msgid "month"
msgstr "Monat"
msgid "Thank you!"
msgstr "Vielen Dank!"
msgid "VAT included"
msgstr "MwSt. inklusive"
msgid "Account Activation"
msgstr "Account Aktivierung"
msgid "You save"
msgstr "Du sparst"
#, python-format
msgid ""
"\n"
"You can activate your Data Center Light account by <a href=\"%(base_url)s"
"%(activation_link)s\">clicking here</a>.<br/>\n"
"You can also copy and paste the following link into the address bar of your "
"browser<br/>\n"
"to activate your Data Center Light account.<br/>\n"
"%(base_url)s%(activation_link)s\n"
msgstr ""
"\n"
"<a href=\"%(base_url)s%(activation_link)s\">Klicke hier</a> um deinen Data "
"Center Light Account zu aktivieren oder kopiere den folgenden Link in die "
"Adressleiste deines Browsers.<br/>\n"
"%(base_url)s%(activation_link)s\n"
msgid "Hosted in Switzerland"
msgstr "Standort: Schweiz"
#, python-format
msgid ""
"You can activate your Data Center Light account by clicking here.\n"
"You can also copy and paste the following link into the address bar of your "
"browser\n"
"to activate your Data Center Light account.\n"
"%(base_url)s%(activation_link)s\n"
msgstr ""
"Klicke hier, um deinen Data Center Light Account zu aktivieren oder kopiere "
"den folgenden Link in die Adressleiste deines Browsers.\n"
"%(base_url)s%(activation_link)s\n"
msgid "Please enter a value in range 1 - 48."
msgstr "Bitte gib einen Wert von 1 bis 48 ein."
msgid "Please enter a value in range 1 - 200."
msgstr "Bitte gib einen Wert von 1 bis 200 ein."
msgid "Please enter a value in range 10 - 2000."
msgstr "Bitte gib einen Wert von 10 bis 2000 ein."
msgid "GB Storage (SSD)"
msgstr "GB Storage (SSD)"
msgid "Continue"
msgstr "Weiter"
msgid "Home"
msgstr "Home"
msgid "Highlights"
msgstr ""
msgid "Scale out"
msgstr "Skalierung"
msgid "Reliable and light"
msgstr "Zuverlässig und leicht"
msgid "Pricing"
msgstr "Preise"
msgid "Order VM"
msgstr "VM bestellen"
msgid "Contact"
msgstr "Kontakt"
msgid "All Rights Reserved"
msgstr "Alle Rechte vorbehalten"
msgid "Toggle navigation"
msgstr "Konfiguration"
msgid "Why Data Center Light?"
msgstr "Warum Data Center Light?"
msgid "Login"
msgstr ""
msgid "Dashboard"
msgstr ""
msgid "Terms of Service"
msgstr "Nutzungsbedingungen"
msgid "Finally, an affordable VM hosting in Switzerland!"
msgstr "Endlich: bezahlbares VM Hosting in der Schweiz"
msgid "Highlights"
msgstr ""
msgid "I want it!"
msgstr "Das will ich haben!"
@ -232,6 +209,9 @@ msgstr ""
"mit FOSS (Free Open Source Software) arbeitet und wir daher auf "
"Lizenzgebühren verzichten können."
msgid "Scale out"
msgstr "Skalierung"
msgid ""
"We don't use special hardware. We use commodity hardware: we buy computers "
"that you buy. Just many more and put them in a cozy home for computers "
@ -241,6 +221,9 @@ msgstr ""
"erschwingliche Systeme. Bei grösserer Auslastung werden mehr "
"Standardkomponenten hinzugekauft und skalieren so das Datencenter."
msgid "Reliable and light"
msgstr "Zuverlässig und leicht"
msgid ""
"Our VMs are located in Switzerland, with reliable power supply and fast "
"internet connection. Our VM costs less thanks to our featherlight "
@ -255,8 +238,12 @@ msgstr ""
"Einfach und bezahlbar: Teste nun unsere virtuellen Maschinen mit "
"federleichten Preisen."
msgid "Affordable VM hosting based in Switzerland"
msgstr "Bezahlbares VM Hosting in der Schweiz"
msgid ""
"Ready in 30 seconds.<br/>Experience the unbeatable speed from Data Center "
"Light."
msgstr ""
"Fertig in 30 Sekunden.<br/>Erlebe die unschlagbare Geschwindigkeit von Data "
"Center Light."
msgid "Contact us"
msgstr "Kontaktiere uns"
@ -264,6 +251,51 @@ msgstr "Kontaktiere uns"
msgid "Switzerland "
msgstr "Schweiz "
msgid "Welcome back"
msgstr "Willkommen zurück"
msgid ""
"Review your billing address and card details and proceed to make payment."
msgstr ""
"Überprüfe die Rechnungsadresse und Kreditkartendaten und fahre mit der "
"Zahlung fort."
msgid "Log in"
msgstr "Anmelden"
msgid ""
"Already signed up?<br>By logging in you can retrieve saved billing "
"information."
msgstr ""
"Bereits eingeloggt? Nach der Anmeldung kannst Du gespeicherte "
"Rechnungsinformationen abrufen."
msgid "LOGIN"
msgstr "ANMELDEN"
msgid "Don't have an account yet?"
msgstr "Besitzt du kein Benutzerkonto?"
msgid "You can sign up by filling in the information below."
msgstr ""
"Du kannst Dich anmelden, indem Du die die untenstehenden Informationen "
"ausfüllst."
msgid "Forgot password?"
msgstr "Passwort vergessen?"
msgid "Resend activation link"
msgstr "Aktivierungslink noch einmal senden"
msgid "Sign up"
msgstr "Registrieren"
msgid "Billing Address"
msgstr "Rechnungsadresse"
msgid "Make a payment"
msgstr ""
msgid "Your Order"
msgstr "Deine Bestellung"
@ -285,50 +317,58 @@ msgstr "Gesamt"
msgid "including VAT"
msgstr "inkl. Mehrwertsteuer"
msgid "excluding VAT"
msgstr "exkl. Mehrwertsteuer"
msgid "Month"
msgstr "Monat"
msgid "Billing Address"
msgstr "Rechnungsadresse"
msgid "Discount"
msgstr "Rabatt"
msgid "Will be applied at checkout"
msgstr "wird an der Kasse angewendet"
msgid "Credit Card"
msgstr "Kreditkarte"
msgid ""
"\n"
" Please fill in your credit card information "
"below. We are using <a\n"
" href=\"https://stripe.com\" target="
"\"_blank\">Stripe</a> for payment and do not store\n"
" your information in our database.\n"
" "
"Please select one of the cards that you used before or fill in your credit "
"card information below. We are using <a href=\"https://stripe.com\" target="
"\"_blank\">Stripe</a> for payment and do not store your information in our "
"database."
msgstr ""
"\n"
"Bitte füll Deine Kreditkarteninformationen unten aus. Wir nutzen <a href="
"Bitte wähle eine der zuvor genutzten Kreditkarten oder gib Deine "
"Kreditkartendetails unten an. Die Bezahlung wird über <a href=\"https://"
"stripe.com\" target=\"_blank\">Stripe</a> abgewickelt. Wir speichern Deine "
"Kreditkartendetails nicht in unserer Datenbank."
msgid ""
"Please fill in your credit card information below. We are using <a href="
"\"https://stripe.com\" target=\"_blank\">Stripe</a> for payment and do not "
"store your information in our database."
msgstr ""
"Bitte fülle Deine Kreditkarteninformationen unten aus. Wir nutzen <a href="
"\"https://stripe.com\" target=\"_blank\">Stripe</a> für die Bezahlung und "
"speichern keine Informationen in unserer Datenbank."
msgid ""
"You are not making any payment yet. After submitting your card information, "
"you will be taken to the Confirm Order Page."
msgstr ""
"Es wird noch keine Bezahlung vorgenommen. Die Bezahlung wird erst ausgelöst, "
"nachdem Du die Bestellung auf der nächsten Seite bestätigt hast."
msgid "Last"
msgstr "Letzten"
msgid "Submit"
msgstr "Absenden"
msgid "Type"
msgstr "Typ"
msgid "Card Number"
msgstr "Kreditkartennummer"
msgid "SELECT"
msgstr "AUSWÄHLEN"
msgid "Expiry Date"
msgstr "Ablaufdatum"
msgid "Add a new credit card"
msgstr "Eine neue Kreditkarte hinzufügen"
msgid "CVC"
msgstr ""
msgid "NEW CARD"
msgstr "NEUE KARTE"
msgid "Card Type"
msgstr "Kartentyp"
msgid "New Credit Card"
msgstr "Neue Kreditkarte"
msgid "Processing"
msgstr "Weiter"
@ -336,16 +376,17 @@ msgstr "Weiter"
msgid "Enter your credit card number"
msgstr "Deine Kreditkartennummer"
msgid "Confirm Order"
msgstr "Bestellung Bestätigen"
#, python-format
msgid "%(page_header_text)s"
msgstr ""
msgid "Date"
msgstr "Datum"
msgid "Billed To:"
msgid "Billed to"
msgstr "Rechnungsadresse"
msgid "Payment Method:"
msgid "Payment method"
msgstr "Bezahlmethode"
msgid "ending in"
@ -354,45 +395,66 @@ msgstr "endend in"
msgid "Order summary"
msgstr "Bestellungsübersicht"
msgid "Product"
msgstr "Produkt"
msgid "Amount"
msgstr ""
msgid "Description"
msgstr ""
msgid "Recurring"
msgstr ""
msgid "Subtotal"
msgstr "Zwischensumme"
msgid "VAT"
msgstr "Mehrwertsteuer"
msgid ""
"By clicking \"Place order\" this plan will charge your credit card account "
"with %(total_price)s CHF/month"
msgstr ""
"Wenn Du \"bestellen\" auswählst, wird Deine Kreditkarte mit "
"%(vm_total_price)s CHF pro Monat belastet"
msgid ""
"By clicking \"Place order\" this payment will charge your credit card "
"account with a one time amount of %(total_price)s CHF"
msgstr ""
"Wenn Du \"bestellen\" auswählst, wird Deine Kreditkarte mit "
"%(vm_total_price)s CHF pro Monat belastet"
#, python-format
msgid ""
"By clicking \"Place order\" this plan will charge your credit card account "
"with the fee of %(vm_price)sCHF/month"
"with %(vm_total_price)s CHF/month"
msgstr ""
"Wenn Du \"bestellen\" auswählst, wird Deine Kreditkarte mit %(vm_price)sCHF "
"pro Monat belastet"
"Wenn Du \"bestellen\" auswählst, wird Deine Kreditkarte mit "
"%(vm_total_price)s CHF pro Monat belastet"
msgid "Place order"
msgstr "Bestellen"
msgid "We are cutting down the costs significantly!"
msgstr "Wir sorgen dafür, dass die Kosten für Dich signifikant abnehmen"
msgid "Processing..."
msgstr "Abarbeitung..."
msgid "Order Now!"
msgstr "Bestelle jetzt!"
msgid "Hold tight, we are processing your request"
msgstr "Bitte warten - wir verarbeiten Deine Anfrage gerade"
msgid ""
"Our VMs are hosted in Glarus, Switzerland, and our website is currently "
"running in BETA mode. If you want more information that you did not find on "
"our website, or if your order is more detailed, or if you encounter any "
"technical hiccups, please contact us at support@datacenterlight.ch, our team "
"will get in touch with you asap."
msgid "OK"
msgstr ""
"Unsere VMs werden in der Schweiz im Kanton Glarus gehostet und befinden sich "
"zur Zeit noch in der BETA-Phase. Möchtest du mehr über uns erfahren und hast "
"auf unserer Website nicht genügend Informationen gefunden? Möchtest eine "
"detailliertere Bestellung aufgeben? Bist du auf technische Probleme "
"gestossen, die du uns mitteilen möchtest? Dann zögere nicht und kontaktiere "
"uns unter support@datacenterlight.ch. Unser Team wird sich umgehend um dein "
"Anliegen kümmern!"
msgid "Thank you for order! Our team will contact you via email"
msgid "Close"
msgstr ""
"Vielen Dank für die Bestellung. Unser Team setzt sich sobald wie möglich mit "
"Dir via E-Mail in Verbindung."
msgid "as soon as possible!"
msgstr ""
msgid "Some problem encountered. Please try again later."
msgstr "Ein Problem ist aufgetreten. Bitte versuche es später noch einmal."
msgid "Why Data Center Light?"
msgstr "Warum Data Center Light?"
msgid "Tech Stack"
msgstr "Tech Stack"
@ -408,7 +470,7 @@ msgstr ""
"nicht Open-Source ist.<br/>Yep, so cool sind wir."
msgid "Our services run on"
msgstr "Unsere Dienste läuft auf"
msgstr "Unsere Dienste läufen auf"
msgid "Our monitoring"
msgstr "Unser Monitoring"
@ -479,11 +541,184 @@ msgstr "Ungültige RAM-Grösse"
msgid "Invalid storage size"
msgstr "Ungültige Speicher-Grösse"
msgid "is not a proper name"
msgstr "ist kein gültiger Name"
#, python-brace-format
msgid "Incorrect pricing name. Please contact support{support_email}"
msgstr ""
msgid "is not a proper email"
msgstr "ist keine gültige E-Mailadresse"
#, python-brace-format
msgid "{user} does not have permission to access the card"
msgstr "{user} hat keine Erlaubnis auf diese Karte zuzugreifen"
msgid "An error occurred. Details: {}"
msgstr "Ein Fehler ist aufgetreten. Details: {}"
msgid "Confirm Order"
msgstr "Bestellung Bestätigen"
msgid "Error."
msgstr ""
msgid ""
"There was a payment related error. On close of this popup, you will be "
"redirected back to the payment page."
msgstr ""
"Es ist ein Fehler bei der Zahlung betreten. Du wirst nach dem Schliessen vom "
"Popup zur Bezahlseite weitergeleitet."
#, python-brace-format
msgid "An error occurred while associating the card. Details: {details}"
msgstr ""
"Beim Verbinden der Karte ist ein Fehler aufgetreten. Details: {details}"
msgid "Confirmation of your payment"
msgstr ""
msgid " This is a monthly recurring plan."
msgstr ""
#, python-brace-format
msgid ""
"Hi {name},\n"
"\n"
"thank you for your order!\n"
"We have just received a payment of CHF {amount:.2f} from you.{recurring}\n"
"\n"
"Cheers,\n"
"Your Data Center Light team"
msgstr ""
msgid "Thank you for the payment."
msgstr "Danke für Deine Bestellung."
msgid ""
"You will soon receive a confirmation email of the payment. You can always "
"contact us at info@ungleich.ch for any question that you may have."
msgstr ""
msgid "Thank you for the order."
msgstr "Danke für Deine Bestellung."
msgid ""
"Your VM will be up and running in a few moments. We will send you a "
"confirmation email as soon as it is ready."
msgstr ""
"Deine VM ist gleich bereit. Wir senden Dir eine Bestätigungsemail, sobald Du "
"auf sie zugreifen kannst."
#~ msgid ""
#~ "You are not making any payment yet. After submitting your card "
#~ "information, you will be taken to the Confirm Order Page."
#~ msgstr ""
#~ "Es wird noch keine Bezahlung vorgenommen. Die Bezahlung wird erst "
#~ "ausgelöst, nachdem Du die Bestellung auf der nächsten Seite bestätigt "
#~ "hast."
#~ msgid "Card Number"
#~ msgstr "Kreditkartennummer"
#~ msgid "Expiry Date"
#~ msgstr "Ablaufdatum"
#~ msgid ""
#~ "You are not making any payment yet. After placing your order, you will be "
#~ "taken to the Submit Payment Page."
#~ msgstr ""
#~ "Es wird noch keine Bezahlung vorgenommen. Die Bezahlung wird erst "
#~ "ausgelöst, nachdem Du die Bestellung auf der nächsten Seite bestätigt "
#~ "hast."
#~ msgid "Pricing"
#~ msgstr "Preise"
#~ msgid "Order VM"
#~ msgstr "VM bestellen"
#~ msgid "Enter name"
#~ msgstr "Name"
#~ msgid "Enter email"
#~ msgstr "E-Mail-Adresse"
#~ msgid "Request Beta Access"
#~ msgstr "Beantrage Beta-Zugang"
#~ msgid "Request Sent"
#~ msgstr "Anfrage verschickt"
#~ msgid ""
#~ "Thank you for your subscription! You will receive a confirmation mail "
#~ "from our team"
#~ msgstr ""
#~ "Vielen dank für Ihre Anmeldung. Sie erhalten in kürze eine "
#~ "Bestätigungsmail von unserem Team"
#~ msgid "Thank you for your request."
#~ msgstr "Vielen Dank für Deine Anfrage."
#~ msgid "You are one step away from being our beta tester!"
#~ msgstr ""
#~ "Sie sind nur noch einen Schritt davon entfernt, unser Beta-Tester zu "
#~ "werden!"
#~ msgid ""
#~ "Currently we are running our tests to make sure everything runs perfectly."
#~ msgstr ""
#~ "Momentan testen wir die Beta-Umgebung um sie für Ihren Gebrauch "
#~ "sicherzustellen."
#~ msgid ""
#~ "In the meantime, we would like to ask you a little patience<br/> until "
#~ "our team contacts you with beta access."
#~ msgstr ""
#~ "Wir werden dann sobald als möglich Ihren Beta-Zugang erstellen und Sie "
#~ "daraufhin kontaktieren.Bis dahin bitten wir Sie um etwas Geduld."
#~ msgid "Thank you!"
#~ msgstr "Vielen Dank!"
#~ 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 Dir via E-Mail in Verbindung."
#~ msgid "Affordable VM hosting based in Switzerland"
#~ msgstr "Bezahlbares VM Hosting in der Schweiz"
#~ msgid "Submit"
#~ msgstr "Absenden"
#~ msgid "We are cutting down the costs significantly!"
#~ msgstr "Wir sorgen dafür, dass die Kosten für Dich signifikant abnehmen"
#~ msgid "Order Now!"
#~ msgstr "Bestelle jetzt!"
#~ msgid ""
#~ "Our VMs are hosted in Glarus, Switzerland, and our website is currently "
#~ "running in BETA mode. If you want more information that you did not find "
#~ "on our website, or if your order is more detailed, or if you encounter "
#~ "any technical hiccups, please contact us at support@datacenterlight.ch, "
#~ "our team will get in touch with you asap."
#~ msgstr ""
#~ "Unsere VMs werden in der Schweiz im Kanton Glarus gehostet und befinden "
#~ "sich zur Zeit noch in der BETA-Phase. Möchtest du mehr über uns erfahren "
#~ "und hast auf unserer Website nicht genügend Informationen gefunden? "
#~ "Möchtest eine detailliertere Bestellung aufgeben? Bist du auf technische "
#~ "Probleme gestossen, die du uns mitteilen möchtest? Dann zögere nicht und "
#~ "kontaktiere uns unter support@datacenterlight.ch. Unser Team wird sich "
#~ "umgehend um dein Anliegen kümmern!"
#~ msgid "is not a proper name"
#~ msgstr "ist kein gültiger Name"
#~ msgid "is not a proper email"
#~ msgstr "ist keine gültige E-Mailadresse"
#~ msgid "Your Name"
#~ msgstr "Dein Name"
#~ msgid "Your Email"
#~ msgstr "Deine E-Mail"
#~ msgid ""
#~ "\n"

View file

@ -0,0 +1,21 @@
from django.core.management.base import BaseCommand
from datacenterlight.cms_models import CMSIntegration
class Command(BaseCommand):
help = '''Creates cms integration objects for datacenterlight'''
def handle(self, *args, **options):
self.create_cms_integration()
def create_cms_integration(self, site=None):
obj, created = CMSIntegration.objects.get_or_create(
name='default', domain=site
)
domain_name = site.domain if site else 'All Sites'
if created:
print('created the default CMSIntegration object for', domain_name)
else:
print(
'default CMSIntegration object already exists for', domain_name
)

View file

@ -0,0 +1,36 @@
from django.core.management.base import BaseCommand
from datacenterlight.models import VMPricing
class Command(BaseCommand):
help = '''Creates default VMPricing object'''
DEFAULT_VMPRICING_NAME = 'default'
def handle(self, *args, **options):
self.create_default_vm_pricing()
def create_default_vm_pricing(self):
obj, created = VMPricing.objects.get_or_create(
name=self.DEFAULT_VMPRICING_NAME,
defaults={
"vat_inclusive": True,
"cores_unit_price": 5,
"ram_unit_price": 2,
"ssd_unit_price": 0.6,
"hdd_unit_price": 0.01
}
)
if created:
print(
'Successfully created {} VMPricing object'.format(
self.DEFAULT_VMPRICING_NAME
)
)
else:
print(
'{} VMPricing exists already.'.format(
self.DEFAULT_VMPRICING_NAME
)
)

View file

@ -7,18 +7,31 @@ logger = logging.getLogger(__name__)
class Command(BaseCommand):
help = 'Fetches the VM templates from OpenNebula and populates the dcl VMTemplate model'
help = '''Fetches the VM templates from OpenNebula and populates the dcl
VMTemplate model'''
def get_templates(self, manager, prefix):
templates = manager.get_templates('%s-' % prefix)
dcl_vm_templates = []
for template in templates:
template_name = template.name.lstrip('%s-' % prefix)
template_id = template.id
dcl_vm_template = VMTemplate.create(
template_name, template_id, prefix
)
dcl_vm_templates.append(dcl_vm_template)
return dcl_vm_templates
def handle(self, *args, **options):
try:
manager = OpenNebulaManager()
templates = manager.get_templates()
dcl_vm_templates = []
for template in templates:
template_name = template.name.strip('public-')
template_id = template.id
dcl_vm_template = VMTemplate.create(template_name, template_id)
dcl_vm_templates.append(dcl_vm_template)
dcl_vm_templates.extend(
self.get_templates(manager, VMTemplate.PUBLIC)
)
dcl_vm_templates.extend(
self.get_templates(manager, VMTemplate.IPV6)
)
old_vm_templates = VMTemplate.objects.all()
old_vm_templates.delete()
@ -26,4 +39,5 @@ class Command(BaseCommand):
for dcl_vm_template in dcl_vm_templates:
dcl_vm_template.save()
except Exception as e:
logger.error('Error connecting to OpenNebula. Error Details: {err}'.format(err=str(e)))
logger.error('Error connecting to OpenNebula. Error Details: '
'{err}'.format(err=str(e)))

View file

@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-02-20 14:23
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0010_merge'),
]
operations = [
migrations.RemoveField(
model_name='betaaccessvm',
name='access',
),
migrations.RemoveField(
model_name='betaaccessvm',
name='type',
),
migrations.DeleteModel(
name='BetaAccess',
),
migrations.DeleteModel(
name='BetaAccessVM',
),
migrations.DeleteModel(
name='BetaAccessVMType',
),
]

View file

@ -0,0 +1,138 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-03-01 20:41
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
import djangocms_text_ckeditor.fields
import filer.fields.image
class Migration(migrations.Migration):
dependencies = [
('cms', '0014_auto_20160404_1908'),
('datacenterlight', '0011_auto_20180220_1423'),
]
operations = [
migrations.CreateModel(
name='DCLSectionPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
('heading', models.CharField(blank=True, help_text='An optional heading for the Section', max_length=100, null=True)),
('content', djangocms_text_ckeditor.fields.HTMLField()),
('text_direction', models.CharField(choices=[('left', 'Left'), ('right', 'Right')], default=True, help_text='The alignment of text in the section', max_length=10)),
('html_id', models.SlugField(blank=True, help_text='An optional html id for the Section. Required to set as target of a link on page', null=True)),
('center_on_mobile', models.BooleanField(default=False, help_text='Select to center align content on small screens.')),
('background_gradient', models.BooleanField(default=False, help_text='Select to add a gradient background to the section.')),
('plain_heading', models.BooleanField(default=False, help_text='Select to keep the heading style simpler.')),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLNavbarDropdownPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
('text', models.CharField(help_text='Text for the dropdown toggle', max_length=50)),
('target', models.CharField(blank=True, help_text='Optional Url or #id to navigate on click', max_length=100, null=True)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLContactPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
('heading', models.CharField(blank=True, default='Contact', max_length=100)),
('organization_name', models.CharField(blank=True, default='ungleich GmbH', max_length=100)),
('email', models.EmailField(default='info@ungleich.ch', max_length=200)),
('address', models.CharField(blank=True, default='In der Au 7, Schwanden 8762', max_length=100)),
('country', models.CharField(blank=True, default='Switzerland', max_length=100)),
('form_header', models.CharField(blank=True, default='Send us a message.', max_length=100)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLFooterPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
('copyright_label', models.CharField(blank=True, default='ungleich GmbH', help_text='Name of the company alongside the copyright year', max_length=100)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLLinkPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
('target', models.CharField(help_text='Url or #id to navigate to', max_length=100)),
('text', models.CharField(help_text='Text for the menu item', max_length=50)),
('title', models.CharField(blank=True, help_text='Optional title text, that will be shown when a user hovers over the link', max_length=100, null=True)),
('separator', models.BooleanField(default=False, help_text='Select to include a separator after the previous link')),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLSectionIconPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
('fontawesome_icon_name', models.CharField(help_text='Name of the fontawesome icon to use. <a href="https://fontawesome.com/v4.7.0/icons/" target="_blank">Refer docs.</a>', max_length=30)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLSectionImagePluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
('caption', models.CharField(blank=True, help_text='Optional caption for the image.', max_length=100, null=True)),
('image', filer.fields.image.FilerImageField(help_text='Image file to be used in section. Add multiple plugins to add more than one image', on_delete=django.db.models.deletion.CASCADE, to='filer.Image')),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLBannerListPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
('heading', models.CharField(blank=True, help_text='An optional heading for the Section', max_length=100, null=True)),
('html_id', models.SlugField(blank=True, help_text='An optional html id for the Section. Required to set as target of a link on page', null=True)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLBannerItemPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
('content', djangocms_text_ckeditor.fields.HTMLField()),
('banner_text', djangocms_text_ckeditor.fields.HTMLField(blank=True, help_text='Optional text to be shown as banner in other half.', max_length=100, null=True)),
('text_direction', models.CharField(choices=[('left', 'Left'), ('right', 'Right')], default=True, help_text='The alignment of text in the section', max_length=10)),
('banner_image', filer.fields.image.FilerImageField(blank=True, help_text='Optional image to be used in the banner in other half.', null=True, on_delete=django.db.models.deletion.CASCADE, to='filer.Image')),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
]

View file

@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-03-17 07:19
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
import filer.fields.image
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0012_dclcalculatorpluginmodel'),
('cms', '0014_auto_20160404_1908'),
]
operations = [
migrations.CreateModel(
name='DCLNavbarPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
('logo_url', models.URLField(blank=True, max_length=300, null=True)),
('logo_dark', filer.fields.image.FilerImageField(blank=True, help_text='Logo to be used on white navbar', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_navbar_logo_dark', to='filer.Image')),
('logo_light', filer.fields.image.FilerImageField(blank=True, help_text='Logo to be used on transparent navbar', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_navbar_logo_light', to='filer.Image')),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
]

View file

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-03-19 20:46
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0013_dclnavbarpluginmodel'),
]
operations = [
migrations.AddField(
model_name='dclnavbarpluginmodel',
name='language_dropdown',
field=models.BooleanField(
default=True, help_text='Select to include the language selection dropdown.'),
),
]

View file

@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-03-21 19:09
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
import djangocms_text_ckeditor.fields
import filer.fields.image
class Migration(migrations.Migration):
dependencies = [
('cms', '0014_auto_20160404_1908'),
('datacenterlight', '0013_dclnavbarpluginmodel'),
]
operations = [
migrations.CreateModel(
name='DCLSectionPromoPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE,
parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
('heading', models.CharField(
blank=True, help_text='An optional heading for the Promo Section', max_length=100, null=True)),
('subheading', models.CharField(
blank=True, help_text='An optional subheading for the Promo Section', max_length=200, null=True)),
('content', djangocms_text_ckeditor.fields.HTMLField()),
('html_id', models.SlugField(
blank=True, help_text='An optional html id for the Section. Required to set as target of a link on page', null=True)),
('plain_heading', models.BooleanField(default=False,
help_text='Select to keep the heading style simpler.')),
('center_on_mobile', models.BooleanField(default=False,
help_text='Select to center align content on small screens.')),
('background_image', filer.fields.image.FilerImageField(blank=True, help_text='Optional background image for the Promo Section',
null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_section_promo_promo', to='filer.Image')),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
]

View file

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-03-22 19:22
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0014_dclsectionpromopluginmodel'),
('datacenterlight', '0014_dclnavbarpluginmodel_language_dropdown'),
]
operations = [
migrations.RenameField(
model_name='dclsectionpromopluginmodel',
old_name='center_on_mobile',
new_name='text_center',
),
]

View file

@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-03-27 15:31
from __future__ import unicode_literals
import cms.models.fields
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0015_auto_20180323_0011'),
('cms', '0014_auto_20160404_1908'),
]
operations = [
migrations.CreateModel(
name='CMSIntegration',
fields=[
('id', models.AutoField(auto_created=True,
primary_key=True, serialize=False, verbose_name='ID')),
('navbar_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True,
on_delete=django.db.models.deletion.CASCADE, slotname='datacenterlight_navbar', to='cms.Placeholder')),
('footer_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True,
on_delete=django.db.models.deletion.CASCADE, slotname='datacenterlight_footer', to='cms.Placeholder')),
('name', models.CharField(default='default',
help_text='A unique name for the Integration. This name will be used to fetch the Integration into pages', max_length=100, unique=True)),
],
),
]

View file

@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-03-28 19:26
from __future__ import unicode_literals
import cms.models.fields
from django.db import migrations
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0016_cmsintegration'),
]
operations = [
migrations.AlterField(
model_name='cmsintegration',
name='footer_placeholder',
field=cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-footer-placeholder+', slotname='datacenterlight_footer', to='cms.Placeholder'),
),
migrations.AlterField(
model_name='cmsintegration',
name='navbar_placeholder',
field=cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-navbar-placeholder+', slotname='datacenterlight_navbar', to='cms.Placeholder'),
),
]

View file

@ -0,0 +1,41 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-04-03 17:08
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0017_auto_20180329_0056'),
('sites', '0002_alter_domain_unique'),
]
operations = [
migrations.AlterField(
model_name='dclcontactpluginmodel',
name='organization_name',
field=models.CharField(blank=True, default='ungleich glarus ag', max_length=100),
),
migrations.AlterField(
model_name='dclfooterpluginmodel',
name='copyright_label',
field=models.CharField(blank=True, default='ungleich glarus ag', help_text='Name of the company alongside the copyright year', max_length=100),
),
migrations.AddField(
model_name='cmsintegration',
name='domain',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='sites.Site'),
),
migrations.AlterField(
model_name='cmsintegration',
name='name',
field=models.CharField(default='default', help_text='A unique name for the Integration. This name will be used to fetch the Integration into pages', max_length=100),
),
migrations.AlterUniqueTogether(
name='cmsintegration',
unique_together=set([('name', 'domain')]),
),
]

View file

@ -0,0 +1,45 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-04-15 22:36
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('cms', '0014_auto_20160404_1908'),
('datacenterlight', '0018_auto_20180403_1930'),
]
operations = [
migrations.CreateModel(
name='DCLCustomPricingModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='VMPricing',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255, unique=True)),
('vat_inclusive', models.BooleanField(default=True)),
('vat_percentage', models.DecimalField(blank=True, decimal_places=5, default=0, max_digits=7)),
('cores_unit_price', models.DecimalField(decimal_places=5, default=0, max_digits=7)),
('ram_unit_price', models.DecimalField(decimal_places=5, default=0, max_digits=7)),
('ssd_unit_price', models.DecimalField(decimal_places=5, default=0, max_digits=7)),
('hdd_unit_price', models.DecimalField(decimal_places=6, default=0, max_digits=7)),
],
),
migrations.AddField(
model_name='dclcustompricingmodel',
name='pricing',
field=models.ForeignKey(help_text='Choose a pricing that will be associated with this Calculator', on_delete=django.db.models.deletion.CASCADE, related_name='dcl_custom_pricing_vm_pricing', to='datacenterlight.VMPricing'),
),
]

View file

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-04-12 03:16
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
import filer.fields.file
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0018_auto_20180403_1930'),
]
operations = [
migrations.CreateModel(
name='CMSFaviconExtension',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('extended_object', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='cms.Page')),
('favicon', filer.fields.file.FilerFileField(on_delete=django.db.models.deletion.CASCADE, related_name='cms_favicon_image', to='filer.File')),
('public_extension', models.OneToOneField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='draft_extension', to='datacenterlight.CMSFaviconExtension')),
],
options={
'abstract': False,
},
),
]

View file

@ -0,0 +1,16 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-04-20 15:04
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0019_auto_20180415_2236'),
('datacenterlight', '0019_cmsfaviconextension'),
]
operations = [
]

View file

@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-04-25 09:20
from __future__ import unicode_literals
import cms.models.fields
from django.db import migrations
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0020_merge'),
('cms', '0014_auto_20160404_1908'),
]
operations = [
migrations.AddField(
model_name='cmsintegration',
name='calculator_placeholder',
field=cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE,
related_name='dcl-calculator-placeholder+', slotname='datacenterlight_calculator', to='cms.Placeholder'),
),
migrations.RenameModel(
old_name='DCLCustomPricingModel',
new_name='DCLCalculatorPluginModel',
),
]

View file

@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-05-07 02:19
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0021_cmsintegration_calculator_placeholder'),
]
operations = [
migrations.AddField(
model_name='vmpricing',
name='discount_amount',
field=models.DecimalField(
decimal_places=2, default=0, max_digits=6),
),
migrations.AddField(
model_name='vmpricing',
name='discount_name',
field=models.CharField(blank=True, max_length=255, null=True),
),
]

View file

@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-05-23 22:19
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0022_auto_20180506_1950'),
]
operations = [
migrations.AddField(
model_name='dclcalculatorpluginmodel',
name='vm_type',
field=models.CharField(choices=[('public', 'Public'), ('ipv6only', 'Ipv6Only')], default='public', max_length=50),
),
migrations.AddField(
model_name='vmtemplate',
name='vm_type',
field=models.CharField(choices=[('public', 'Public'), ('ipv6only', 'Ipv6Only')], default='public', max_length=50),
),
]

View file

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-06-24 08:23
from __future__ import unicode_literals
import datacenterlight.cms_models
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0023_auto_20180524_0349'),
]
operations = [
migrations.AddField(
model_name='dclcalculatorpluginmodel',
name='vm_templates_to_show',
field=datacenterlight.cms_models.MultipleChoiceArrayField(base_field=models.CharField(blank=True, max_length=256), blank=True, default=list, help_text='Recommended: If you wish to show all templates of the corresponding VM Type (public/ipv6only), please do not select any of the items in the above field. This will allow any new template(s) added in the backend to be automatically listed in this calculator instance.', size=None),
),
]

View file

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-09-25 20:27
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0024_dclcalculatorpluginmodel_vm_templates_to_show'),
]
operations = [
migrations.AddField(
model_name='dclnavbarpluginmodel',
name='show_login_option',
field=models.BooleanField(default=True, help_text='Uncheck this if you do not want to show login/dashboard.'),
),
]

View file

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-09-27 20:32
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0025_dclnavbarpluginmodel_show_login_option'),
]
operations = [
migrations.AddField(
model_name='dclcalculatorpluginmodel',
name='default_selected_template',
field=models.CharField(default='Devuan Ascii', help_text='Write the name of the template that you need selected as default when the calculator loads', max_length=128, null=True),
),
]

View file

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2018-09-29 05:36
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0026_dclcalculatorpluginmodel_default_selected_template'),
]
operations = [
migrations.AddField(
model_name='dclcalculatorpluginmodel',
name='enable_512mb_ram',
field=models.BooleanField(default=False),
),
]

View file

@ -1,67 +1,103 @@
import logging
from django.db import models
class BetaAccessVMType(models.Model):
ssd = models.IntegerField()
ram = models.IntegerField()
cpu = models.IntegerField()
price = models.FloatField()
def __str__(self):
return "ID: %s - SSD %s - RAM %s - CPU %s - Price %s " % \
(self.id, str(self.ssd), self.ram, self.cpu, self.price)
class BetaAccess(models.Model):
email = models.CharField(max_length=250)
name = models.CharField(max_length=250)
# vm = models.ForeignKey(BetaAccessVM)
def __str__(self):
vms = self.betaaccessvm_set.all()
rep = "Email: %s " % self.email
for vm in vms:
rep += "(vm:%s - amount:%s) - " % (vm.type.id, vm.amount)
return rep
class BetaAccessVM(models.Model):
type = models.ForeignKey(BetaAccessVMType)
access = models.ForeignKey(BetaAccess)
amount = models.IntegerField()
@classmethod
def create(cls, data):
VM_KEY_ID = 0
VM_AMOUNT = 1
ZERO = 0
email = data.get('email')
beta_access = BetaAccess.objects.create(email=email)
vm_data = [(key, value) for key, value in data.items() if 'vm' in key]
created_vms = []
for vm in vm_data:
if int(vm[VM_AMOUNT]) == ZERO:
continue
vm_id = vm[VM_KEY_ID].split('-').pop()
vm_type = BetaAccessVMType.objects.get(id=vm_id)
created_vms.append(cls.objects.create(access=beta_access,
amount=vm[VM_AMOUNT], type=vm_type))
return created_vms
logger = logging.getLogger(__name__)
class VMTemplate(models.Model):
PUBLIC = 'public'
IPV6 = 'ipv6only'
VM_TYPE_CHOICES = (
(PUBLIC, PUBLIC.title()),
(IPV6, IPV6.title()),
)
name = models.CharField(max_length=50)
opennebula_vm_template_id = models.IntegerField()
vm_type = models.CharField(
max_length=50, choices=VM_TYPE_CHOICES, default=PUBLIC
)
def __str__(self):
return '%s - %s - %s' % (
self.opennebula_vm_template_id, self.vm_type, self.name
)
@classmethod
def create(cls, name, opennebula_vm_template_id):
def create(cls, name, opennebula_vm_template_id, vm_type):
vm_template = cls(
name=name, opennebula_vm_template_id=opennebula_vm_template_id)
name=name, opennebula_vm_template_id=opennebula_vm_template_id,
vm_type=vm_type
)
return vm_template
class VMPricing(models.Model):
name = models.CharField(max_length=255, unique=True)
vat_inclusive = models.BooleanField(default=True)
vat_percentage = models.DecimalField(
max_digits=7, decimal_places=5, blank=True, default=0
)
cores_unit_price = models.DecimalField(
max_digits=7, decimal_places=5, default=0
)
ram_unit_price = models.DecimalField(
max_digits=7, decimal_places=5, default=0
)
ssd_unit_price = models.DecimalField(
max_digits=7, decimal_places=5, default=0
)
hdd_unit_price = models.DecimalField(
max_digits=7, decimal_places=6, default=0
)
discount_name = models.CharField(max_length=255, null=True, blank=True)
discount_amount = models.DecimalField(
max_digits=6, decimal_places=2, default=0
)
def __str__(self):
display_str = self.name + ' => ' + ' - '.join([
'{}/Core'.format(self.cores_unit_price.normalize()),
'{}/GB RAM'.format(self.ram_unit_price.normalize()),
'{}/GB SSD'.format(self.ssd_unit_price.normalize()),
'{}/GB HDD'.format(self.hdd_unit_price.normalize()),
'{}% VAT'.format(self.vat_percentage.normalize())
if not self.vat_inclusive else 'VAT-Incl',
])
if self.discount_amount:
display_str = ' - '.join([
display_str,
'{} {}'.format(
self.discount_amount,
self.discount_name if self.discount_name else 'Discount'
)
])
return display_str
@classmethod
def get_vm_pricing_by_name(cls, name):
try:
pricing = VMPricing.objects.get(name=name)
except Exception as e:
logger.error(
"Error getting VMPricing with name {name}. "
"Details: {details}. Attempting to return default"
"pricing.".format(name=name, details=str(e))
)
pricing = VMPricing.get_default_pricing()
return pricing
@classmethod
def get_default_pricing(cls):
""" Returns the default pricing or None """
try:
default_pricing = VMPricing.objects.get(name='default')
except Exception as e:
logger.error(str(e))
default_pricing = None
return default_pricing
class StripePlan(models.Model):
"""
A model to store Data Center Light's created Stripe plans
@ -79,3 +115,6 @@ class ContactUs(models.Model):
email = models.CharField(max_length=250)
message = models.TextField()
field = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -1,47 +1,15 @@
.dcl-cms_page-full-width {
color: #fff;
text-align: center;
background-image: -ms-linear-gradient(right, #29427A 50%, #4F6699 100%);
background-image: -moz-linear-gradient(right, #29427A 50%, #4F6699 100%);
background-image: -o-linear-gradient(right, #29427A 50%, #4F6699 100%);
background-image: -webkit-gradient(linear, right top, left top, color-stop(50, #29427A), color-stop(100, #4F6699));
background-image: -webkit-linear-gradient(right, #29427A 50%, #4F6699 100%);
background-image: linear-gradient(to left, #29427A 50%, #4F6699 100%);
/* only for cms editing mode */
.section-figure .cms-plugin {
flex-basis: 50%;
flex-grow: 1;
}
.dcl-cms_page-header {
padding: 150px 0 150px 0;
text-align: center;
color: #f8f8f8;
background: url(../img/pattern.jpg) no-repeat center center;
background-size: cover;
position: relative;
background-attachment: fixed;
}
.dcl-cms_page-header::before {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(90, 116, 175, 0.85);
}
#dcl-cms_page-text {
background: #fff;
}
#dcl-cms_page-text h3 {
font-size: 42px;
width: 70%;
.split-section-plain .section-figure .cms-plugin {
flex-grow: 0;
}
@media (max-width: 767px) {
#dcl-cms_page-text h3 {
font-size: 30px;
line-height: 40px;
width: 100%;
}
.section-figure .cms-plugin {
flex-basis: 100%;
}
}

View file

@ -0,0 +1,188 @@
body,
html {
width: 100%;
height: 100%;
}
body,
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: 'Lato', sans-serif;
}
/* bootstrap danger color override from #a94442 */
.text-danger,
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label,
.has-error .form-control-feedback,
.alert-danger,
.list-group-item-danger,
a.list-group-item-danger,
a.list-group-item-danger:hover,
a.list-group-item-danger:focus,
.panel-danger>.panel-heading {
color: #eb4d5c;
}
.alert-danger {
background: rgba(235, 204, 209, 0.2);
}
.has-error .form-control,
.has-error .form-control:focus,
.has-error .form-control:active,
.has-error .input-group-addon {
color: #eb4d5c;
border-color: #eb4d5c;
}
a.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
a.list-group-item-danger.active:focus {
background-color: #eb4d5c;
border-color: #eb4d5c;
}
.panel-danger>.panel-heading .badge {
background-color: #eb4d5c;
}
.topnav {
font-size: 14px;
}
.navbar-default {
background: #fff;
padding: 5px;
}
.navbar-brand {
padding: 10px;
}
.navbar-brand > img {
height: 100%;
}
#logoWhite,
.navbar-transparent #logoBlack {
display: none;
}
#logoBlack,
.navbar-transparent #logoWhite {
display: block;
}
@media (min-width: 768px) {
.navbar-right {
margin-right: 10px;
}
.navbar-brand {
padding-right: 15px;
padding-left: 15px;
}
}
.navbar .dcl-link {
display: block;
padding: 15px;
color: #777;
}
.navbar .dcl-link:focus,
.navbar .dcl-link:active,
.navbar .dcl-link:hover {
text-decoration: none;
}
.navbar .dropdown-menu .dcl-link {
padding: 1px 10px;
}
p.copyright {
margin: 0;
}
footer {
font-weight: 300;
padding: 25px 0;
background-color: #f8f8f8;
}
footer .list-inline {
margin-bottom: 15px;
}
footer a {
color: #777;
}
footer .dcl-link-separator {
position: relative;
padding-left: 10px;
}
footer .dcl-link-separator::before {
content: "";
position: absolute;
display: inline-block;
top: 9px;
bottom: 0;
left: -2px;
right: 0;
width: 2px;
height: 2px;
border-radius: 100%;
background: #777;
}
.mb-0 {
margin-bottom: 0;
}
.thin-hr {
margin-top: 10px;
margin-bottom: 10px;
}
.payment-container .credit-card-info {
padding-bottom: 15px;
border-bottom: 1px solid #eee;
}
.credit-card-info {
display: flex;
}
.credit-card-info .align-bottom {
align-self: flex-end;
padding-right: 0 !important;
}
.new-card-head {
margin-top: 10px;
}
.new-card-button-margin button{
margin-top: 5px;
margin-bottom: 5px;
}
.input-no-border {
border: none !important;
background: transparent !important;
resize: none;
}

View file

@ -0,0 +1,186 @@
.btn-trans {
color: #fff;
border: 2px solid #fff;
padding: 4px 18px;
letter-spacing: 0.6px;
background: rgba(0,0,0,0.35);
}
.btn-trans:focus,
.btn-trans:active,
.btn-trans:hover {
background: #fff;
color: #333;
}
.header_slider > .carousel .carousel-inner {
min-height: 95vh;
display: flex;
}
.header_slider > .carousel .carousel-inner > .next,
.header_slider > .carousel .carousel-inner > .prev {
bottom: 0;
}
.header_slider .carousel-indicators {
width: 100%;
left: 0;
margin-left: 0;
}
.header_slider .carousel-indicators li {
margin-right: 25px;
width: 16px;
height: 16px;
}
.header_slider .carousel-indicators li.active {
background-color: #ffffff;
}
.header_slider .carousel-control {
display: none;
}
.header_slider .carousel-control .fa {
font-size: 2em;
position: absolute;
top: 50%;
margin-top: -50px;
}
.header_slider > .carousel .item {
background: rgba(0,0,0,0.5);
flex: 1;
}
.header_slider > .carousel .item .container-fluid {
overflow: auto;
padding: 50px 20px 60px;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end;
/* background: rgba(0,0,0,0.5); */
}
.header_slider .intro-cap {
margin: 0;
text-align: right;
line-height: 1.1;
font-size: 23px;
padding-bottom: 10px;
color: #fff;
}
.header_slider .btn-trans {
align-self: flex-end;
z-index: 2;
position: relative;
}
@media (max-width: 767px) {
.header_slider .intro-cap,
.header_slider .intro_lead {
font-weight: 400;
}
}
@media (min-width: 768px) {
.header_slider .intro-cap {
font-size: 2.5em;
}
.header_slider .carousel-control {
width: 50px;
display: block;
}
.header_slider .carousel-control .fa-angle-left {
left: 25px;
}
.header_slider .carousel-control .fa-angle-right {
right: 25px;
}
.header_slider .carousel-control .fa {
font-size: 4em;
}
.header_slider > .carousel .item .container-fluid {
overflow: auto;
padding: 75px;
}
.header_slider .btn-trans {
padding: 8px 15px;
min-width: 175px;
letter-spacing: 1px;
font-size: 1.25em;
}
}
@media (min-width: 992px) {
.header_slider .intro-cap {
font-size: 3.25em;
}
}
.header_slider .intro_lead {
color: #fff;
font-size: 1.55em;
text-align: right;
line-height: 1.4;
margin-bottom: 0;
padding-bottom: 10px;
}
@media (max-width: 768px) {
.header_slider .intro_lead {
font-size: 1.1em;
margin-bottom: 15px;
}
.header_slider .carousel-indicators li {
margin: 1px 25px;
width: 16px;
height: 16px;
}
.header_slider .carousel-indicators li.active {
margin: 0 25px;
width: 18px;
height: 18px;
}
}
.bg_img {
position: absolute;
top: 0;
left: 0;
z-index: -1;
width: 100%;
height: 100%;
background-size: cover;
background-position: center;
}
.bg_vid {
position: absolute;
top: 0;
left: 0;
z-index: -1;
width: 100%;
height: 100%;
background-size: cover;
background-position: center;
}
@media (min-aspect-ratio: 16/9) {
.bg_vid > video {
width: 100%;
height: auto;
}
}
@media (max-aspect-ratio: 16/9) {
.bg_vid > video {
/* width: auto; */
height: 100%;
}
}

View file

@ -0,0 +1,616 @@
.navbar-transparent #logoWhite {
display: none;
}
.navbar-transparent #logoBlack {
display: block;
width: 220px;
}
.topnav .navbar-fixed-top .navbar-collapse {
max-height: 740px;
}
.navbar-default .navbar-header {
position: relative;
z-index: 1;
}
.navbar-right .highlights-dropdown .dropdown-menu {
left: 0 !important;
min-width: 155px;
margin-left: 15px;
padding: 0 5px 8px !important;
}
@media(min-width: 768px) {
.navbar-default .navbar-nav>li a,
.navbar-right .highlights-dropdown .dropdown-menu>li a {
font-weight: 300;
}
.navbar-right .highlights-dropdown .dropdown-menu {
border-width: 0 0 1px 0;
border-color: #e7e7e7;
box-shadow: -8px 14px 20px -5px rgba(77, 77, 77, 0.5);
}
}
.navbar-right .highlights-dropdown .dropdown-menu>li a {
font-size: 13px;
font-family: 'Lato', sans-serif;
padding: 1px 10px 1px 18px !important;
background: transparent;
color: #333;
}
.navbar-right .highlights-dropdown .dropdown-menu>li a:hover,
.navbar-right .highlights-dropdown .dropdown-menu>li a:focus,
.navbar-right .highlights-dropdown .dropdown-menu>li a:active {
background: transparent;
text-decoration: underline !important;
}
.un-icon {
width: 15px;
height: 15px;
opacity: 0.5;
margin-top: -1px;
}
/***** DCL payment page **********/
.dcl-order-container {
font-weight: 300;
}
.dcl-place-order-text {
color: #808080;
}
.card-warning-content {
font-weight: 300;
border: 1px solid #a1a1a1;
border-radius: 3px;
padding: 5px;
margin-bottom: 15px;
}
.card-warning-error {
border: 1px solid #EB4D5C;
color: #EB4D5C;
}
.card-warning-addtional-margin {
margin-top: 15px;
}
.card-cvc-element label {
padding-left: 10px;
}
.card-element {
margin-bottom: 10px;
}
.card-element label {
width: 100%;
margin-bottom: 0px;
}
.my-input {
border-bottom: 1px solid #ccc;
}
.card-cvc-element .my-input {
padding-left: 10px;
}
#card-errors {
clear: both;
padding: 0 0 10px;
color: #eb4d5c;
}
.credit-card-goup {
padding: 0;
}
@media (max-width: 767px) {
.card-expiry-element {
padding-right: 10px;
}
.card-cvc-element {
padding-left: 10px;
}
#billing-form .form-control {
box-shadow: none !important;
font-weight: 400;
}
}
@media (min-width: 1200px) {
.dcl-order-container {
width: 990px;
padding: 0 15px;
margin: 0 auto;
}
}
.footer-vm p.copyright {
margin-top: 4px;
}
.navbar-default .navbar-nav>.open>a,
.navbar-default .navbar-nav>.open>a:focus,
.navbar-default .navbar-nav>.open>a:hover,
.navbar-default .navbar-nav>.active>a,
.navbar-default .navbar-nav>.active>a:focus,
.navbar-default .navbar-nav>.active>a:hover {
background-color: transparent;
}
@media (max-width: 767px) {
.navbar-default .navbar-nav .open .dropdown-menu>.active a,
.navbar-default .navbar-nav .open .dropdown-menu>.active a:focus,
.navbar-default .navbar-nav .open .dropdown-menu>.active a:hover {
background-color: transparent;
}
}
/* bootstrap input box-shadow disable */
.has-error .form-control:focus,
.has-error .form-control:active,
.has-success .form-control:focus,
.has-success .form-control:active {
box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.25);
}
.content-dashboard {
min-height: calc(100vh - 96px);
width: 100%;
margin: 0 auto;
max-width: 1120px;
}
@media (max-width: 767px) {
.content-dashboard {
padding: 0 15px;
}
}
@media (max-width: 575px) {
select {
width: 280px;
}
}
.btn:focus,
.btn:active:focus {
outline: 0;
}
/***********Styles for Model********************/
.modal-content {
border-radius: 0px;
font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif;
width: 100%;
float: left;
border-radius: 0;
font-weight: 300;
}
.modal-header {
min-height: 30px;
border-bottom: 0px solid #e5e5e5;
padding: 0px 15px;
width: 100%;
}
.modal-header .close {
font-size: 75px;
font-weight: 300;
margin-top: 0;
position: absolute;
top: 0;
right: 11px;
z-index: 10;
line-height: 60px;
}
.modal-header .close span {
display: block;
}
.modal-header .close:focus {
outline: 0;
}
.modal-body {
text-align: center;
width: 100%;
float: left;
padding: 0px 30px 15px 30px;
}
.modal-body .modal-icon i {
font-size: 80px;
font-weight: 100;
color: #999;
}
.modal-body .modal-icon {
margin-bottom: 15px;
}
.modal-title {
margin: 0;
line-height: 1.42857143;
font-size: 25px;
padding: 0;
font-weight: 300;
}
.modal-text {
padding-top: 5px;
font-size: 16px;
}
.modal-text p:not(:last-of-type) {
margin-bottom: 5px;
}
.modal-title+.modal-footer {
margin-top: 5px;
}
.modal-footer {
border-top: 0px solid #e5e5e5;
width: 100%;
float: left;
text-align: center;
padding: 15px 15px;
}
.modal {
text-align: center;
}
.modal-dialog {
display: inline-block;
text-align: left;
vertical-align: middle;
width: 40%;
margin: 15px auto;
}
@media (min-width: 768px) and (max-width: 991px) {
.modal-dialog {
width: 50%;
}
}
@media (max-width: 767px) {
.modal-dialog {
width: 95%;
}
}
@media(min-width: 576px) {
.modal:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -4px;
}
}
/* ========= */
.btn-wide {
min-width: 100px;
}
.choice-btn {
min-width: 110px;
background-color: #3C5480;
color: #fff;
border: 2px solid #3C5480;
padding: 4px 10px;
transition: 0.3s all ease-out;
}
.choice-btn:focus,
.choice-btn:hover,
.choice-btn:active {
color: #3C5480;
background-color: #fff;
}
@media (max-width: 767px) {
.choice-btn {
margin-top: 15px;
}
}
.payment-container {
padding-top: 70px;
padding-bottom: 11%;
}
.last-p {
margin-bottom: 0;
}
.dcl-payment-section {
max-width: 391px;
margin: 0 auto 30px;
padding: 0 10px 30px;
border-bottom: 1px solid #edebeb;
height: 100%;
}
.dcl-payment-section hr {
margin-top: 15px;
margin-bottom: 15px;
}
.dcl-payment-section .top-hr {
margin-left: -10px;
}
.dcl-payment-section h3 {
font-weight: 600;
}
.dcl-payment-section p {
font-weight: 400;
}
.dcl-payment-section .card-warning-content {
padding: 8px 10px;
font-weight: 300;
}
.dcl-payment-order strong {
font-size: 17px;
}
.dcl-payment-order p {
font-weight: 300;
}
.dcl-payment-section .form-group {
margin-bottom: 10px;
}
.dcl-payment-section .form-control {
box-shadow: none;
padding: 6px 12px;
height: 32px;
}
.dcl-payment-user {
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
}
.dcl-payment-user h4 {
font-weight: 600;
font-size: 17px;
}
@media (min-width: 768px) {
.dcl-payment-grid {
display: flex;
align-items: stretch;
flex-wrap: wrap;
}
.dcl-payment-box {
width: 50%;
position: relative;
padding: 0 30px;
}
.dcl-payment-box:nth-child(2) {
order: 1;
}
.dcl-payment-box:nth-child(4) {
order: 2;
}
.dcl-payment-section {
padding-top: 15px;
padding-bottom: 15px;
margin-bottom: 0;
border-bottom-width: 5px;
}
.dcl-payment-box:nth-child(2n) .dcl-payment-section {
border-bottom: none;
}
.dcl-payment-box:nth-child(1):after,
.dcl-payment-box:nth-child(2):after {
content: ' ';
display: block;
background: #eee;
width: 1px;
position: absolute;
right: 0;
z-index: 2;
top: 20px;
bottom: 20px;
}
}
#virtual_machine_create_form {
padding: 15px 0;
}
.btn-vm-contact {
color: #fff;
background: #A3C0E2;
border: 2px solid #A3C0E2;
padding: 5px 25px;
font-size: 12px;
letter-spacing: 1.3px;
}
.btn-vm-contact:hover,
.btn-vm-contact:focus {
background: #fff;
color: #a3c0e2;
}
/* hosting-order */
.order-detail-container {
max-width: 600px;
margin: 100px auto 40px;
border: 1px solid #ccc;
padding: 30px 30px 20px;
color: #595959;
}
.order-detail-container .dashboard-title-thin {
margin-top: 0;
margin-left: -3px;
}
.order-detail-container .dashboard-title-thin .un-icon {
margin-top: -6px;
}
.order-detail-container .dashboard-container-head {
position: relative;
padding: 0;
margin-bottom: 38px;
}
.order-detail-container .order-details {
margin-bottom: 15px;
}
.order-detail-container h4 {
font-size: 16px;
font-weight: bold;
margin-bottom: 10px;
}
.order-detail-container p {
margin-bottom: 5px;
}
.order-detail-container hr {
margin: 15px 0;
}
.order-detail-container .thin-hr {
margin: 10px 0;
}
.order-detail-container .subtotal-price {
font-size: 16px;
}
.order-detail-container .subtotal-price .text-primary {
font-size: 17px;
}
.order-detail-container .total-price {
font-size: 18px;
}
@media (max-width: 767px) {
.order-detail-container {
padding: 15px;
}
.order-confirm-btn {
text-align: center;
margin-top: 10px;
}
.order-detail-container .dashboard-container-options {
position: absolute;
top: 4px;
right: -4px;
}
.order-detail-container .dashboard-container-options .svg-img {
height: 16px;
width: 16px;
}
}
.order_detail_footer {
font-size: 9px;
letter-spacing: 1px;
color: #333333;
}
.order_detail_footer strong {
font-size: 11px;
}
.order_detail_footer small {
font-size: 8px;
}
.dashboard-title-thin {
font-weight: 300;
font-size: 32px;
}
.dashboard-title-thin .un-icon {
height: 34px;
margin-right: 5px;
margin-top: -2px;
width: 34px;
vertical-align: middle;
}
@media (max-width:767px) {
.dashboard-title-thin {
font-size: 22px;
}
.dashboard-title-thin .un-icon {
height: 22px;
width: 22px;
margin-top: -3px;
}
}
.locale_date {
opacity: 0;
}
.locale_date.done {
opacity: 1;
}
.btn-vm-back {
color: #fff;
background: #C4CEDA;
border: 2px solid #C4CEDA;
padding: 5px 25px;
font-size: 12px;
letter-spacing: 1.3px;
}
.btn-vm-back:hover,
.btn-vm-back:focus {
color: #fff;
background: #8da4c0;
border-color: #8da4c0;
}

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

View file

@ -2,32 +2,32 @@
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="156.5px" height="40px" viewBox="0 0 156.5 40" enable-background="new 0 0 156.5 40" xml:space="preserve">
width="156.5px" height="30.5px" viewBox="0 0 156.5 30.5" enable-background="new 0 0 156.5 30.5" xml:space="preserve">
<g display="none">
<g display="inline">
<path fill="#231916" d="M32.599,25.896c0-0.429,0.15-0.845,0.453-1.25c0.303-0.408,0.734-0.773,1.296-1.097v-0.092
c-0.294-0.16-0.554-0.388-0.777-0.674c-0.22-0.289-0.332-0.662-0.332-1.119c0-0.354,0.115-0.712,0.345-1.076
<path fill="#231916" d="M32.599,25.896c0-0.43,0.15-0.846,0.453-1.25c0.303-0.408,0.734-0.773,1.296-1.098v-0.092
c-0.294-0.16-0.554-0.389-0.777-0.674c-0.22-0.289-0.332-0.662-0.332-1.119c0-0.354,0.115-0.712,0.345-1.076
c0.227-0.36,0.55-0.683,0.964-0.962v-0.09c-0.386-0.28-0.711-0.654-0.978-1.12c-0.263-0.464-0.397-1.021-0.397-1.67
c0-0.606,0.118-1.149,0.354-1.63c0.236-0.48,0.555-0.889,0.954-1.229c0.398-0.34,0.86-0.598,1.385-0.775
c0.523-0.178,1.081-0.266,1.672-0.266c0.605,0,1.152,0.088,1.64,0.266h4.452v1.662h-2.702c0.222,0.237,0.42,0.528,0.598,0.875
c0.178,0.348,0.267,0.735,0.267,1.165c0,0.59-0.111,1.117-0.332,1.572c-0.222,0.459-0.525,0.846-0.91,1.163
c-0.384,0.318-0.834,0.558-1.351,0.72c-0.517,0.162-1.071,0.246-1.663,0.246c-0.265,0-0.55-0.031-0.854-0.091
c-0.302-0.058-0.601-0.147-0.896-0.267c-0.503,0.326-0.753,0.701-0.753,1.131c0,0.398,0.185,0.686,0.553,0.865
c0.369,0.176,0.901,0.266,1.596,0.266h2.303c1.42,0,2.47,0.203,3.159,0.607c0.687,0.406,1.029,1.076,1.029,2.006
c0,0.518-0.145,1.004-0.431,1.461c-0.29,0.459-0.699,0.861-1.23,1.209c-0.531,0.348-1.174,0.621-1.929,0.82
c-0.751,0.199-1.594,0.299-2.525,0.299c-1.537,0-2.747-0.25-3.633-0.744C33.042,27.586,32.599,26.857,32.599,25.896z
c-0.384,0.318-0.834,0.558-1.351,0.72c-0.517,0.162-1.071,0.247-1.663,0.247c-0.265,0-0.55-0.032-0.854-0.092
c-0.302-0.058-0.601-0.147-0.896-0.267c-0.503,0.326-0.753,0.7-0.753,1.131c0,0.397,0.185,0.687,0.553,0.864
c0.369,0.177,0.901,0.267,1.596,0.267h2.303c1.42,0,2.47,0.203,3.159,0.606c0.687,0.406,1.029,1.076,1.029,2.007
c0,0.518-0.145,1.004-0.431,1.461c-0.29,0.459-0.699,0.86-1.23,1.209c-0.531,0.348-1.174,0.621-1.929,0.819
c-0.751,0.199-1.594,0.299-2.525,0.299c-1.537,0-2.747-0.25-3.633-0.743C33.042,27.586,32.599,26.857,32.599,25.896z
M34.458,25.633c0,0.516,0.285,0.932,0.854,1.25s1.393,0.477,2.47,0.477c0.577,0,1.097-0.055,1.562-0.166
c0.465-0.11,0.864-0.258,1.197-0.442s0.585-0.396,0.764-0.631c0.177-0.234,0.266-0.486,0.266-0.754
c0-0.474-0.196-0.785-0.587-0.941c-0.392-0.153-0.979-0.231-1.762-0.231h-1.905c-0.34,0-0.641-0.012-0.907-0.033
c-0.268-0.021-0.519-0.07-0.754-0.145c-0.444,0.25-0.753,0.51-0.932,0.776C34.549,25.057,34.458,25.334,34.458,25.633z
c0.465-0.109,0.864-0.258,1.197-0.441s0.585-0.396,0.764-0.631c0.177-0.234,0.266-0.486,0.266-0.754
c0-0.475-0.196-0.785-0.587-0.941c-0.392-0.152-0.979-0.23-1.762-0.23h-1.905c-0.34,0-0.641-0.012-0.907-0.033
c-0.268-0.021-0.519-0.07-0.754-0.145c-0.444,0.25-0.753,0.51-0.932,0.775C34.549,25.057,34.458,25.334,34.458,25.633z
M37.539,19.095c0.621,0,1.152-0.206,1.597-0.62c0.442-0.414,0.665-0.989,0.665-1.727c0-0.71-0.223-1.279-0.665-1.707
c-0.445-0.428-0.976-0.643-1.597-0.643s-1.152,0.215-1.595,0.643c-0.442,0.428-0.665,0.997-0.665,1.707
c0,0.738,0.223,1.313,0.665,1.727C36.386,18.889,36.918,19.095,37.539,19.095z"/>
</g>
<path display="inline" fill="#231916" d="M15.983,24.24h-1.857l-0.183-1.854h-0.092c-0.551,0.642-1.151,1.154-1.8,1.548
c-0.649,0.387-1.401,0.582-2.258,0.582c-1.329,0-2.3-0.384-2.91-1.156c-0.612-0.771-0.917-1.898-0.917-3.381V14.35L3,14.293
c-0.649,0.387-1.401,0.582-2.258,0.582c-1.329,0-2.3-0.384-2.91-1.156c-0.612-0.771-0.917-1.897-0.917-3.38V14.35L3,14.293
l5.258-2.023l-0.023,1.529v5.882c0,0.994,0.176,1.724,0.528,2.189c0.351,0.467,0.954,0.7,1.811,0.7
c0.581,0,1.111-0.143,1.593-0.426c0.48-0.283,0.998-0.762,1.547-1.433v-7.678h2.269V24.24z"/>
c0.581,0,1.111-0.144,1.593-0.426c0.48-0.283,0.998-0.763,1.547-1.434v-7.678h2.269V24.24z"/>
<path display="inline" fill="#231916" d="M19.742,13.033h1.856l0.184,1.812h0.091c0.565-0.582,1.176-1.075,1.834-1.479
c0.655-0.405,1.42-0.607,2.292-0.607c1.313,0,2.278,0.39,2.888,1.168c0.611,0.778,0.917,1.903,0.917,3.37v6.942h-2.271v-6.646
c0-0.976-0.174-1.7-0.525-2.165c-0.352-0.467-0.955-0.701-1.811-0.701c-0.597,0-1.131,0.151-1.605,0.447
@ -36,28 +36,28 @@
c0.533-0.511,1.146-0.902,1.834-1.17c0.687-0.267,1.398-0.4,2.13-0.4c0.826,0,1.555,0.13,2.19,0.39
c0.633,0.26,1.172,0.621,1.615,1.086c0.443,0.468,0.779,1.025,1.01,1.676c0.229,0.648,0.344,1.362,0.344,2.142
c0,0.229-0.012,0.447-0.035,0.652c-0.022,0.208-0.049,0.38-0.08,0.516h-8.436c0.077,1.1,0.485,1.96,1.229,2.58
c0.739,0.619,1.675,0.928,2.807,0.928c0.611,0,1.18-0.084,1.708-0.252c0.527-0.166,1.042-0.403,1.546-0.709l0.802,1.443
c-0.578,0.367-1.23,0.676-1.959,0.928c-0.726,0.252-1.525,0.377-2.396,0.377c-0.842,0-1.631-0.131-2.371-0.399
c-0.742-0.267-1.387-0.65-1.938-1.156c-0.551-0.504-0.982-1.119-1.296-1.846C55.286,20.386,55.129,19.566,55.129,18.65z
c0.739,0.619,1.675,0.928,2.807,0.928c0.611,0,1.18-0.084,1.708-0.252c0.527-0.166,1.042-0.402,1.546-0.709l0.802,1.443
c-0.578,0.367-1.23,0.676-1.959,0.928c-0.726,0.252-1.525,0.377-2.396,0.377c-0.842,0-1.631-0.131-2.371-0.398
c-0.742-0.268-1.387-0.65-1.938-1.156c-0.551-0.504-0.982-1.119-1.296-1.846C55.286,20.386,55.129,19.566,55.129,18.65z
M63.909,17.665c0-1.01-0.263-1.781-0.779-2.317c-0.521-0.534-1.262-0.8-2.225-0.8c-0.84,0-1.587,0.266-2.245,0.8
c-0.658,0.536-1.062,1.307-1.214,2.317H63.909z"/>
<path display="inline" fill="#231916" d="M73.475,12.679l0.008,11.793h-2.27v-8.611h-4.256L73.475,12.679z M72.152,10.368
<path display="inline" fill="#231916" d="M73.475,12.679l0.008,11.793h-2.27v-8.612h-4.256L73.475,12.679z M72.152,10.368
c-0.488,0-0.894-0.146-1.215-0.435c-0.32-0.291-0.48-0.681-0.48-1.17c0-0.489,0.16-0.882,0.48-1.18
c0.321-0.298,0.727-0.446,1.215-0.446s0.896,0.148,1.215,0.446c0.32,0.298,0.482,0.691,0.482,1.18c0,0.489-0.162,0.879-0.482,1.17
C73.049,10.221,72.641,10.368,72.152,10.368z"/>
c0.321-0.298,0.727-0.446,1.215-0.446c0.488,0,0.896,0.148,1.215,0.446c0.32,0.298,0.482,0.691,0.482,1.18
c0,0.489-0.162,0.879-0.482,1.17C73.049,10.221,72.641,10.368,72.152,10.368z"/>
<path display="inline" fill="#231916" d="M76.629,18.878c0-0.932,0.168-1.766,0.504-2.497c0.336-0.735,0.795-1.353,1.375-1.859
c0.582-0.503,1.25-0.884,2.008-1.145c0.756-0.26,1.562-0.389,2.416-0.389c0.918,0,1.719,0.156,2.406,0.469
c0.689,0.312,1.262,0.693,1.721,1.135l-1.1,1.443c-0.443-0.367-0.904-0.653-1.379-0.86c-0.471-0.206-0.984-0.309-1.535-0.309
c-0.594,0-1.143,0.095-1.65,0.287c-0.502,0.19-0.936,0.462-1.293,0.813c-0.358,0.352-0.639,0.776-0.838,1.272
c-0.594,0-1.143,0.095-1.65,0.287c-0.502,0.19-0.936,0.462-1.293,0.813c-0.357,0.352-0.639,0.776-0.838,1.272
c-0.197,0.495-0.297,1.042-0.297,1.638c0,0.595,0.096,1.144,0.287,1.64c0.189,0.496,0.465,0.92,0.824,1.273
c0.359,0.35,0.785,0.623,1.273,0.812c0.487,0.188,1.028,0.284,1.627,0.284c0.686,0,1.307-0.129,1.856-0.387
c0.549-0.263,1.043-0.574,1.488-0.94l0.965,1.467c-0.644,0.551-1.347,0.975-2.111,1.272c-0.764,0.298-1.559,0.445-2.383,0.445
c-0.871,0-1.687-0.129-2.44-0.39c-0.756-0.26-1.41-0.643-1.961-1.146c-0.55-0.506-0.98-1.121-1.293-1.847
c0.359,0.35,0.785,0.623,1.273,0.812c0.486,0.188,1.027,0.283,1.627,0.283c0.686,0,1.307-0.129,1.855-0.387
c0.549-0.264,1.043-0.574,1.488-0.939l0.965,1.467c-0.645,0.551-1.348,0.975-2.111,1.271c-0.764,0.298-1.559,0.445-2.383,0.445
c-0.871,0-1.688-0.129-2.439-0.391c-0.756-0.26-1.41-0.643-1.961-1.146c-0.55-0.506-0.98-1.121-1.293-1.847
C76.785,20.641,76.629,19.811,76.629,18.878z"/>
<path display="inline" fill="#231916" d="M87.4,8.285l4.752-2.356v6.601l-0.139,2.521c0.565-0.58,1.178-1.07,1.836-1.467
c0.655-0.396,1.42-0.595,2.293-0.595c1.312,0,2.274,0.389,2.885,1.168c0.611,0.78,0.918,1.903,0.918,3.371v6.945h-2.271v-6.648
c0-0.978-0.176-1.7-0.526-2.165c-0.353-0.466-0.953-0.7-1.812-0.7c-0.596,0-1.131,0.149-1.604,0.448
c-0.475,0.298-1.002,0.745-1.582,1.342v7.726h-2.27L89.836,8.189L87.4,8.285z"/>
<path display="inline" fill="#231916" d="M87.4,8.285l4.752-2.356v6.601l-0.139,2.521c0.564-0.58,1.178-1.07,1.836-1.467
c0.654-0.396,1.42-0.595,2.293-0.595c1.312,0,2.273,0.389,2.885,1.168c0.611,0.78,0.918,1.903,0.918,3.371v6.945h-2.271v-6.647
c0-0.978-0.176-1.7-0.525-2.165c-0.354-0.466-0.953-0.7-1.812-0.7c-0.596,0-1.131,0.149-1.604,0.448
c-0.476,0.298-1.002,0.745-1.582,1.342v7.727H89.88L89.836,8.189L87.4,8.285z"/>
<g display="inline">
<polygon fill="#010000" points="100.371,3.218 99.607,4.815 109.109,4.855 109.873,3.228 "/>
<polygon fill="#010000" points="99.619,6.703 98.83,8.378 108.346,8.397 109.109,6.74 "/>
@ -65,117 +65,120 @@
</g>
<g display="inline">
<path fill="#231916" d="M49.446,20.596c0,0.754,0.188,1.297,0.566,1.631c0.376,0.33,0.866,0.498,1.472,0.498
c0.295,0,0.599-0.037,0.909-0.111s0.658-0.193,1.042-0.355l0.532,1.643c-0.252,0.086-0.492,0.166-0.721,0.242
c-0.231,0.074-0.461,0.135-0.698,0.187c-0.237,0.055-0.483,0.098-0.741,0.135c-0.26,0.035-0.543,0.058-0.853,0.058
c-1.212,0-2.131-0.349-2.76-1.043c-0.627-0.693-0.941-1.697-0.941-3.014V5.711h-3.544l5.737-4.043"/>
c0.295,0,0.599-0.037,0.909-0.11c0.31-0.074,0.658-0.193,1.042-0.355l0.532,1.644c-0.252,0.086-0.492,0.166-0.721,0.242
c-0.231,0.073-0.461,0.135-0.698,0.187c-0.237,0.055-0.483,0.099-0.741,0.135c-0.26,0.035-0.543,0.058-0.853,0.058
c-1.212,0-2.131-0.349-2.76-1.043c-0.627-0.692-0.941-1.696-0.941-3.014V5.711h-3.544l5.737-4.043"/>
</g>
</g>
<path fill="#29427A" d="M12.927,23.013v-1.46h-0.045c-0.359,0.569-0.873,1.007-1.539,1.313s-1.374,0.461-2.122,0.461
c-0.839,0-1.587-0.165-2.246-0.494c-0.659-0.329-1.216-0.768-1.673-1.313c-0.457-0.547-0.805-1.18-1.044-1.898
c-0.24-0.718-0.359-1.467-0.359-2.245s0.124-1.523,0.371-2.234s0.599-1.337,1.055-1.875c0.457-0.539,1.011-0.966,1.662-1.28
<path fill="#29427A" d="M12.927,23.014v-1.461h-0.045c-0.359,0.569-0.873,1.008-1.539,1.313s-1.374,0.461-2.122,0.461
c-0.839,0-1.587-0.165-2.246-0.494c-0.659-0.329-1.216-0.769-1.673-1.313c-0.457-0.547-0.805-1.18-1.044-1.897
c-0.24-0.718-0.359-1.467-0.359-2.245c0-0.778,0.124-1.523,0.371-2.234s0.599-1.337,1.055-1.875c0.457-0.539,1.011-0.966,1.662-1.28
c0.651-0.314,1.381-0.472,2.189-0.472c0.823,0,1.52,0.157,2.089,0.472c0.568,0.314,1.011,0.659,1.325,1.033h0.045V6.035h3.683
v16.978H12.927z M12.792,17.398c0-0.359-0.064-0.711-0.191-1.056c-0.128-0.345-0.307-0.651-0.54-0.921
v16.979H12.927z M12.792,17.398c0-0.359-0.064-0.711-0.191-1.056c-0.128-0.345-0.307-0.651-0.54-0.921
c-0.232-0.27-0.513-0.486-0.842-0.651c-0.329-0.164-0.704-0.247-1.123-0.247c-0.434,0-0.816,0.083-1.145,0.247
c-0.33,0.165-0.606,0.379-0.831,0.64c-0.225,0.263-0.393,0.565-0.505,0.91s-0.168,0.696-0.168,1.056
c0,0.358,0.056,0.715,0.168,1.066s0.281,0.663,0.505,0.932c0.225,0.27,0.501,0.487,0.831,0.651c0.329,0.165,0.711,0.247,1.145,0.247
c0.419,0,0.793-0.082,1.123-0.247c0.33-0.164,0.61-0.382,0.842-0.651c0.232-0.269,0.412-0.575,0.54-0.921
c-0.33,0.165-0.606,0.379-0.831,0.64c-0.225,0.263-0.393,0.565-0.505,0.91c-0.112,0.345-0.168,0.696-0.168,1.056
c0,0.358,0.056,0.715,0.168,1.066c0.112,0.351,0.281,0.663,0.505,0.932c0.225,0.27,0.501,0.487,0.831,0.651
c0.329,0.165,0.711,0.247,1.145,0.247c0.419,0,0.793-0.082,1.123-0.247c0.33-0.164,0.61-0.382,0.842-0.651s0.412-0.575,0.54-0.921
C12.728,18.109,12.792,17.758,12.792,17.398z"/>
<path fill="#29427A" d="M19.08,13.355c0.659-0.628,1.426-1.1,2.302-1.415s1.771-0.472,2.684-0.472c0.944,0,1.741,0.116,2.392,0.348
c0.651,0.232,1.179,0.591,1.583,1.078c0.404,0.486,0.7,1.101,0.887,1.842c0.187,0.74,0.281,1.62,0.281,2.639v5.637H25.84v-1.19
h-0.067c-0.285,0.464-0.715,0.823-1.291,1.078c-0.577,0.254-1.202,0.382-1.875,0.382c-0.449,0-0.913-0.061-1.393-0.18
c-0.479-0.12-0.917-0.314-1.313-0.584c-0.397-0.27-0.723-0.629-0.977-1.078c-0.255-0.449-0.382-1.003-0.382-1.662
c0-0.809,0.221-1.459,0.663-1.953s1.011-0.876,1.707-1.146c0.696-0.27,1.471-0.449,2.324-0.539s1.685-0.135,2.493-0.135v-0.18
c0-0.554-0.195-0.962-0.584-1.225c-0.389-0.262-0.868-0.393-1.437-0.393c-0.524,0-1.03,0.112-1.516,0.337
c-0.487,0.225-0.902,0.494-1.247,0.809L19.08,13.355z M25.84,18.139h-0.472c-0.404,0-0.812,0.02-1.224,0.057
c-0.412,0.037-0.779,0.108-1.101,0.213c-0.322,0.105-0.588,0.259-0.797,0.461c-0.21,0.202-0.314,0.468-0.314,0.797
c0,0.21,0.049,0.39,0.146,0.539c0.097,0.15,0.221,0.27,0.371,0.359c0.149,0.09,0.322,0.153,0.517,0.191
c0.194,0.037,0.382,0.056,0.562,0.056c0.749,0,1.321-0.205,1.718-0.617c0.396-0.412,0.595-0.97,0.595-1.673V18.139z"/>
s1.179,0.591,1.583,1.078c0.404,0.486,0.7,1.101,0.887,1.842c0.187,0.74,0.281,1.62,0.281,2.639v5.637H25.84v-1.189h-0.067
c-0.285,0.464-0.715,0.822-1.291,1.078c-0.577,0.254-1.202,0.382-1.875,0.382c-0.449,0-0.913-0.062-1.393-0.181
c-0.479-0.119-0.917-0.313-1.313-0.584c-0.397-0.27-0.723-0.629-0.977-1.078c-0.255-0.448-0.382-1.002-0.382-1.662
c0-0.809,0.221-1.459,0.663-1.953c0.442-0.494,1.011-0.876,1.707-1.146c0.696-0.27,1.471-0.449,2.324-0.539
c0.853-0.09,1.685-0.135,2.493-0.135v-0.18c0-0.554-0.195-0.962-0.584-1.225c-0.389-0.262-0.868-0.393-1.437-0.393
c-0.524,0-1.03,0.112-1.516,0.337c-0.487,0.225-0.902,0.494-1.247,0.809L19.08,13.355z M25.84,18.139h-0.472
c-0.404,0-0.812,0.02-1.224,0.057c-0.412,0.037-0.779,0.108-1.101,0.213c-0.322,0.105-0.588,0.259-0.797,0.461
c-0.21,0.202-0.314,0.468-0.314,0.797c0,0.21,0.049,0.39,0.146,0.539c0.097,0.15,0.221,0.27,0.371,0.358
c0.149,0.091,0.322,0.153,0.517,0.191c0.194,0.037,0.382,0.057,0.562,0.057c0.749,0,1.321-0.205,1.718-0.618
c0.396-0.412,0.595-0.97,0.595-1.673L25.84,18.139L25.84,18.139z"/>
<path fill="#29427A" d="M36.067,14.568v4.283c0,0.526,0.101,0.921,0.303,1.184c0.202,0.264,0.565,0.395,1.089,0.395
c0.18,0,0.371-0.015,0.573-0.045c0.202-0.029,0.371-0.074,0.505-0.135l0.045,2.695c-0.255,0.09-0.577,0.169-0.966,0.235
c-0.389,0.067-0.779,0.102-1.168,0.102c-0.749,0-1.377-0.094-1.886-0.281c-0.509-0.188-0.917-0.458-1.224-0.811
c-0.307-0.354-0.528-0.773-0.662-1.261c-0.135-0.488-0.202-1.032-0.202-1.633v-4.729h-1.797v-2.74h1.774V8.887h3.616v2.942h2.627
v2.74H36.067z"/>
c0.18,0,0.371-0.015,0.573-0.045c0.202-0.029,0.371-0.074,0.505-0.135l0.045,2.695c-0.255,0.09-0.577,0.169-0.966,0.234
c-0.389,0.067-0.779,0.103-1.168,0.103c-0.749,0-1.377-0.095-1.886-0.281c-0.509-0.188-0.917-0.458-1.224-0.812
s-0.528-0.772-0.662-1.26c-0.135-0.489-0.202-1.033-0.202-1.634v-4.729h-1.797v-2.74h1.774v-2.94h3.616v2.942h2.627v2.74
L36.067,14.568L36.067,14.568z"/>
<path fill="#29427A" d="M40.957,13.355c0.659-0.628,1.426-1.1,2.302-1.415s1.771-0.472,2.684-0.472c0.943,0,1.741,0.116,2.392,0.348
c0.651,0.232,1.179,0.591,1.583,1.078c0.404,0.486,0.7,1.101,0.887,1.842c0.188,0.74,0.281,1.62,0.281,2.639v5.637h-3.369v-1.19
h-0.067c-0.285,0.464-0.715,0.823-1.291,1.078c-0.577,0.254-1.202,0.382-1.875,0.382c-0.449,0-0.913-0.061-1.392-0.18
c-0.479-0.12-0.917-0.314-1.314-0.584c-0.397-0.27-0.723-0.629-0.977-1.078s-0.382-1.003-0.382-1.662
c0-0.809,0.221-1.459,0.663-1.953s1.011-0.876,1.707-1.146s1.471-0.449,2.324-0.539s1.685-0.135,2.493-0.135v-0.18
c0-0.554-0.195-0.962-0.584-1.225c-0.389-0.262-0.868-0.393-1.437-0.393c-0.524,0-1.03,0.112-1.516,0.337s-0.902,0.494-1.247,0.809
L40.957,13.355z M47.717,18.139h-0.471c-0.404,0-0.812,0.02-1.224,0.057c-0.412,0.037-0.779,0.108-1.101,0.213
c-0.322,0.105-0.587,0.259-0.797,0.461c-0.209,0.202-0.314,0.468-0.314,0.797c0,0.21,0.049,0.39,0.146,0.539
c0.097,0.15,0.22,0.27,0.37,0.359c0.149,0.09,0.322,0.153,0.517,0.191c0.194,0.037,0.382,0.056,0.562,0.056
c0.749,0,1.321-0.205,1.718-0.617c0.396-0.412,0.595-0.97,0.595-1.673V18.139z"/>
s1.179,0.591,1.583,1.078c0.404,0.486,0.7,1.101,0.887,1.842c0.188,0.74,0.281,1.62,0.281,2.639v5.637h-3.369v-1.189H47.65
c-0.285,0.464-0.715,0.822-1.291,1.078c-0.577,0.254-1.202,0.382-1.875,0.382c-0.449,0-0.913-0.062-1.392-0.181
s-0.917-0.313-1.314-0.584c-0.397-0.27-0.723-0.629-0.977-1.078c-0.254-0.448-0.382-1.002-0.382-1.662
c0-0.809,0.221-1.459,0.663-1.953c0.442-0.494,1.011-0.876,1.707-1.146c0.696-0.27,1.471-0.449,2.324-0.539
c0.853-0.09,1.685-0.135,2.493-0.135v-0.18c0-0.554-0.195-0.962-0.584-1.225c-0.389-0.262-0.868-0.393-1.437-0.393
c-0.524,0-1.03,0.112-1.516,0.337c-0.486,0.225-0.902,0.494-1.247,0.809L40.957,13.355z M47.717,18.139h-0.471
c-0.404,0-0.812,0.02-1.224,0.057c-0.412,0.037-0.779,0.108-1.101,0.213c-0.322,0.105-0.587,0.259-0.797,0.461
c-0.209,0.202-0.314,0.468-0.314,0.797c0,0.21,0.049,0.39,0.146,0.539c0.097,0.15,0.22,0.27,0.37,0.358
c0.149,0.091,0.322,0.153,0.517,0.191c0.194,0.037,0.382,0.057,0.562,0.057c0.749,0,1.321-0.205,1.718-0.618
c0.396-0.412,0.595-0.97,0.595-1.673L47.717,18.139L47.717,18.139z"/>
<path fill="#5A74AF" d="M61.874,15.197c-0.375-0.389-0.768-0.685-1.179-0.887c-0.412-0.202-0.902-0.304-1.471-0.304
c-0.554,0-1.037,0.102-1.449,0.304c-0.412,0.202-0.756,0.479-1.033,0.831s-0.487,0.756-0.629,1.212
c-0.142,0.457-0.213,0.933-0.213,1.427s0.082,0.962,0.247,1.403c0.165,0.441,0.396,0.827,0.696,1.156
c0.3,0.33,0.659,0.588,1.078,0.775c0.419,0.188,0.891,0.28,1.415,0.28c0.568,0,1.055-0.101,1.459-0.303s0.778-0.498,1.123-0.888
l1.438,1.438c-0.524,0.584-1.134,1.003-1.831,1.258c-0.696,0.254-1.434,0.382-2.212,0.382c-0.823,0-1.576-0.135-2.257-0.404
s-1.269-0.647-1.763-1.135c-0.494-0.485-0.876-1.07-1.146-1.751c-0.27-0.682-0.404-1.434-0.404-2.258
c0-0.822,0.135-1.579,0.404-2.268s0.647-1.28,1.134-1.774c0.486-0.494,1.07-0.879,1.751-1.156s1.441-0.416,2.279-0.416
c-0.554,0-1.037,0.102-1.449,0.304s-0.756,0.479-1.033,0.831c-0.277,0.352-0.487,0.756-0.629,1.212
C55.971,16.81,55.9,17.286,55.9,17.78c0,0.494,0.082,0.962,0.247,1.403s0.396,0.827,0.696,1.156c0.3,0.33,0.659,0.588,1.078,0.775
s0.891,0.28,1.415,0.28c0.568,0,1.055-0.102,1.459-0.304c0.404-0.202,0.778-0.498,1.123-0.888l1.438,1.438
c-0.524,0.584-1.134,1.004-1.831,1.258c-0.696,0.254-1.434,0.383-2.212,0.383c-0.823,0-1.576-0.135-2.257-0.404
c-0.681-0.27-1.269-0.646-1.763-1.135c-0.494-0.485-0.876-1.07-1.146-1.751c-0.27-0.682-0.404-1.434-0.404-2.258
c0-0.822,0.135-1.579,0.404-2.268s0.647-1.28,1.134-1.774c0.486-0.494,1.07-0.879,1.751-1.156c0.681-0.277,1.441-0.416,2.279-0.416
c0.779,0,1.523,0.139,2.235,0.416c0.711,0.277,1.329,0.7,1.853,1.269L61.874,15.197z"/>
<path fill="#5A74AF" d="M66.612,18.432c0,0.464,0.101,0.887,0.304,1.269c0.201,0.382,0.467,0.707,0.797,0.977
c0.329,0.27,0.711,0.479,1.145,0.629c0.435,0.15,0.884,0.225,1.348,0.225c0.629,0,1.176-0.146,1.64-0.438
c0.464-0.292,0.891-0.678,1.28-1.157l1.527,1.168c-1.123,1.452-2.695,2.179-4.717,2.179c-0.838,0-1.598-0.143-2.279-0.427
s-1.258-0.678-1.729-1.179c-0.473-0.502-0.836-1.093-1.09-1.774s-0.382-1.418-0.382-2.212s0.139-1.531,0.416-2.213
c0.276-0.681,0.658-1.271,1.146-1.773c0.486-0.501,1.066-0.895,1.74-1.18c0.674-0.284,1.406-0.426,2.201-0.426
c0.942,0,1.74,0.165,2.391,0.494c0.652,0.33,1.187,0.76,1.605,1.292c0.42,0.531,0.723,1.13,0.91,1.796
c0.188,0.667,0.281,1.345,0.281,2.033v0.719H66.612z M72.99,16.814c-0.016-0.449-0.086-0.861-0.213-1.235
c-0.128-0.374-0.318-0.7-0.573-0.978c-0.255-0.276-0.573-0.493-0.954-0.65c-0.383-0.157-0.828-0.236-1.337-0.236
c-0.493,0-0.946,0.094-1.358,0.281s-0.76,0.43-1.044,0.729s-0.505,0.633-0.663,0.999c-0.156,0.367-0.235,0.73-0.235,1.09H72.99z"/>
c0.329,0.271,0.711,0.479,1.145,0.629c0.435,0.15,0.884,0.226,1.348,0.226c0.629,0,1.176-0.146,1.64-0.438
c0.464-0.292,0.891-0.678,1.28-1.157l1.527,1.168c-1.123,1.451-2.695,2.179-4.717,2.179c-0.838,0-1.598-0.144-2.279-0.427
c-0.681-0.284-1.258-0.678-1.729-1.18c-0.473-0.502-0.836-1.093-1.09-1.774c-0.254-0.681-0.382-1.418-0.382-2.212
s0.139-1.531,0.416-2.213c0.276-0.681,0.658-1.271,1.146-1.773c0.486-0.501,1.066-0.895,1.74-1.18
c0.674-0.284,1.406-0.426,2.201-0.426c0.942,0,1.74,0.165,2.391,0.494c0.652,0.33,1.187,0.76,1.605,1.292
c0.42,0.531,0.723,1.13,0.91,1.796c0.188,0.667,0.281,1.345,0.281,2.033v0.719h-8.534V18.432z M72.99,16.814
c-0.016-0.449-0.086-0.861-0.213-1.235c-0.128-0.374-0.318-0.7-0.573-0.978c-0.255-0.276-0.573-0.493-0.954-0.65
c-0.383-0.157-0.828-0.236-1.337-0.236c-0.493,0-0.946,0.094-1.358,0.281c-0.412,0.187-0.76,0.43-1.044,0.729
c-0.284,0.299-0.505,0.633-0.663,0.999c-0.156,0.367-0.235,0.73-0.235,1.09H72.99z"/>
<path fill="#5A74AF" d="M77.572,12.368h2.021v1.639h0.046c0.254-0.568,0.695-1.029,1.324-1.381s1.355-0.528,2.178-0.528
c0.51,0,1,0.079,1.472,0.236s0.883,0.4,1.235,0.73c0.352,0.329,0.633,0.752,0.842,1.269c0.209,0.516,0.314,1.126,0.314,1.83v6.85
h-2.021v-6.288c0-0.494-0.066-0.917-0.201-1.269c-0.135-0.353-0.314-0.637-0.539-0.854c-0.225-0.216-0.483-0.373-0.775-0.471
s-0.596-0.146-0.91-0.146c-0.418,0-0.808,0.067-1.167,0.202s-0.674,0.349-0.943,0.641c-0.27,0.291-0.479,0.662-0.629,1.111
s-0.225,0.98-0.225,1.595v5.479h-2.021V12.368z"/>
<path fill="#5A74AF" d="M95.762,14.119h-2.896v4.829c0,0.299,0.008,0.595,0.022,0.887s0.071,0.554,0.169,0.786
c0.097,0.232,0.246,0.419,0.449,0.561c0.201,0.144,0.497,0.214,0.887,0.214c0.239,0,0.486-0.022,0.741-0.067
s0.486-0.127,0.696-0.247v1.842c-0.24,0.135-0.551,0.229-0.932,0.28c-0.383,0.053-0.678,0.079-0.888,0.079
c-0.778,0-1.382-0.109-1.808-0.325c-0.427-0.218-0.741-0.498-0.943-0.843s-0.322-0.73-0.359-1.156
c-0.037-0.427-0.057-0.857-0.057-1.292v-5.547h-2.336v-1.751h2.336V9.381h2.021v2.987h2.896V14.119z"/>
<path fill="#5A74AF" d="M99.895,18.432c0,0.464,0.102,0.887,0.304,1.269s0.467,0.707,0.797,0.977
c0.329,0.27,0.711,0.479,1.146,0.629c0.434,0.15,0.883,0.225,1.348,0.225c0.628,0,1.175-0.146,1.639-0.438
c0.464-0.292,0.891-0.678,1.28-1.157l1.527,1.168c-1.123,1.452-2.695,2.179-4.716,2.179c-0.839,0-1.599-0.143-2.28-0.427
c-0.681-0.284-1.257-0.678-1.729-1.179c-0.471-0.502-0.834-1.093-1.088-1.774c-0.256-0.682-0.383-1.418-0.383-2.212
s0.139-1.531,0.416-2.213c0.276-0.681,0.658-1.271,1.145-1.773c0.487-0.501,1.067-0.895,1.741-1.18
c0.674-0.284,1.407-0.426,2.201-0.426c0.942,0,1.74,0.165,2.392,0.494c0.65,0.33,1.186,0.76,1.605,1.292
c0.419,0.531,0.723,1.13,0.909,1.796c0.188,0.667,0.281,1.345,0.281,2.033v0.719H99.895z M106.272,16.814
c-0.016-0.449-0.086-0.861-0.213-1.235c-0.128-0.374-0.318-0.7-0.573-0.978c-0.255-0.276-0.572-0.493-0.954-0.65
s-0.828-0.236-1.337-0.236c-0.493,0-0.946,0.094-1.358,0.281c-0.411,0.188-0.76,0.43-1.044,0.729
c-0.285,0.3-0.506,0.633-0.663,0.999c-0.157,0.367-0.235,0.73-0.235,1.09H106.272z"/>
<path fill="#5A74AF" d="M110.854,12.368h2.021v1.639h0.045c0.135-0.284,0.314-0.542,0.539-0.774
c0.225-0.232,0.475-0.431,0.752-0.595s0.58-0.295,0.909-0.393c0.33-0.097,0.659-0.146,0.988-0.146c0.33,0,0.629,0.045,0.899,0.135
l-0.091,2.178c-0.165-0.045-0.329-0.082-0.494-0.112c-0.165-0.029-0.329-0.045-0.493-0.045c-0.988,0-1.745,0.277-2.269,0.831
c-0.524,0.554-0.786,1.415-0.786,2.583v5.345h-2.021V12.368z"/>
<path fill="#5E6060" d="M120.156,5.513h1.368v11.493h-1.368V5.513z"/>
<path fill="#5E6060" d="M123.485,7.215c0-0.274,0.099-0.509,0.297-0.707c0.197-0.198,0.433-0.296,0.707-0.296
c0.273,0,0.509,0.099,0.707,0.296c0.197,0.198,0.296,0.433,0.296,0.707c0,0.273-0.099,0.509-0.296,0.707
c-0.198,0.198-0.434,0.297-0.707,0.297c-0.274,0-0.51-0.099-0.707-0.297C123.584,7.725,123.485,7.489,123.485,7.215z M123.805,9.799
h1.368v7.207h-1.368V9.799z"/>
<path fill="#5E6060" d="M134.567,16.944c0,0.548-0.094,1.047-0.281,1.498c-0.188,0.45-0.453,0.841-0.798,1.17
s-0.76,0.586-1.246,0.768c-0.487,0.183-1.024,0.273-1.611,0.273c-0.689,0-1.32-0.096-1.894-0.288
c-0.572-0.193-1.117-0.527-1.634-1.003l0.927-1.156c0.355,0.386,0.74,0.677,1.156,0.874c0.415,0.198,0.887,0.297,1.413,0.297
c0.507,0,0.928-0.074,1.262-0.221c0.335-0.146,0.601-0.337,0.799-0.569c0.197-0.234,0.337-0.5,0.418-0.799s0.121-0.601,0.121-0.904
v-1.064h-0.045c-0.264,0.436-0.621,0.758-1.072,0.966s-0.925,0.312-1.421,0.312c-0.527,0-1.017-0.094-1.468-0.281
s-0.838-0.446-1.163-0.775c-0.324-0.329-0.577-0.72-0.76-1.171c-0.183-0.45-0.273-0.939-0.273-1.467
c0-0.527,0.086-1.021,0.259-1.482c0.172-0.461,0.418-0.864,0.737-1.208c0.319-0.345,0.704-0.613,1.155-0.806
c0.45-0.192,0.955-0.289,1.513-0.289c0.486,0,0.96,0.106,1.421,0.319s0.823,0.512,1.087,0.896h0.03V9.799h1.368V16.944z
M130.828,10.894c-0.365,0-0.694,0.063-0.988,0.19c-0.294,0.126-0.542,0.299-0.745,0.517c-0.202,0.218-0.359,0.481-0.471,0.791
c-0.112,0.309-0.167,0.646-0.167,1.011c0,0.729,0.213,1.315,0.638,1.756c0.426,0.44,1.004,0.661,1.733,0.661
s1.307-0.221,1.733-0.661c0.426-0.44,0.638-1.026,0.638-1.756c0-0.365-0.056-0.702-0.167-1.011s-0.269-0.572-0.471-0.791
c-0.203-0.218-0.451-0.39-0.745-0.517C131.522,10.958,131.193,10.894,130.828,10.894z"/>
<path fill="#5E6060" d="M136.29,5.513h1.368v5.397h0.03c0.172-0.385,0.471-0.697,0.896-0.935s0.917-0.357,1.475-0.357
c0.345,0,0.677,0.053,0.996,0.16s0.598,0.271,0.836,0.494c0.238,0.223,0.429,0.509,0.57,0.859s0.213,0.763,0.213,1.239v4.637h-1.368
v-4.257c0-0.334-0.046-0.62-0.137-0.858c-0.092-0.238-0.213-0.431-0.365-0.578c-0.152-0.147-0.327-0.253-0.524-0.32
c-0.198-0.065-0.403-0.099-0.616-0.099c-0.283,0-0.547,0.046-0.79,0.137c-0.243,0.091-0.456,0.236-0.639,0.434
s-0.324,0.448-0.426,0.752c-0.101,0.304-0.151,0.664-0.151,1.079v3.71h-1.368V5.513z"/>
<path fill="#5E6060" d="M148.604,10.985h-1.961v3.269c0,0.203,0.005,0.402,0.015,0.601c0.01,0.197,0.048,0.375,0.114,0.532
c0.065,0.157,0.167,0.283,0.304,0.38s0.337,0.145,0.601,0.145c0.162,0,0.329-0.016,0.502-0.046c0.172-0.03,0.329-0.086,0.471-0.167
v1.246c-0.162,0.092-0.372,0.154-0.631,0.19c-0.258,0.035-0.458,0.053-0.6,0.053c-0.527,0-0.936-0.073-1.224-0.221
c-0.289-0.146-0.502-0.336-0.639-0.569s-0.219-0.494-0.244-0.783c-0.024-0.289-0.037-0.58-0.037-0.874v-3.755h-1.581V9.799h1.581
V7.778h1.368v2.021h1.961V10.985z"/>
<path fill="#95BDE5" d="M142.227,20.314c-0.039,0.215-0.129,0.432-0.129,0.432c-0.024,0.059-0.107,0.25-0.125,0.288
c-0.064,0.138-0.097,0.224-0.17,0.38c-0.084,0.178,0,0-0.136,0.268c-1.126,2.234-4.158,4.755-8.376,4.658
c-3.922-0.09-6.719-1.806-8.072-4.173c-0.103-0.18-0.262-0.42-0.383-0.684c-0.034-0.074-0.242-0.511-0.265-0.575
c-0.116-0.333-0.2-0.368-0.216-0.594c0,0,0.259,0.528,0.779,1.091c1.227,1.325,3.915,3.426,8.156,3.477
c4.143,0.049,6.907-2.123,8.163-3.477C141.972,20.849,142.227,20.314,142.227,20.314z"/>
c0.51,0,1,0.079,1.473,0.236c0.472,0.157,0.883,0.4,1.234,0.73c0.353,0.329,0.633,0.752,0.842,1.269
c0.209,0.516,0.314,1.126,0.314,1.83v6.851h-2.021v-6.289c0-0.494-0.065-0.917-0.2-1.269c-0.136-0.353-0.314-0.637-0.539-0.854
c-0.226-0.216-0.483-0.373-0.775-0.471c-0.292-0.098-0.596-0.146-0.909-0.146c-0.418,0-0.809,0.067-1.168,0.202
c-0.358,0.135-0.674,0.349-0.943,0.641c-0.27,0.291-0.479,0.662-0.629,1.111c-0.149,0.449-0.225,0.98-0.225,1.595v5.479h-2.021
L77.572,12.368L77.572,12.368z"/>
<path fill="#5A74AF" d="M95.762,14.119h-2.896v4.829c0,0.299,0.008,0.595,0.022,0.887c0.014,0.292,0.07,0.554,0.168,0.786
c0.098,0.232,0.246,0.419,0.449,0.561c0.201,0.145,0.497,0.215,0.887,0.215c0.239,0,0.486-0.022,0.741-0.067
s0.486-0.127,0.696-0.247v1.842c-0.24,0.135-0.551,0.229-0.932,0.28c-0.383,0.053-0.678,0.079-0.889,0.079
c-0.777,0-1.382-0.109-1.808-0.325c-0.427-0.218-0.741-0.498-0.943-0.843c-0.202-0.346-0.321-0.73-0.358-1.156
c-0.037-0.427-0.058-0.857-0.058-1.292V14.12h-2.336v-1.751h2.336V9.381h2.021v2.987h2.896v1.751H95.762z"/>
<path fill="#5A74AF" d="M99.895,18.432c0,0.464,0.103,0.887,0.305,1.269c0.201,0.382,0.467,0.707,0.797,0.977
c0.329,0.271,0.711,0.479,1.146,0.629c0.434,0.15,0.883,0.226,1.348,0.226c0.628,0,1.175-0.146,1.639-0.438s0.891-0.678,1.28-1.157
l1.526,1.168c-1.123,1.451-2.694,2.179-4.715,2.179c-0.84,0-1.6-0.144-2.281-0.427c-0.681-0.284-1.256-0.678-1.729-1.18
c-0.471-0.502-0.834-1.093-1.088-1.774c-0.256-0.682-0.383-1.418-0.383-2.212s0.139-1.531,0.416-2.213
c0.275-0.681,0.658-1.271,1.145-1.773c0.487-0.501,1.067-0.895,1.741-1.18c0.674-0.284,1.407-0.426,2.201-0.426
c0.942,0,1.739,0.165,2.392,0.494c0.65,0.33,1.186,0.76,1.605,1.292c0.419,0.531,0.723,1.13,0.908,1.796
c0.188,0.667,0.281,1.345,0.281,2.033v0.719h-8.535V18.432z M106.271,16.814c-0.016-0.449-0.086-0.861-0.213-1.235
s-0.317-0.7-0.572-0.978c-0.256-0.276-0.572-0.493-0.954-0.65c-0.382-0.157-0.828-0.236-1.337-0.236
c-0.493,0-0.946,0.094-1.358,0.281c-0.411,0.188-0.76,0.43-1.044,0.729c-0.285,0.3-0.506,0.633-0.663,0.999
c-0.157,0.367-0.235,0.73-0.235,1.09H106.271z"/>
<path fill="#5A74AF" d="M110.854,12.368h2.021v1.639h0.045c0.135-0.284,0.314-0.542,0.539-0.774s0.475-0.431,0.752-0.595
c0.277-0.164,0.58-0.295,0.909-0.393c0.33-0.097,0.659-0.146,0.987-0.146c0.33,0,0.629,0.045,0.899,0.135l-0.091,2.178
c-0.165-0.045-0.329-0.082-0.494-0.112c-0.165-0.029-0.329-0.045-0.492-0.045c-0.988,0-1.746,0.277-2.27,0.831
c-0.523,0.554-0.786,1.415-0.786,2.583v5.345h-2.021V12.368L110.854,12.368z"/>
<path fill="#5E6060" d="M120.156,5.513h1.367v11.493h-1.367V5.513z"/>
<path fill="#5E6060" d="M123.484,7.215c0-0.274,0.1-0.509,0.298-0.707c0.196-0.198,0.433-0.296,0.706-0.296s0.51,0.099,0.707,0.296
c0.197,0.198,0.297,0.433,0.297,0.707c0,0.273-0.1,0.509-0.297,0.707c-0.197,0.198-0.434,0.297-0.707,0.297s-0.51-0.099-0.706-0.297
C123.584,7.725,123.484,7.489,123.484,7.215z M123.805,9.799h1.368v7.207h-1.368V9.799z"/>
<path fill="#5E6060" d="M134.566,16.944c0,0.548-0.094,1.047-0.28,1.498c-0.188,0.45-0.453,0.841-0.798,1.17
c-0.346,0.329-0.76,0.586-1.246,0.768c-0.487,0.183-1.024,0.272-1.611,0.272c-0.689,0-1.32-0.096-1.895-0.287
c-0.571-0.193-1.116-0.527-1.633-1.003l0.926-1.156c0.355,0.386,0.74,0.677,1.156,0.874c0.416,0.198,0.887,0.297,1.414,0.297
c0.506,0,0.928-0.074,1.262-0.221s0.601-0.337,0.799-0.569c0.197-0.234,0.337-0.5,0.418-0.799s0.121-0.601,0.121-0.904V15.82h-0.045
c-0.264,0.436-0.621,0.758-1.072,0.966s-0.926,0.312-1.421,0.312c-0.527,0-1.017-0.094-1.468-0.281s-0.838-0.446-1.164-0.775
c-0.323-0.329-0.576-0.72-0.76-1.171c-0.183-0.45-0.272-0.939-0.272-1.467c0-0.527,0.086-1.021,0.259-1.482
c0.172-0.461,0.418-0.864,0.737-1.208c0.319-0.345,0.704-0.613,1.155-0.806c0.449-0.192,0.955-0.289,1.513-0.289
c0.485,0,0.96,0.106,1.421,0.319s0.822,0.512,1.087,0.896h0.03V9.799h1.367V16.944L134.566,16.944z M130.828,10.894
c-0.365,0-0.694,0.063-0.988,0.19c-0.294,0.126-0.542,0.299-0.744,0.517c-0.203,0.218-0.359,0.481-0.472,0.791
c-0.112,0.309-0.167,0.646-0.167,1.011c0,0.729,0.213,1.315,0.639,1.756c0.426,0.44,1.004,0.661,1.732,0.661
s1.307-0.221,1.732-0.661c0.426-0.44,0.639-1.026,0.639-1.756c0-0.365-0.057-0.702-0.167-1.011
c-0.111-0.309-0.269-0.572-0.472-0.791c-0.203-0.218-0.451-0.39-0.744-0.517C131.521,10.958,131.193,10.894,130.828,10.894z"/>
<path fill="#5E6060" d="M136.29,5.513h1.368v5.397h0.029c0.172-0.385,0.472-0.697,0.896-0.935c0.425-0.238,0.917-0.357,1.475-0.357
c0.346,0,0.678,0.053,0.996,0.16c0.319,0.107,0.598,0.271,0.836,0.494s0.43,0.509,0.57,0.859c0.141,0.35,0.213,0.763,0.213,1.239
v4.637h-1.367V12.75c0-0.334-0.047-0.62-0.138-0.858c-0.092-0.238-0.213-0.431-0.364-0.578c-0.152-0.147-0.328-0.253-0.525-0.32
c-0.197-0.065-0.402-0.099-0.615-0.099c-0.283,0-0.547,0.046-0.79,0.137c-0.243,0.091-0.456,0.236-0.64,0.434
c-0.183,0.198-0.323,0.448-0.426,0.752c-0.101,0.304-0.15,0.664-0.15,1.079v3.71h-1.368V5.513L136.29,5.513z"/>
<path fill="#5E6060" d="M148.604,10.985h-1.961v3.269c0,0.203,0.006,0.402,0.016,0.601c0.01,0.197,0.048,0.375,0.113,0.532
c0.065,0.157,0.168,0.283,0.305,0.38s0.337,0.145,0.602,0.145c0.161,0,0.328-0.016,0.502-0.046c0.172-0.03,0.328-0.086,0.471-0.167
v1.246c-0.162,0.092-0.373,0.154-0.631,0.19c-0.258,0.035-0.459,0.053-0.601,0.053c-0.526,0-0.937-0.073-1.224-0.221
c-0.289-0.146-0.502-0.336-0.639-0.569c-0.138-0.233-0.22-0.494-0.244-0.783c-0.024-0.289-0.037-0.58-0.037-0.874v-3.755h-1.582
V9.799h1.582V7.778h1.367v2.021h1.961V10.985L148.604,10.985z"/>
<path fill="#95BDE5" d="M142.227,20.314c-0.039,0.215-0.129,0.432-0.129,0.432c-0.023,0.059-0.106,0.25-0.125,0.288
c-0.063,0.138-0.097,0.224-0.17,0.38c-0.084,0.178,0,0-0.136,0.268c-1.126,2.234-4.158,4.756-8.376,4.658
c-3.922-0.09-6.719-1.806-8.072-4.173c-0.103-0.181-0.262-0.42-0.383-0.685c-0.033-0.073-0.242-0.51-0.266-0.574
c-0.115-0.333-0.199-0.368-0.215-0.594c0,0,0.258,0.528,0.778,1.09c1.228,1.326,3.915,3.427,8.156,3.478
c4.144,0.05,6.907-2.123,8.163-3.478C141.973,20.85,142.227,20.314,142.227,20.314z"/>
</svg>

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View file

@ -1,55 +0,0 @@
(function($){
'use strict'; // Start of use strict
$(document).ready(function(){
verifiedUrl();
init_options_interested();
init_nav();
change_values();
});
function verifiedUrl(){
if(window.location.href.indexOf('#success') > -1){
form_success();
}
}
function init_options_interested(){
$('.row-vms').click(function(){
$('.row-vms').removeClass('row-vms__active');
$(this).addClass('row-vms__active');
var number = $('.row-vms__active input').val();
var price = $('.row-vms__active input').data('price');
_calculate(number, price);
});
}
function init_nav(){
$('.nav-local').click(function(){
$('html, body').animate({
scrollTop: $('#'+$(this).data('href')).offset().top
});
});
}
function change_values(){
$('.number-vms').keyup(function () {
var number = $(this).val();
var price = $(this).data('price');
_calculate(number, price);
});
}
function form_success(){
$('#sucessModal').modal('show');
}
function _calculate(numbers, price){
$('#valueTotal').text(numbers*price*31);
}
})(jQuery); // End of use strict

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -5,6 +5,10 @@
/* ---------------------------------------------
Scripts initialization
--------------------------------------------- */
var minRam = 1;
if(window.minRam){
minRam = window.minRam;
}
var cardPricing = {
'cpu': {
'id': 'coreValue',
@ -16,7 +20,7 @@
'ram': {
'id': 'ramValue',
'value': 2,
'min': 2,
'min': minRam,
'max': 200,
'interval': 1
},
@ -40,6 +44,7 @@
_initNavUrl();
_initPricing();
ajaxForms();
$('#ramValue').data('old-value', $('#ramValue').val());
});
$(window).resize(function() {
@ -54,7 +59,7 @@
Nav panel classic
--------------------------------------------- */
if (window.matchMedia("(min-width: 767px)").matches) {
$('ul.nav li.dropdown').hover(function() {
$('ul.nav .dropdown').hover(function() {
$(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
}, function() {
$(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
@ -85,6 +90,8 @@
}
}
_navScroll();
function _initNavUrl() {
$('.url-init').each(function(idx, el) {
var $this = $(el);
@ -102,17 +109,33 @@
});
$('.url').click(function(event) {
event.preventDefault();
var href = $(this).attr('href');
var $this = $(this);
var href = $this.attr('href');
$('.navbar-collapse').removeClass('in');
$('.navbar-collapse').addClass('collapsing');
if ($(href).length) {
$('html, body').animate({
scrollTop: $(href).offset().top
}, 1000);
if (href[0] === "#") {
scrollToElement(href);
} else if (href) {
var path = $(this).prop('href').split('#');
var currentPath = window.location.origin + window.location.pathname;
if (currentPath == path[0] && path[1]) {
scrollToElement('#' + path[1]);
} else {
window.location = href;
}
}
});
}
function scrollToElement(el) {
var $el = $(el);
if ($el.length) {
$('html, body').animate({
scrollTop: $el.offset().top - 50
}, 1000);
}
}
function verifiedUrl() {
if (window.location.href.indexOf('#success') > -1) {
form_success();
@ -126,39 +149,84 @@
var data = $(this).data('minus');
if (cardPricing[data].value > cardPricing[data].min) {
cardPricing[data].value = Number(cardPricing[data].value) - cardPricing[data].interval;
if(data === 'ram' && String(cardPricing[data].value) === "1" && minRam === 0.5){
cardPricing[data].value = 0.5;
$('#ramValue').val('0.5');
$("#ramValue").attr('step', 0.5);
} else {
cardPricing[data].value = Number(cardPricing[data].value) - cardPricing[data].interval;
}
}
_fetchPricing();
$('#ramValue').data('old-value', $('#ramValue').val());
});
$('.fa-plus-circle.right').click(function(event) {
var data = $(this).data('plus');
if (cardPricing[data].value < cardPricing[data].max) {
cardPricing[data].value = Number(cardPricing[data].value) + cardPricing[data].interval;
if(data === 'ram' && String(cardPricing[data].value) === "0.5" && minRam === 0.5){
cardPricing[data].value = 1;
$('#ramValue').val('1');
$("#ramValue").attr('step', 1);
} else {
cardPricing[data].value = Number(cardPricing[data].value) + cardPricing[data].interval;
}
}
_fetchPricing();
$('#ramValue').data('old-value', $('#ramValue').val());
});
$('.input-price').change(function() {
var data = $(this).attr("name");
cardPricing[data].value = $('input[name=' + data + ']').val();
var input = $('input[name=' + data + ']');
var inputValue = input.val();
if(data === 'ram') {
var ramInput = $('#ramValue');
if ($('#ramValue').data('old-value') < $('#ramValue').val()) {
if($('#ramValue').val() === '1' && minRam === 0.5) {
$("#ramValue").attr('step', 1);
$('#ramValue').val('1');
}
} else {
if($('#ramValue').val() === '0' && minRam === 0.5) {
$("#ramValue").attr('step', 0.5);
$('#ramValue').val('0.5');
}
}
inputValue = $('#ramValue').val();
$('#ramValue').data('old-value', $('#ramValue').val());
}
cardPricing[data].value = inputValue;
_fetchPricing();
});
}
function _fetchPricing() {
Object.keys(cardPricing).map(function(element) {
//$('#'+cardPricing[element].id).val(cardPricing[element].value);
$('input[name=' + element + ']').val(cardPricing[element].value);
});
_calcPricing();
}
function _calcPricing() {
var total = (cardPricing['cpu'].value * 5) + (2 * cardPricing['ram'].value) + (0.6 * cardPricing['storage'].value);
if(typeof window.coresUnitPrice === 'undefined'){
window.coresUnitPrice = 5;
}
if(typeof window.ramUnitPrice === 'undefined'){
window.ramUnitPrice = 2;
}
if(typeof window.ssdUnitPrice === 'undefined'){
window.ssdUnitPrice = 0.6;
}
if(typeof window.discountAmount === 'undefined'){
window.discountAmount = 0;
}
var total = (cardPricing['cpu'].value * window.coresUnitPrice) +
(cardPricing['ram'].value * window.ramUnitPrice) +
(cardPricing['storage'].value * window.ssdUnitPrice) -
window.discountAmount;
total = parseFloat(total.toFixed(2));
$("#total").text(total);
$('input[name=total]').val(total);
}
function form_success() {
@ -192,4 +260,4 @@
});
})
}
})(jQuery);
})(jQuery);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,181 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="156.5px" height="40px" viewBox="0 0 156.5 40" enable-background="new 0 0 156.5 40" xml:space="preserve">
<g display="none">
<g display="inline">
<path fill="#231916" d="M32.599,25.896c0-0.429,0.15-0.845,0.453-1.25c0.303-0.408,0.734-0.773,1.296-1.097v-0.092
c-0.294-0.16-0.554-0.388-0.777-0.674c-0.22-0.289-0.332-0.662-0.332-1.119c0-0.354,0.115-0.712,0.345-1.076
c0.227-0.36,0.55-0.683,0.964-0.962v-0.09c-0.386-0.28-0.711-0.654-0.978-1.12c-0.263-0.464-0.397-1.021-0.397-1.67
c0-0.606,0.118-1.149,0.354-1.63c0.236-0.48,0.555-0.889,0.954-1.229c0.398-0.34,0.86-0.598,1.385-0.775
c0.523-0.178,1.081-0.266,1.672-0.266c0.605,0,1.152,0.088,1.64,0.266h4.452v1.662h-2.702c0.222,0.237,0.42,0.528,0.598,0.875
c0.178,0.348,0.267,0.735,0.267,1.165c0,0.59-0.111,1.117-0.332,1.572c-0.222,0.459-0.525,0.846-0.91,1.163
c-0.384,0.318-0.834,0.558-1.351,0.72c-0.517,0.162-1.071,0.246-1.663,0.246c-0.265,0-0.55-0.031-0.854-0.091
c-0.302-0.058-0.601-0.147-0.896-0.267c-0.503,0.326-0.753,0.701-0.753,1.131c0,0.398,0.185,0.686,0.553,0.865
c0.369,0.176,0.901,0.266,1.596,0.266h2.303c1.42,0,2.47,0.203,3.159,0.607c0.687,0.406,1.029,1.076,1.029,2.006
c0,0.518-0.145,1.004-0.431,1.461c-0.29,0.459-0.699,0.861-1.23,1.209c-0.531,0.348-1.174,0.621-1.929,0.82
c-0.751,0.199-1.594,0.299-2.525,0.299c-1.537,0-2.747-0.25-3.633-0.744C33.042,27.586,32.599,26.857,32.599,25.896z
M34.458,25.633c0,0.516,0.285,0.932,0.854,1.25s1.393,0.477,2.47,0.477c0.577,0,1.097-0.055,1.562-0.166
c0.465-0.11,0.864-0.258,1.197-0.442s0.585-0.396,0.764-0.631c0.177-0.234,0.266-0.486,0.266-0.754
c0-0.474-0.196-0.785-0.587-0.941c-0.392-0.153-0.979-0.231-1.762-0.231h-1.905c-0.34,0-0.641-0.012-0.907-0.033
c-0.268-0.021-0.519-0.07-0.754-0.145c-0.444,0.25-0.753,0.51-0.932,0.776C34.549,25.057,34.458,25.334,34.458,25.633z
M37.539,19.095c0.621,0,1.152-0.206,1.597-0.62c0.442-0.414,0.665-0.989,0.665-1.727c0-0.71-0.223-1.279-0.665-1.707
c-0.445-0.428-0.976-0.643-1.597-0.643s-1.152,0.215-1.595,0.643c-0.442,0.428-0.665,0.997-0.665,1.707
c0,0.738,0.223,1.313,0.665,1.727C36.386,18.889,36.918,19.095,37.539,19.095z"/>
</g>
<path display="inline" fill="#231916" d="M15.983,24.24h-1.857l-0.183-1.854h-0.092c-0.551,0.642-1.151,1.154-1.8,1.548
c-0.649,0.387-1.401,0.582-2.258,0.582c-1.329,0-2.3-0.384-2.91-1.156c-0.612-0.771-0.917-1.898-0.917-3.381V14.35L3,14.293
l5.258-2.023l-0.023,1.529v5.882c0,0.994,0.176,1.724,0.528,2.189c0.351,0.467,0.954,0.7,1.811,0.7
c0.581,0,1.111-0.143,1.593-0.426c0.48-0.283,0.998-0.762,1.547-1.433v-7.678h2.269V24.24z"/>
<path display="inline" fill="#231916" d="M19.742,13.033h1.856l0.184,1.812h0.091c0.565-0.582,1.176-1.075,1.834-1.479
c0.655-0.405,1.42-0.607,2.292-0.607c1.313,0,2.278,0.39,2.888,1.168c0.611,0.778,0.917,1.903,0.917,3.37v6.942h-2.271v-6.646
c0-0.976-0.174-1.7-0.525-2.165c-0.352-0.467-0.955-0.701-1.811-0.701c-0.597,0-1.131,0.151-1.605,0.447
c-0.473,0.299-1.002,0.744-1.582,1.343v7.721h-2.268V13.033z"/>
<path display="inline" fill="#231916" d="M55.129,18.65c0-0.917,0.162-1.74,0.482-2.465c0.321-0.725,0.748-1.345,1.284-1.856
c0.533-0.511,1.146-0.902,1.834-1.17c0.687-0.267,1.398-0.4,2.13-0.4c0.826,0,1.555,0.13,2.19,0.39
c0.633,0.26,1.172,0.621,1.615,1.086c0.443,0.468,0.779,1.025,1.01,1.676c0.229,0.648,0.344,1.362,0.344,2.142
c0,0.229-0.012,0.447-0.035,0.652c-0.022,0.208-0.049,0.38-0.08,0.516h-8.436c0.077,1.1,0.485,1.96,1.229,2.58
c0.739,0.619,1.675,0.928,2.807,0.928c0.611,0,1.18-0.084,1.708-0.252c0.527-0.166,1.042-0.403,1.546-0.709l0.802,1.443
c-0.578,0.367-1.23,0.676-1.959,0.928c-0.726,0.252-1.525,0.377-2.396,0.377c-0.842,0-1.631-0.131-2.371-0.399
c-0.742-0.267-1.387-0.65-1.938-1.156c-0.551-0.504-0.982-1.119-1.296-1.846C55.286,20.386,55.129,19.566,55.129,18.65z
M63.909,17.665c0-1.01-0.263-1.781-0.779-2.317c-0.521-0.534-1.262-0.8-2.225-0.8c-0.84,0-1.587,0.266-2.245,0.8
c-0.658,0.536-1.062,1.307-1.214,2.317H63.909z"/>
<path display="inline" fill="#231916" d="M73.475,12.679l0.008,11.793h-2.27v-8.611h-4.256L73.475,12.679z M72.152,10.368
c-0.488,0-0.894-0.146-1.215-0.435c-0.32-0.291-0.48-0.681-0.48-1.17c0-0.489,0.16-0.882,0.48-1.18
c0.321-0.298,0.727-0.446,1.215-0.446s0.896,0.148,1.215,0.446c0.32,0.298,0.482,0.691,0.482,1.18c0,0.489-0.162,0.879-0.482,1.17
C73.049,10.221,72.641,10.368,72.152,10.368z"/>
<path display="inline" fill="#231916" d="M76.629,18.878c0-0.932,0.168-1.766,0.504-2.497c0.336-0.735,0.795-1.353,1.375-1.859
c0.582-0.503,1.25-0.884,2.008-1.145c0.756-0.26,1.562-0.389,2.416-0.389c0.918,0,1.719,0.156,2.406,0.469
c0.689,0.312,1.262,0.693,1.721,1.135l-1.1,1.443c-0.443-0.367-0.904-0.653-1.379-0.86c-0.471-0.206-0.984-0.309-1.535-0.309
c-0.594,0-1.143,0.095-1.65,0.287c-0.502,0.19-0.936,0.462-1.293,0.813c-0.358,0.352-0.639,0.776-0.838,1.272
c-0.197,0.495-0.297,1.042-0.297,1.638c0,0.595,0.096,1.144,0.287,1.64c0.189,0.496,0.465,0.92,0.824,1.273
c0.359,0.35,0.785,0.623,1.273,0.812c0.487,0.188,1.028,0.284,1.627,0.284c0.686,0,1.307-0.129,1.856-0.387
c0.549-0.263,1.043-0.574,1.488-0.94l0.965,1.467c-0.644,0.551-1.347,0.975-2.111,1.272c-0.764,0.298-1.559,0.445-2.383,0.445
c-0.871,0-1.687-0.129-2.44-0.39c-0.756-0.26-1.41-0.643-1.961-1.146c-0.55-0.506-0.98-1.121-1.293-1.847
C76.785,20.641,76.629,19.811,76.629,18.878z"/>
<path display="inline" fill="#231916" d="M87.4,8.285l4.752-2.356v6.601l-0.139,2.521c0.565-0.58,1.178-1.07,1.836-1.467
c0.655-0.396,1.42-0.595,2.293-0.595c1.312,0,2.274,0.389,2.885,1.168c0.611,0.78,0.918,1.903,0.918,3.371v6.945h-2.271v-6.648
c0-0.978-0.176-1.7-0.526-2.165c-0.353-0.466-0.953-0.7-1.812-0.7c-0.596,0-1.131,0.149-1.604,0.448
c-0.475,0.298-1.002,0.745-1.582,1.342v7.726h-2.27L89.836,8.189L87.4,8.285z"/>
<g display="inline">
<polygon fill="#010000" points="100.371,3.218 99.607,4.815 109.109,4.855 109.873,3.228 "/>
<polygon fill="#010000" points="99.619,6.703 98.83,8.378 108.346,8.397 109.109,6.74 "/>
<polygon fill="#010000" points="101.475,10.278 105.832,1 107.512,1.024 103.203,10.281 "/>
</g>
<g display="inline">
<path fill="#231916" d="M49.446,20.596c0,0.754,0.188,1.297,0.566,1.631c0.376,0.33,0.866,0.498,1.472,0.498
c0.295,0,0.599-0.037,0.909-0.111s0.658-0.193,1.042-0.355l0.532,1.643c-0.252,0.086-0.492,0.166-0.721,0.242
c-0.231,0.074-0.461,0.135-0.698,0.187c-0.237,0.055-0.483,0.098-0.741,0.135c-0.26,0.035-0.543,0.058-0.853,0.058
c-1.212,0-2.131-0.349-2.76-1.043c-0.627-0.693-0.941-1.697-0.941-3.014V5.711h-3.544l5.737-4.043"/>
</g>
</g>
<path fill="#29427A" d="M12.927,23.013v-1.46h-0.045c-0.359,0.569-0.873,1.007-1.539,1.313s-1.374,0.461-2.122,0.461
c-0.839,0-1.587-0.165-2.246-0.494c-0.659-0.329-1.216-0.768-1.673-1.313c-0.457-0.547-0.805-1.18-1.044-1.898
c-0.24-0.718-0.359-1.467-0.359-2.245s0.124-1.523,0.371-2.234s0.599-1.337,1.055-1.875c0.457-0.539,1.011-0.966,1.662-1.28
c0.651-0.314,1.381-0.472,2.189-0.472c0.823,0,1.52,0.157,2.089,0.472c0.568,0.314,1.011,0.659,1.325,1.033h0.045V6.035h3.683
v16.978H12.927z M12.792,17.398c0-0.359-0.064-0.711-0.191-1.056c-0.128-0.345-0.307-0.651-0.54-0.921
c-0.232-0.27-0.513-0.486-0.842-0.651c-0.329-0.164-0.704-0.247-1.123-0.247c-0.434,0-0.816,0.083-1.145,0.247
c-0.33,0.165-0.606,0.379-0.831,0.64c-0.225,0.263-0.393,0.565-0.505,0.91s-0.168,0.696-0.168,1.056
c0,0.358,0.056,0.715,0.168,1.066s0.281,0.663,0.505,0.932c0.225,0.27,0.501,0.487,0.831,0.651c0.329,0.165,0.711,0.247,1.145,0.247
c0.419,0,0.793-0.082,1.123-0.247c0.33-0.164,0.61-0.382,0.842-0.651c0.232-0.269,0.412-0.575,0.54-0.921
C12.728,18.109,12.792,17.758,12.792,17.398z"/>
<path fill="#29427A" d="M19.08,13.355c0.659-0.628,1.426-1.1,2.302-1.415s1.771-0.472,2.684-0.472c0.944,0,1.741,0.116,2.392,0.348
c0.651,0.232,1.179,0.591,1.583,1.078c0.404,0.486,0.7,1.101,0.887,1.842c0.187,0.74,0.281,1.62,0.281,2.639v5.637H25.84v-1.19
h-0.067c-0.285,0.464-0.715,0.823-1.291,1.078c-0.577,0.254-1.202,0.382-1.875,0.382c-0.449,0-0.913-0.061-1.393-0.18
c-0.479-0.12-0.917-0.314-1.313-0.584c-0.397-0.27-0.723-0.629-0.977-1.078c-0.255-0.449-0.382-1.003-0.382-1.662
c0-0.809,0.221-1.459,0.663-1.953s1.011-0.876,1.707-1.146c0.696-0.27,1.471-0.449,2.324-0.539s1.685-0.135,2.493-0.135v-0.18
c0-0.554-0.195-0.962-0.584-1.225c-0.389-0.262-0.868-0.393-1.437-0.393c-0.524,0-1.03,0.112-1.516,0.337
c-0.487,0.225-0.902,0.494-1.247,0.809L19.08,13.355z M25.84,18.139h-0.472c-0.404,0-0.812,0.02-1.224,0.057
c-0.412,0.037-0.779,0.108-1.101,0.213c-0.322,0.105-0.588,0.259-0.797,0.461c-0.21,0.202-0.314,0.468-0.314,0.797
c0,0.21,0.049,0.39,0.146,0.539c0.097,0.15,0.221,0.27,0.371,0.359c0.149,0.09,0.322,0.153,0.517,0.191
c0.194,0.037,0.382,0.056,0.562,0.056c0.749,0,1.321-0.205,1.718-0.617c0.396-0.412,0.595-0.97,0.595-1.673V18.139z"/>
<path fill="#29427A" d="M36.067,14.568v4.283c0,0.526,0.101,0.921,0.303,1.184c0.202,0.264,0.565,0.395,1.089,0.395
c0.18,0,0.371-0.015,0.573-0.045c0.202-0.029,0.371-0.074,0.505-0.135l0.045,2.695c-0.255,0.09-0.577,0.169-0.966,0.235
c-0.389,0.067-0.779,0.102-1.168,0.102c-0.749,0-1.377-0.094-1.886-0.281c-0.509-0.188-0.917-0.458-1.224-0.811
c-0.307-0.354-0.528-0.773-0.662-1.261c-0.135-0.488-0.202-1.032-0.202-1.633v-4.729h-1.797v-2.74h1.774V8.887h3.616v2.942h2.627
v2.74H36.067z"/>
<path fill="#29427A" d="M40.957,13.355c0.659-0.628,1.426-1.1,2.302-1.415s1.771-0.472,2.684-0.472c0.943,0,1.741,0.116,2.392,0.348
c0.651,0.232,1.179,0.591,1.583,1.078c0.404,0.486,0.7,1.101,0.887,1.842c0.188,0.74,0.281,1.62,0.281,2.639v5.637h-3.369v-1.19
h-0.067c-0.285,0.464-0.715,0.823-1.291,1.078c-0.577,0.254-1.202,0.382-1.875,0.382c-0.449,0-0.913-0.061-1.392-0.18
c-0.479-0.12-0.917-0.314-1.314-0.584c-0.397-0.27-0.723-0.629-0.977-1.078s-0.382-1.003-0.382-1.662
c0-0.809,0.221-1.459,0.663-1.953s1.011-0.876,1.707-1.146s1.471-0.449,2.324-0.539s1.685-0.135,2.493-0.135v-0.18
c0-0.554-0.195-0.962-0.584-1.225c-0.389-0.262-0.868-0.393-1.437-0.393c-0.524,0-1.03,0.112-1.516,0.337s-0.902,0.494-1.247,0.809
L40.957,13.355z M47.717,18.139h-0.471c-0.404,0-0.812,0.02-1.224,0.057c-0.412,0.037-0.779,0.108-1.101,0.213
c-0.322,0.105-0.587,0.259-0.797,0.461c-0.209,0.202-0.314,0.468-0.314,0.797c0,0.21,0.049,0.39,0.146,0.539
c0.097,0.15,0.22,0.27,0.37,0.359c0.149,0.09,0.322,0.153,0.517,0.191c0.194,0.037,0.382,0.056,0.562,0.056
c0.749,0,1.321-0.205,1.718-0.617c0.396-0.412,0.595-0.97,0.595-1.673V18.139z"/>
<path fill="#5A74AF" d="M61.874,15.197c-0.375-0.389-0.768-0.685-1.179-0.887c-0.412-0.202-0.902-0.304-1.471-0.304
c-0.554,0-1.037,0.102-1.449,0.304c-0.412,0.202-0.756,0.479-1.033,0.831s-0.487,0.756-0.629,1.212
c-0.142,0.457-0.213,0.933-0.213,1.427s0.082,0.962,0.247,1.403c0.165,0.441,0.396,0.827,0.696,1.156
c0.3,0.33,0.659,0.588,1.078,0.775c0.419,0.188,0.891,0.28,1.415,0.28c0.568,0,1.055-0.101,1.459-0.303s0.778-0.498,1.123-0.888
l1.438,1.438c-0.524,0.584-1.134,1.003-1.831,1.258c-0.696,0.254-1.434,0.382-2.212,0.382c-0.823,0-1.576-0.135-2.257-0.404
s-1.269-0.647-1.763-1.135c-0.494-0.485-0.876-1.07-1.146-1.751c-0.27-0.682-0.404-1.434-0.404-2.258
c0-0.822,0.135-1.579,0.404-2.268s0.647-1.28,1.134-1.774c0.486-0.494,1.07-0.879,1.751-1.156s1.441-0.416,2.279-0.416
c0.779,0,1.523,0.139,2.235,0.416c0.711,0.277,1.329,0.7,1.853,1.269L61.874,15.197z"/>
<path fill="#5A74AF" d="M66.612,18.432c0,0.464,0.101,0.887,0.304,1.269c0.201,0.382,0.467,0.707,0.797,0.977
c0.329,0.27,0.711,0.479,1.145,0.629c0.435,0.15,0.884,0.225,1.348,0.225c0.629,0,1.176-0.146,1.64-0.438
c0.464-0.292,0.891-0.678,1.28-1.157l1.527,1.168c-1.123,1.452-2.695,2.179-4.717,2.179c-0.838,0-1.598-0.143-2.279-0.427
s-1.258-0.678-1.729-1.179c-0.473-0.502-0.836-1.093-1.09-1.774s-0.382-1.418-0.382-2.212s0.139-1.531,0.416-2.213
c0.276-0.681,0.658-1.271,1.146-1.773c0.486-0.501,1.066-0.895,1.74-1.18c0.674-0.284,1.406-0.426,2.201-0.426
c0.942,0,1.74,0.165,2.391,0.494c0.652,0.33,1.187,0.76,1.605,1.292c0.42,0.531,0.723,1.13,0.91,1.796
c0.188,0.667,0.281,1.345,0.281,2.033v0.719H66.612z M72.99,16.814c-0.016-0.449-0.086-0.861-0.213-1.235
c-0.128-0.374-0.318-0.7-0.573-0.978c-0.255-0.276-0.573-0.493-0.954-0.65c-0.383-0.157-0.828-0.236-1.337-0.236
c-0.493,0-0.946,0.094-1.358,0.281s-0.76,0.43-1.044,0.729s-0.505,0.633-0.663,0.999c-0.156,0.367-0.235,0.73-0.235,1.09H72.99z"/>
<path fill="#5A74AF" d="M77.572,12.368h2.021v1.639h0.046c0.254-0.568,0.695-1.029,1.324-1.381s1.355-0.528,2.178-0.528
c0.51,0,1,0.079,1.472,0.236s0.883,0.4,1.235,0.73c0.352,0.329,0.633,0.752,0.842,1.269c0.209,0.516,0.314,1.126,0.314,1.83v6.85
h-2.021v-6.288c0-0.494-0.066-0.917-0.201-1.269c-0.135-0.353-0.314-0.637-0.539-0.854c-0.225-0.216-0.483-0.373-0.775-0.471
s-0.596-0.146-0.91-0.146c-0.418,0-0.808,0.067-1.167,0.202s-0.674,0.349-0.943,0.641c-0.27,0.291-0.479,0.662-0.629,1.111
s-0.225,0.98-0.225,1.595v5.479h-2.021V12.368z"/>
<path fill="#5A74AF" d="M95.762,14.119h-2.896v4.829c0,0.299,0.008,0.595,0.022,0.887s0.071,0.554,0.169,0.786
c0.097,0.232,0.246,0.419,0.449,0.561c0.201,0.144,0.497,0.214,0.887,0.214c0.239,0,0.486-0.022,0.741-0.067
s0.486-0.127,0.696-0.247v1.842c-0.24,0.135-0.551,0.229-0.932,0.28c-0.383,0.053-0.678,0.079-0.888,0.079
c-0.778,0-1.382-0.109-1.808-0.325c-0.427-0.218-0.741-0.498-0.943-0.843s-0.322-0.73-0.359-1.156
c-0.037-0.427-0.057-0.857-0.057-1.292v-5.547h-2.336v-1.751h2.336V9.381h2.021v2.987h2.896V14.119z"/>
<path fill="#5A74AF" d="M99.895,18.432c0,0.464,0.102,0.887,0.304,1.269s0.467,0.707,0.797,0.977
c0.329,0.27,0.711,0.479,1.146,0.629c0.434,0.15,0.883,0.225,1.348,0.225c0.628,0,1.175-0.146,1.639-0.438
c0.464-0.292,0.891-0.678,1.28-1.157l1.527,1.168c-1.123,1.452-2.695,2.179-4.716,2.179c-0.839,0-1.599-0.143-2.28-0.427
c-0.681-0.284-1.257-0.678-1.729-1.179c-0.471-0.502-0.834-1.093-1.088-1.774c-0.256-0.682-0.383-1.418-0.383-2.212
s0.139-1.531,0.416-2.213c0.276-0.681,0.658-1.271,1.145-1.773c0.487-0.501,1.067-0.895,1.741-1.18
c0.674-0.284,1.407-0.426,2.201-0.426c0.942,0,1.74,0.165,2.392,0.494c0.65,0.33,1.186,0.76,1.605,1.292
c0.419,0.531,0.723,1.13,0.909,1.796c0.188,0.667,0.281,1.345,0.281,2.033v0.719H99.895z M106.272,16.814
c-0.016-0.449-0.086-0.861-0.213-1.235c-0.128-0.374-0.318-0.7-0.573-0.978c-0.255-0.276-0.572-0.493-0.954-0.65
s-0.828-0.236-1.337-0.236c-0.493,0-0.946,0.094-1.358,0.281c-0.411,0.188-0.76,0.43-1.044,0.729
c-0.285,0.3-0.506,0.633-0.663,0.999c-0.157,0.367-0.235,0.73-0.235,1.09H106.272z"/>
<path fill="#5A74AF" d="M110.854,12.368h2.021v1.639h0.045c0.135-0.284,0.314-0.542,0.539-0.774
c0.225-0.232,0.475-0.431,0.752-0.595s0.58-0.295,0.909-0.393c0.33-0.097,0.659-0.146,0.988-0.146c0.33,0,0.629,0.045,0.899,0.135
l-0.091,2.178c-0.165-0.045-0.329-0.082-0.494-0.112c-0.165-0.029-0.329-0.045-0.493-0.045c-0.988,0-1.745,0.277-2.269,0.831
c-0.524,0.554-0.786,1.415-0.786,2.583v5.345h-2.021V12.368z"/>
<path fill="#5E6060" d="M120.156,5.513h1.368v11.493h-1.368V5.513z"/>
<path fill="#5E6060" d="M123.485,7.215c0-0.274,0.099-0.509,0.297-0.707c0.197-0.198,0.433-0.296,0.707-0.296
c0.273,0,0.509,0.099,0.707,0.296c0.197,0.198,0.296,0.433,0.296,0.707c0,0.273-0.099,0.509-0.296,0.707
c-0.198,0.198-0.434,0.297-0.707,0.297c-0.274,0-0.51-0.099-0.707-0.297C123.584,7.725,123.485,7.489,123.485,7.215z M123.805,9.799
h1.368v7.207h-1.368V9.799z"/>
<path fill="#5E6060" d="M134.567,16.944c0,0.548-0.094,1.047-0.281,1.498c-0.188,0.45-0.453,0.841-0.798,1.17
s-0.76,0.586-1.246,0.768c-0.487,0.183-1.024,0.273-1.611,0.273c-0.689,0-1.32-0.096-1.894-0.288
c-0.572-0.193-1.117-0.527-1.634-1.003l0.927-1.156c0.355,0.386,0.74,0.677,1.156,0.874c0.415,0.198,0.887,0.297,1.413,0.297
c0.507,0,0.928-0.074,1.262-0.221c0.335-0.146,0.601-0.337,0.799-0.569c0.197-0.234,0.337-0.5,0.418-0.799s0.121-0.601,0.121-0.904
v-1.064h-0.045c-0.264,0.436-0.621,0.758-1.072,0.966s-0.925,0.312-1.421,0.312c-0.527,0-1.017-0.094-1.468-0.281
s-0.838-0.446-1.163-0.775c-0.324-0.329-0.577-0.72-0.76-1.171c-0.183-0.45-0.273-0.939-0.273-1.467
c0-0.527,0.086-1.021,0.259-1.482c0.172-0.461,0.418-0.864,0.737-1.208c0.319-0.345,0.704-0.613,1.155-0.806
c0.45-0.192,0.955-0.289,1.513-0.289c0.486,0,0.96,0.106,1.421,0.319s0.823,0.512,1.087,0.896h0.03V9.799h1.368V16.944z
M130.828,10.894c-0.365,0-0.694,0.063-0.988,0.19c-0.294,0.126-0.542,0.299-0.745,0.517c-0.202,0.218-0.359,0.481-0.471,0.791
c-0.112,0.309-0.167,0.646-0.167,1.011c0,0.729,0.213,1.315,0.638,1.756c0.426,0.44,1.004,0.661,1.733,0.661
s1.307-0.221,1.733-0.661c0.426-0.44,0.638-1.026,0.638-1.756c0-0.365-0.056-0.702-0.167-1.011s-0.269-0.572-0.471-0.791
c-0.203-0.218-0.451-0.39-0.745-0.517C131.522,10.958,131.193,10.894,130.828,10.894z"/>
<path fill="#5E6060" d="M136.29,5.513h1.368v5.397h0.03c0.172-0.385,0.471-0.697,0.896-0.935s0.917-0.357,1.475-0.357
c0.345,0,0.677,0.053,0.996,0.16s0.598,0.271,0.836,0.494c0.238,0.223,0.429,0.509,0.57,0.859s0.213,0.763,0.213,1.239v4.637h-1.368
v-4.257c0-0.334-0.046-0.62-0.137-0.858c-0.092-0.238-0.213-0.431-0.365-0.578c-0.152-0.147-0.327-0.253-0.524-0.32
c-0.198-0.065-0.403-0.099-0.616-0.099c-0.283,0-0.547,0.046-0.79,0.137c-0.243,0.091-0.456,0.236-0.639,0.434
s-0.324,0.448-0.426,0.752c-0.101,0.304-0.151,0.664-0.151,1.079v3.71h-1.368V5.513z"/>
<path fill="#5E6060" d="M148.604,10.985h-1.961v3.269c0,0.203,0.005,0.402,0.015,0.601c0.01,0.197,0.048,0.375,0.114,0.532
c0.065,0.157,0.167,0.283,0.304,0.38s0.337,0.145,0.601,0.145c0.162,0,0.329-0.016,0.502-0.046c0.172-0.03,0.329-0.086,0.471-0.167
v1.246c-0.162,0.092-0.372,0.154-0.631,0.19c-0.258,0.035-0.458,0.053-0.6,0.053c-0.527,0-0.936-0.073-1.224-0.221
c-0.289-0.146-0.502-0.336-0.639-0.569s-0.219-0.494-0.244-0.783c-0.024-0.289-0.037-0.58-0.037-0.874v-3.755h-1.581V9.799h1.581
V7.778h1.368v2.021h1.961V10.985z"/>
<path fill="#95BDE5" d="M142.227,20.314c-0.039,0.215-0.129,0.432-0.129,0.432c-0.024,0.059-0.107,0.25-0.125,0.288
c-0.064,0.138-0.097,0.224-0.17,0.38c-0.084,0.178,0,0-0.136,0.268c-1.126,2.234-4.158,4.755-8.376,4.658
c-3.922-0.09-6.719-1.806-8.072-4.173c-0.103-0.18-0.262-0.42-0.383-0.684c-0.034-0.074-0.242-0.511-0.265-0.575
c-0.116-0.333-0.2-0.368-0.216-0.594c0,0,0.259,0.528,0.779,1.091c1.227,1.325,3.915,3.426,8.156,3.477
c4.143,0.049,6.907-2.123,8.163-3.477C141.972,20.849,142.227,20.314,142.227,20.314z"/>
</svg>

Before

Width:  |  Height:  |  Size: 18 KiB

View file

@ -1,22 +1,26 @@
from datetime import datetime
from celery import current_task
from celery.exceptions import MaxRetriesExceededError
from celery.utils.log import get_task_logger
from celery import current_task
from django.conf import settings
from django.core.mail import EmailMessage
from django.core.urlresolvers import reverse
from django.utils import translation
from django.utils.translation import ugettext_lazy as _
from time import sleep
from dynamicweb.celery import app
from hosting.models import HostingOrder, HostingBill
from membership.models import StripeCustomer, CustomUser
from hosting.models import HostingOrder
from membership.models import CustomUser
from opennebula_api.models import OpenNebulaManager
from opennebula_api.serializers import VirtualMachineSerializer
from utils.hosting_utils import get_all_public_keys
from utils.forms import UserBillingAddressForm
from utils.hosting_utils import (
get_all_public_keys, get_or_create_vm_detail, ping_ok
)
from utils.mailer import BaseEmail
from utils.models import BillingAddress
from utils.stripe_utils import StripeUtils
from .models import VMPricing
logger = get_task_logger(__name__)
@ -48,17 +52,15 @@ def retry_task(task, exception=None):
@app.task(bind=True, max_retries=settings.CELERY_MAX_RETRIES)
def create_vm_task(self, vm_template_id, user, specs, template,
stripe_customer_id, billing_address_data,
billing_address_id,
charge, cc_details):
logger.debug("Running create_vm_task on {}".format(current_task.request.hostname))
def create_vm_task(self, vm_template_id, user, specs, template, order_id):
logger.debug(
"Running create_vm_task on {}".format(current_task.request.hostname))
vm_id = None
try:
final_price = specs.get('price')
billing_address = BillingAddress.objects.filter(
id=billing_address_id).first()
customer = StripeCustomer.objects.filter(id=stripe_customer_id).first()
final_price = (
specs.get('total_price') if 'total_price' in specs
else specs.get('price')
)
if 'pass' in user:
on_user = user.get('email')
@ -87,34 +89,43 @@ def create_vm_task(self, vm_template_id, user, specs, template,
if vm_id is None:
raise Exception("Could not create VM")
# Create a Hosting Order
order = HostingOrder.create(
price=final_price,
vm_id=vm_id,
customer=customer,
billing_address=billing_address
# Update HostingOrder with the created vm_id
hosting_order = HostingOrder.objects.filter(id=order_id).first()
error_msg = None
try:
hosting_order.vm_id = vm_id
hosting_order.save()
logger.debug(
"Updated hosting_order {} with vm_id={}".format(
hosting_order.id, vm_id
)
)
except Exception as ex:
error_msg = (
"HostingOrder with id {order_id} not found. This means that "
"the hosting order was not created and/or it is/was not "
"associated with VM with id {vm_id}. Details {details}".format(
order_id=order_id, vm_id=vm_id, details=str(ex)
)
)
logger.error(error_msg)
stripe_utils = StripeUtils()
result = stripe_utils.set_subscription_metadata(
subscription_id=hosting_order.subscription_id,
metadata={"VM_ID": str(vm_id)}
)
# Create a Hosting Bill
HostingBill.create(
customer=customer, billing_address=billing_address)
# Create Billing Address for User if he does not have one
if not customer.user.billing_addresses.count():
billing_address_data.update({
'user': customer.user.id
})
billing_address_user_form = UserBillingAddressForm(
billing_address_data)
billing_address_user_form.is_valid()
billing_address_user_form.save()
# Associate an order with a stripe subscription
charge_object = DictDotLookup(charge)
order.set_subscription_id(charge_object, cc_details)
# If the Stripe payment succeeds, set order status approved
order.set_approved()
if result.get('error') is not None:
emsg = "Could not update subscription metadata for {sub}".format(
sub=hosting_order.subscription_id
)
logger.error(emsg)
if error_msg:
error_msg += ". " + emsg
else:
error_msg = emsg
vm = VirtualMachineSerializer(manager.get_vm(vm_id)).data
@ -124,12 +135,19 @@ def create_vm_task(self, vm_template_id, user, specs, template,
'cores': specs.get('cpu'),
'memory': specs.get('memory'),
'storage': specs.get('disk_size'),
'price': specs.get('price'),
'price': final_price,
'template': template.get('name'),
'vm.name': vm['name'],
'vm.id': vm['vm_id'],
'order.id': order.id
'vm_name': vm.get('name'),
'vm_id': vm['vm_id'],
'order_id': order_id
}
if error_msg:
context['errors'] = error_msg
if 'pricing_name' in specs:
context['pricing'] = str(VMPricing.get_vm_pricing_by_name(
name=specs['pricing_name']
))
email_data = {
'subject': settings.DCL_TEXT + " Order from %s" % context['email'],
'from_email': settings.DCL_SUPPORT_FROM_ADDRESS,
@ -142,20 +160,22 @@ def create_vm_task(self, vm_template_id, user, specs, template,
email.send()
if 'pass' in user:
lang = 'en-us'
lang = 'en-us'
if user.get('language') is not None:
logger.debug("Language is set to {}".format(user.get('language')))
logger.debug(
"Language is set to {}".format(user.get('language')))
lang = user.get('language')
translation.activate(lang)
# Send notification to the user as soon as VM has been booked
context = {
'vm': vm,
'order': order,
'base_url': "{0}://{1}".format(user.get('request_scheme'),
user.get('request_host')),
'order_url': reverse('hosting:orders',
kwargs={'pk': order_id}),
'page_header': _(
'Your New VM %(vm_name)s at Data Center Light') % {
'vm_name': vm.get('name')}
'vm_name': vm.get('name')},
'vm_name': vm.get('name')
}
email_data = {
'subject': context.get('page_header'),
@ -168,26 +188,63 @@ def create_vm_task(self, vm_template_id, user, specs, template,
email = BaseEmail(**email_data)
email.send()
# try to see if we have the IP and that if the ssh keys can
# be configured
new_host = manager.get_primary_ipv4(vm_id)
# try to see if we have the IPv6 of the new vm and that if the ssh
# keys can be configured
vm_ipv6 = manager.get_ipv6(vm_id)
logger.debug("New VM ID is {vm_id}".format(vm_id=vm_id))
if new_host is not None:
if vm_ipv6 is not None:
custom_user = CustomUser.objects.get(email=user.get('email'))
get_or_create_vm_detail(custom_user, manager, vm_id)
if custom_user is not None:
public_keys = get_all_public_keys(custom_user)
keys = [{'value': key, 'state': True} for key in
public_keys]
if len(keys) > 0:
logger.debug(
"Calling configure on {host} for {num_keys} keys".format(
host=new_host, num_keys=len(keys)))
# Let's delay the task by 75 seconds to be sure
# that we run the cdist configure after the host
# is up
manager.manage_public_key(keys,
hosts=[new_host],
countdown=75)
"Calling configure on {host} for "
"{num_keys} keys".format(
host=vm_ipv6, num_keys=len(keys)
)
)
# Let's wait until the IP responds to ping before we
# run the cdist configure on the host
did_manage_public_key = False
for i in range(0, 15):
if ping_ok(vm_ipv6):
logger.debug(
"{} is pingable. Doing a "
"manage_public_key".format(vm_ipv6)
)
sleep(10)
manager.manage_public_key(
keys, hosts=[vm_ipv6]
)
did_manage_public_key = True
break
else:
logger.debug(
"Can't ping {}. Wait 5 secs".format(
vm_ipv6
)
)
sleep(5)
if not did_manage_public_key:
emsg = ("Waited for over 75 seconds for {} to be "
"pingable. But the VM was not reachable. "
"So, gave up manage_public_key. Please do "
"this manually".format(vm_ipv6))
logger.error(emsg)
email_data = {
'subject': '{} CELERY TASK INCOMPLETE: {} not '
'pingable for 75 seconds'.format(
settings.DCL_TEXT, vm_ipv6
),
'from_email': current_task.request.hostname,
'to': settings.DCL_ERROR_EMAILS_TO_LIST,
'body': emsg
}
email = EmailMessage(**email_data)
email.send()
except Exception as e:
logger.error(str(e))
try:
@ -209,32 +266,3 @@ def create_vm_task(self, vm_template_id, user, specs, template,
return
return vm_id
class DictDotLookup(object):
"""
Creates objects that behave much like a dictionaries, but allow nested
key access using object '.' (dot) lookups.
"""
def __init__(self, d):
for k in d:
if isinstance(d[k], dict):
self.__dict__[k] = DictDotLookup(d[k])
elif isinstance(d[k], (list, tuple)):
l = []
for v in d[k]:
if isinstance(v, dict):
l.append(DictDotLookup(v))
else:
l.append(v)
self.__dict__[k] = l
else:
self.__dict__[k] = d[k]
def __getitem__(self, name):
if name in self.__dict__:
return self.__dict__[name]
def __iter__(self):
return iter(self.__dict__.keys())

View file

@ -1,69 +1,67 @@
{% load staticfiles i18n cms_tags sekizai_tags %}
{% load static i18n cms_tags sekizai_tags %}
{% get_current_language as LANGUAGE_CODE %}
<!DOCTYPE html>
<html lang="{{LANGUAGE_CODE}}">
<head>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Data Center Light by ungleich">
<meta name="author" content="ungleich glarus ag">
<title>Data Center Light - {% block title %}VM hosting made in Switzerland{% endblock %}</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Data Center Light by ungleich">
<meta name="author" content="ungleich GmbH">
{% cms_toolbar %}
<title>Data Center Light -
{% block title %}VM hosting made in Switzerland{% endblock %}</title>
<!-- Bootstrap Core CSS -->
<link href="{% static 'datacenterlight/css/bootstrap.min.css' %}" rel="stylesheet">
<!-- Vendor CSS -->
<!-- Bootstrap Core CSS -->
<link href="{% static 'datacenterlight/css/bootstrap-3.3.7.min.css' %}" rel="stylesheet">
<!-- Icon Fonts -->
<link href="{% static 'datacenterlight/font-awesome/css/font-awesome.min.css' %}" rel="stylesheet" type="text/css">
<!-- Custom CSS -->
<link href="{% static 'datacenterlight/css/common.css' %}" rel="stylesheet">
<link href="{% static 'datacenterlight/css/landing-page.css' %}" rel="stylesheet">
{% block css_extra %}
{% endblock css_extra %}
{% render_block "css" postprocessor "compressor.contrib.sekizai.compress" %}
{% render_block "js" postprocessor "compressor.contrib.sekizai.compress" %}
<!-- Custom Fonts -->
<!--Import Google Icon Font-->
<link href="//fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href="{% static 'datacenterlight/font-awesome/css/font-awesome.min.css' %}" rel="stylesheet" type="text/css">
<link href="//fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
<link rel="shortcut icon" href="{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon" />
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.5.4/bootstrap-select.min.css" rel="stylesheet">
<!-- External Fonts -->
<link href="//fonts.googleapis.com/css?family=Lato:300,400,600,700" rel="stylesheet" type="text/css">
<!-- Custom CSS -->
<link href="{% static 'datacenterlight/css/landing-page.css' %}" rel="stylesheet">
<link rel="shortcut icon" href="{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
{% render_block "css" postprocessor "compressor.contrib.sekizai.compress" %}
{% render_block "js" postprocessor "compressor.contrib.sekizai.compress" %}
<!-- Google analytics -->
{% include "google_analytics.html" %}
<!-- End Google Analytics -->
</head>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<body>
<!-- Navigation -->
<!-- Google analytics -->
{% include "google_analytics.html" %}
<!-- End Google Analytics -->
</head>
<body>
{% block navbar %}
{% include "datacenterlight/includes/_navbar.html" %}
{% endblock navbar %}
{% block content %}
{% endblock %}
{% block content %}
{% endblock %}
{% include "datacenterlight/includes/_footer.html" %}
{% include "datacenterlight/includes/_footer.html" %}
<!-- Footer -->
<!-- jQuery -->
<script src="{% static 'datacenterlight/js/jquery-2.2.4.min.js' %}"></script>
<!-- Bootstrap Core JavaScript -->
<script src="{% static 'datacenterlight/js/bootstrap-3.3.7.min.js' %}"></script>
<!-- Bootstrap Validator -->
<script src="//cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.9/validator.min.js"></script>
<!-- jQuery -->
<script src="{% static 'datacenterlight/js/jquery.js' %}"></script>
<!-- Custom JS -->
<script src="{% static 'datacenterlight/js/main.js' %}"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.5.4/bootstrap-select.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="{% static 'datacenterlight/js/bootstrap.min.js' %}"></script>
<script src="{% static 'datacenterlight/js/main.js' %}"></script>
<!-- Load form js -->
<script src="{% static 'datacenterlight/js/form.js' %}"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.5.4/bootstrap-select.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.9/validator.min.js"></script>
</body>
</body>
</html>

View file

@ -0,0 +1,94 @@
{% load staticfiles i18n cms_tags sekizai_tags %}
{% get_current_language as LANGUAGE_CODE %}
<!DOCTYPE html>
<html lang="{{LANGUAGE_CODE}}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Data Center Light by ungleich">
<meta name="author" content="ungleich glarus ag">
<title>Data Center Light - {% block title %}VM hosting made in Switzerland{% endblock %}</title>
<!-- Vendor CSS -->
<!-- Bootstrap Core CSS -->
<link href="{% static 'datacenterlight/css/bootstrap-3.3.7.min.css' %}" rel="stylesheet">
<!-- Icon Fonts -->
<link href="{% static 'datacenterlight/font-awesome/css/font-awesome.min.css' %}" rel="stylesheet" type="text/css">
<link href="//fonts.googleapis.com/css?family=Lato:300,400,600,700" rel="stylesheet" type="text/css">
<!-- Custom CSS -->
<link href="{% static 'datacenterlight/css/common.css' %}" rel="stylesheet">
<link href="{% static 'datacenterlight/css/hosting.css' %}" rel="stylesheet">
{% if request.toolbar.edit_mode %}
<link href="{% static 'datacenterlight/css/cms.css' %}" rel="stylesheet">
{% endif %}
{% block css_extra %}
{% endblock css_extra %}
{% render_block "css" postprocessor "compressor.contrib.sekizai.compress" %}
{% render_block "js" postprocessor "compressor.contrib.sekizai.compress" %}
<!-- External Fonts -->
<link rel="shortcut icon" href="{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- Google analytics -->
{% include "google_analytics.html" %}
<!-- End Google Analytics -->
</head>
<body>
{% cms_toolbar %}
{% render_placeholder cms_integration.navbar_placeholder %}
<div class="{% if request.user.is_authenticated %}content-dashboard{% endif %}">
{% block content %}
{% endblock %}
</div>
{% render_placeholder cms_integration.footer_placeholder %}
<!-- Moment -->
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment-with-locales.js"></script>
<!-- jQuery -->
<script src="{% static 'datacenterlight/js/jquery-2.2.4.min.js' %}"></script>
<!-- Bootstrap Core JavaScript -->
<script src="{% static 'datacenterlight/js/bootstrap-3.3.7.min.js' %}"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.9/validator.min.js"></script>
<!-- Copy Clipboard (not required for dcl, but dependency in virtual_machine_detail.js) -->
<script src="//cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.5.10/clipboard.min.js"></script>
<!-- Custom JS -->
<script src="{% static 'hosting/js/virtual_machine_detail.js' %}"></script>
<script src="{% static 'hosting/js/createvm.js' %}"></script>
<script src="{% static 'hosting/js/initial.js' %}"></script>
{% block js_extra %}
{% comment %}
this block is above some files, because on stripe error scripts below the stripe
script are not properly executed.
{% endcomment %}
{% endblock js_extra %}
<!-- Stripe Lib -->
<script src="https://js.stripe.com/v3/"></script>
<script src="https://js.stripe.com/v2/"></script>
<!-- Proccess payment lib -->
<script type="text/javascript" src="{% static 'hosting/js/payment.js' %}"></script>
</body>
</html>

View file

@ -1,27 +0,0 @@
{% load i18n %}
<form novalidate id ="beta_access" class="form-beta" method="POST" action="{% url 'datacenterlight:beta_access'%}">
{% csrf_token %}
{{ form.non_field_errors }}
<div>
{% for message in messages %}
<strong>{{ message }}</strong>
{% endfor %}
</div>
<div class="inputs">
<div class="form-group">
<input type="text" name="name" class="form-control" id="name" placeholder="{% trans 'Enter name' %}">
<span style="color: white">{{ form.name.errors|striptags}}</span>
</div>
<div class="form-group">
<input type="email" name="email" class="form-control" id="email" placeholder="{% trans 'Enter email' %}">
<span style="color: white">{{ form.email.errors|striptags}}</span>
</div>
</div>
<button type="submit" class="btn btn-default btn-transparent btn-lg">{% trans "Request Beta Access" %}</button>
</form>
<script>
$('#beta_access').ajaxForm({
target: '#beta_access_form', success: function(response) { }
});
</script>

View file

@ -1,47 +0,0 @@
{% load i18n %}
<div class="modal fade bs-example-modal-sm" style="color:black;" id="successModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="modal-icon"><i class="fa fa-check" aria-hidden="true"></i></div>
<h4 class="modal-title">{% trans "Request Sent" %}</h4>
<p class="modal-text">{% trans "Thank you for your subscription! You will receive a confirmation mail from our team" %}</p>
</div>
</div><!-- /.modal-content -->
</div>
</div><!-- /.modal -->
<script>
// Show modal
$('#successModal').modal('show');
// close the modal after 3 seconds
setTimeout(function() {
$('#successModal').modal('hide');
}, 5000);
</script>
<style>
.vertical-alignment-helper {
display:table;
height: 100%;
width: 100%;
pointer-events:none; /* This makes sure that we can still click outside of the modal to close it */
}
.vertical-align-center {
/* To center vertically */
display: table-cell;
vertical-align: middle;
pointer-events:none;
}
.modal-content {
/* Bootstrap sets the size of the modal in the modal-dialog class, we need to inherit it */
width:inherit;
height:inherit;
/* To center horizontally */
margin: 0 auto;
pointer-events: all;
}
</style>

View file

@ -0,0 +1,17 @@
<div class="flex-row {{ instance.get_extra_classes }}">
<div class="percent-text">
{% if instance.banner_text %}
<div class="text">{{ instance.banner_text }}</div>
{% endif %}
{% if instance.banner_image %}
<div class="ssdimg">
<img class="img-responsive" src="{{ instance.banner_image.url }}" alt="image">
</div>
{% endif %}
</div>
<div class="desc-text padding-vertical">
<div class="lead">
{{ instance.content }}
</div>
</div>
</div>

View file

@ -0,0 +1,14 @@
{% load cms_tags %}
<div class="banner-list" id="{{ instance.html_id }}">
<div class="container">
{% if instance.heading %}
<div class="banner-list-heading">
<h2>{{ instance.heading }}</h2>
</div>
{% endif %}
{% for plugin in instance.child_plugin_instances %}
{% render_plugin plugin %}
{% endfor %}
</div>
</div>

View file

@ -0,0 +1,80 @@
{% load static i18n cms_tags sekizai_tags %}
{% get_current_language as LANGUAGE_CODE %}
<!DOCTYPE html>
<html lang="{{LANGUAGE_CODE}}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="ungleich glarus ag">
<meta name="description" content="{% page_attribute 'meta_description' %}">
<title>{% page_attribute "page_title" %}</title>
<!-- Vendor CSS -->
<!-- Bootstrap Core CSS -->
<link href="{% static 'datacenterlight/css/bootstrap-3.3.7.min.css' %}" rel="stylesheet">
<!-- Icon Fonts -->
<link href="{% static 'datacenterlight/font-awesome/css/font-awesome.min.css' %}" rel="stylesheet" type="text/css">
<!-- Custom CSS -->
<link href="{% static 'datacenterlight/css/common.css' %}" rel="stylesheet">
<link href="{% static 'datacenterlight/css/landing-page.css' %}" rel="stylesheet">
<link href="{% static 'datacenterlight/css/header-slider.css' %}" rel="stylesheet">
{% if request.toolbar.edit_mode %}
<link href="{% static 'datacenterlight/css/cms.css' %}" rel="stylesheet">
{% endif %}
{% render_block "css" postprocessor "compressor.contrib.sekizai.compress" %}
{% render_block "js" postprocessor "compressor.contrib.sekizai.compress" %}
<!-- External Fonts -->
<link href="//fonts.googleapis.com/css?family=Lato:300,400,600,700" rel="stylesheet" type="text/css">
{% if request.current_page.cmsfaviconextension %}
<link rel="shortcut icon" href="{% static request.current_page.cmsfaviconextension.favicon.url %}" type="image/x-icon">
{% else %}
<link rel="shortcut icon" href="{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon">
{% endif %}
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- Google analytics -->
{% include "google_analytics.html" %}
<!-- End Google Analytics -->
</head>
<body>
{% cms_toolbar %}
{% placeholder 'datacenterlight_navbar' %}
{% placeholder 'Datacenterlight Header' or %}
<div class="dcl-header">
<div class="container">
<h1>{% page_attribute "page_title" %}</h1>
</div>
</div>
{% endplaceholder %}
{% url 'datacenterlight:index' as calculator_form_url %}
{% placeholder 'Datacenterlight Content' %}
{% placeholder 'datacenterlight_footer'%}
<!-- jQuery -->
<script src="{% static 'datacenterlight/js/jquery-2.2.4.min.js' %}"></script>
<!-- Bootstrap Core JavaScript -->
<script src="{% static 'datacenterlight/js/bootstrap-3.3.7.min.js' %}"></script>
<!-- Bootstrap Validator -->
<script src="//cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.9/validator.min.js"></script>
<!-- Custom JS -->
<script src="{% static 'datacenterlight/js/main.js' %}"></script>
</body>
</html>

View file

@ -0,0 +1,5 @@
<div class="price-calc-section">
<div class="card">
{% include "datacenterlight/includes/_calculator_form.html" with vm_pricing=instance.pricing %}
</div>
</div>

View file

@ -0,0 +1,43 @@
<div id="contact" class="full-contact-section">
<div class="intro-header-2 contact-section">
<div class="container">
<div class="row">
<div class="col-sm-6">
{% if instance.heading%}
<div class="title">
<h2>{{ instance.heading}}</h2>
</div>
{% endif %}
<div class="contact-details">
{% if instance.organization_name %}
<div class="subtitle">
<h3>{{ instance.organization_name }}</h3>
</div>
{% endif %}
<div class="description">
{% if instance.email %}
<p>{{ instance.email }}</p>
{% endif %}
{% if instance.address %}
<p>{{ instance.address }}</p>
{% endif %}
{% if instance.country %}
<p>{{ instance.country }}</p>
{% endif %}
</div>
</div>
<div class="social">
<a target="_blank" href="https://twitter.com/datacenterlight"><i class="fa fa-twitter fa-fw"></i></a>
<a target="_blank" href="https://github.com/ungleich"><i class="fa fa-github fa-fw"></i></a>
<a target="_blank" href="https://www.facebook.com/ungleich.ch/"><i class="fa fa-facebook"></i></a>
</div>
</div>
<div class="col-sm-6">
<div id="contact-form" class="contact-form">
{% include "datacenterlight/contact_form.html" with form_header=instance.form_header %}
</div>
</div>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,15 @@
{% load i18n cms_tags %}
<footer>
<div class="container">
<ul class="list-inline">
{% for plugin in instance.child_plugin_instances %}
<li>
{% render_plugin plugin %}
</li>
{% endfor %}
</ul>
<p class="copyright text-muted small">
Copyright &copy; {{ instance.copyright_label }} {% now "Y" %}. {% trans "All Rights Reserved" %}
</p>
</div>
</footer>

View file

@ -0,0 +1,21 @@
{% load cms_tags %}
{% if instance.heading %}
<div class="{% if not instance.plain_heading %}split-title{% else %}split-title-plain{% endif %}">
<h2>{{ instance.heading }}</h2>
</div>
{% endif %}
{% if instance.content %}
<div class="split-description">
<div class="lead">
{{ instance.content }}
</div>
</div>
{% endif %}
{% if children_to_content|length %}
<div class="split-subsection">
{% for plugin in children_to_content %}
{% render_plugin plugin %}
{% endfor %}
</div>
{% endif %}

View file

@ -0,0 +1,3 @@
<a class="dcl-link url {% if instance.separator %}dcl-link-separator{% endif %}" href="{{ instance.target }}" {% if instance.title %}title="{{ instance.title }}"{% endif %}>
{{ instance.text }}
</a>

View file

@ -0,0 +1,73 @@
{% load static i18n custom_tags cms_tags %}
{% get_current_language as LANGUAGE_CODE %}
<nav class="navbar navbar-default navbar-fixed-top topnav navbar-transparent">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#dcl-topnav">
<span class="sr-only">{% trans "Toggle navigation" %}</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
{% if instance.logo_dark or instance.logo_light %}
<a href="{{ instance.logo_url|default:'/' }}" id="logoBlack" class="navbar-brand"><img src="{{ instance.get_logo_dark }}"></a>
<a href="{{ instance.logo_url|default:'/' }}" id="logoWhite" class="navbar-brand"><img src="{{ instance.get_logo_light }}"></a>
{% else %}
<a href="/" id="logoBlack" class="navbar-brand"><img src="{% static 'datacenterlight/img/logo_black.svg' %}"></a>
<a href="/" id="logoWhite" class="navbar-brand"><img src="{% static 'datacenterlight/img/logo_white.svg' %}"></a>
{% endif %}
</div>
<div class="collapse navbar-collapse" id="dcl-topnav">
<!-- Start Navbar collapse-->
<ul class="nav navbar-nav navbar-right">
{% for plugin in instance.child_plugin_instances %}
<li>
{% render_plugin plugin %}
</li>
{% endfor %}
{% if instance.language_dropdown %}
<li>
{% if LANGUAGE_CODE == 'en-us'%}
<a class="on-hover-border" href="{% change_lang 'de' %}">Deutsch&nbsp;&nbsp;<i class="fa fa-globe" aria-hidden="true"></i></a>
{% else %}
<a class="on-hover-border" href="{% change_lang 'en-us' %}">English&nbsp;&nbsp;<i class="fa fa-globe" aria-hidden="true"></i></a>
{% endif %}
</li>
{% endif %}
{% if instance.show_login_option %}
{% if not request.user.is_authenticated %}
<li>
<a href="{% url 'hosting:login' %}">{% trans "Login" %}&nbsp;&nbsp;<span class="fa fa-sign-in"></span></a>
</li>
{% else %}
<li>
<a href="{% url 'hosting:dashboard' %}">{% trans "Dashboard" %}</a>
</li>
{% endif %}
{% endif %}
{% comment %}
<!-- to be used when more than one option for language -->
<li class="nav-language">
<div class="dropdown">
<div class="dropdown-toggle select-language" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
{% if LANGUAGE_CODE == 'en-us'%}
<span>English</span>
{% else %}
<span>Deutsch</span>
{% endif %}
<i class="fa fa-globe" aria-hidden="true"></i>
</div>
<ul class="dropdown-menu drop-language dropdown-menu-right">
{% if LANGUAGE_CODE == 'en-us'%}
<li><a class="url" href="{% change_lang 'de' %}">Deutsch</a></li>
{% else %}
<li><a class="url" href="{% change_lang 'en-us' %}">English</a></li>
{% endif %}
</ul>
</div>
</li>
{% endcomment %}
</ul>
</div>
</nav>

View file

@ -0,0 +1,10 @@
{% load cms_tags %}
<div class="dropdown highlights-dropdown">
<a class="dropdown-toggle url-init dcl-link" href="{{ instance.target|default:'#' }}" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{{ instance.text }}&nbsp;<span class="caret"></span></a>
<ul class="dropdown-menu">
{% for plugin in instance.child_plugin_instances %}
{% render_plugin plugin %}
{% endfor %}
</ul>
</div>

View file

@ -0,0 +1,31 @@
{% load cms_tags %}
<section class="split-section {{ instance.get_extra_classes }}" id="{{ instance.html_id }}">
<div class="container">
{% if children_to_side|length or children_calculator|length %}
<div class="row">
<div class="col-sm-6 {% if instance.text_direction == 'right' %}col-sm-push-6{% endif %} split-text">
{% include "datacenterlight/cms/includes/_section_split_content.html" %}
</div>
<div class="col-sm-6 {% if instance.text_direction == 'right' %}col-sm-pull-6{% endif %} split-figure">
{% if children_calculator|length %}
{% for plugin in children_calculator %}
{% render_plugin plugin %}
{% endfor %}
{% endif %}
{% if children_to_side %}
<div class="section-figure">
{% for plugin in children_to_side %}
{% render_plugin plugin %}
{% endfor %}
</div>
{% endif %}
</div>
</div>
{% else %}
<div class="space">
{% include "datacenterlight/cms/includes/_section_split_content.html" %}
</div>
{% endif %}
</div>
</section>

View file

@ -0,0 +1,3 @@
<div class="icon-section">
<i class="fa fa-{{ instance.fontawesome_icon_name }}" aria-hidden="true"></i>
</div>

View file

@ -0,0 +1,6 @@
<div class="section-image">
<img class="img-responsive" src="{{ instance.image.url }}" alt="image">
{% if instance.caption %}
<div class="section-image-caption">{{ instance.caption }}</div>
{% endif %}
</div>

View file

@ -0,0 +1,15 @@
{% load custom_tags %}
<section class="promo-section {{instance.get_extra_classes}}" {% if instance.background_image %}style="background-image:url({{ instance.background_image.url }})"{% endif %}>
<div class="container">
{% if instance.heading %}
<h3>{{instance.heading|escaped_line_break|linebreaksbr}}</h3>
{% endif %}
{% if instance.subheading %}
<h4>{{instance.subheading}}</h4>
{% endif %}
{% if instance.content %}
<p>{{instance.content}}</p>
{% endif %}
</div>
</section>

View file

@ -1,35 +0,0 @@
{% extends "datacenterlight/base.html" %}
{% load staticfiles cms_tags sekizai_tags %}
{% block title %}
{% page_attribute page_title %}
{% endblock %}
{% block content %}
{% addtoblock "css" %}
<link href="{% static 'datacenterlight/css/cms.css' %}" media="screen" rel="stylesheet" type="text/css"/>
{% endaddtoblock %}
<div class="dcl-cms_page-full-width">
<div class="dcl-cms_page-header">
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12">
<div class="single-heading">
<h2>{% page_attribute page_title %}</h2>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="split-section left" id="dcl-cms_page-text">
<div class="space">
<div class="container">
<div class="row">
<div class="col-md-12">
{% placeholder 'datacenterlight_cms_page_text' %}
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -13,16 +13,21 @@
<div class="row">
<div class="col-sm-offset-2 col-sm-10">
<div class="subtitle">
<h3>{% trans "Get in touch with us!" %}</h3>
{% if form_header %}
<h3>{{ form_header }}</h3>
{% else %}
<h3>{% trans "Get in touch with us!" %}</h3>
{% endif %}
</div>
</div>
</div>
<form class="form-horizontal ajax-form" method="POST" action="{% url 'datacenterlight:contact_us' %}" data-toggle="validator" data-response="#contact-form">
<form class="form-horizontal ajax-form" method="POST" action="{% url 'datacenterlight:contact_us' %}" data-toggle="validator" data-response="#contact-form" role="form">
{% csrf_token %}
<div class="form-group">
<label class="control-label col-sm-2" for="name">{% trans "Name" %}</label>
<div class="col-sm-10">
<input type="text" name="name" class="form-control" data-minlength="3" data-error="{% trans 'Please enter your name.' %}" required>
<div class="help-block with-errors"></div>
{{contact_form.name.errors}}
</div>
</div>
@ -30,6 +35,7 @@
<label class="control-label col-sm-2" for="email">{% trans "Email" %}</label>
<div class="col-sm-10">
<input name="email" type="email" pattern="^[^@\s]+@([^@\s]+\.)+[^@\s]+$" class="form-control" data-error="{% trans 'Please enter a valid email address.' %}" required>
<div class="help-block with-errors"></div>
{{contact_form.email.errors}}
</div>
</div>
@ -37,6 +43,7 @@
<label class="control-label col-sm-2" for="message">{% trans "Message" %}</label>
<div class="col-sm-10">
<textarea class="form-control" name="message" id="message" rows="6" required></textarea>
<div class="help-block with-errors"></div>
{{contact_form.message.errors}}
</div>
</div>

View file

@ -0,0 +1,105 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>ungleich</title>
<!-- Custom Fonts -->
<link href="//fonts.googleapis.com/css?family=Lato:300,400" rel="stylesheet" type="text/css">
<link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon" />
<style>
body {
color: #333;
font-family: Lato, sans-serif;
font-weight: 300;
font-size: 18px;
line-height: 1;
}
h1 {
padding-top: 4%;
font-weight: 300;
font-size: 48px;
text-align: center;
}
nav {
padding: 20px 15px;
}
.downtime-container {
max-width: 1200px;
margin: auto;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.downtime-msg {
text-align: center;
font-size: 26px;
}
.downtime-contact {
max-width: 300px;
margin: auto;
}
h2 {
font-weight: 300;
font-size: 22px;
text-align: center;
margin-bottom: 5px;
}
p {
margin: 15px auto
}
.xl_p {
margin: 15px auto;
}
a {
color: #333;
text-decoration: none;
}
a:hover, a:focus, a:active, a:active:focus {
color: #4a90e2;
}
</style>
</head>
<body>
<div class="downtime-container">
<nav class="navbar navbar-default topnav navbar-transparent" role="navigation">
<div class="container topnav">
<div class="navbar-header">
<a id="logoWhite" class="navbar-brand topnav" href="https://www.ungleich.ch/"><img src="https://www.ungleich.ch/static/datacenterlight/img/logo_black.svg"></a>
</div>
</div>
</nav>
<h1>You caught us while working!</h1>
<div class="downtime-msg">
<p class="xl_p">We're doing scheduled maintenance from</p>
<p class="xl_p">17:00 21.08.2017 to 23:00 21.08.2017 CEST.</p>
</div>
<h2>If you need immediate assistance, please contact us at</h2>
<div class="downtime-contact">
<p><a href="mailto:support@datacenterlight.ch">support@datacenterlight.ch</a></p>
<p>+41 044 534 66 22</p>
<p><a target="_blank" href="https://twitter.com/datacenterlight">twitter datacenterlight</a></p>
<p><a target="_blank" href="https://twitter.com/ungleich">twitter ungleich</a></p>
</div>
</div>
</body>
</html>

View file

@ -1,176 +0,0 @@
{% 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">&nbsp;
</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>

View file

@ -1,7 +0,0 @@
{% load static from staticfiles %}
{% load i18n %}
{% block email_head %}
{% endblock %}
{% block email_body %}
{% endblock %}
{% trans 'Your Data Center Light Team' %}

View file

@ -1,129 +0,0 @@
{% 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: '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: 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>
</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 5px 0px;" align="center">
{% trans "Thank you for your request." %}
</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 5px 20px;" align="center">
<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 "In the meantime, we would like to ask you a little patience<br/> until our team contacts you with beta access." %}<br/>
{% trans "Thank you!" %} </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">&nbsp;</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 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>
</tr></table>
</center>
</td>
</tr>
</table>
</body>
</html>

View file

@ -1,129 +0,0 @@
{% 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: '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">
{% trans "Thank you for your request." %}
</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>{% 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 "In the meantime, we would like to ask you a little patience<br/> until our team contacts you with beta access." %}<br/>
{% trans "Thank you!" %} </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">&nbsp;</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>

View file

@ -1,125 +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: 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>
</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 5px 0px;" align="center">
An user requested a beta access
</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 5px 20px;" align="center">
<p>User {{email}} requested beta access </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">&nbsp;</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 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>
</tr></table>
</center>
</td>
</tr>
</table>
</body>
</html>

View file

@ -1,125 +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">
An user requested a beta access
</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>User {{email}} requested beta access </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">&nbsp;</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>

View file

@ -1,131 +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: 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>
</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 5px 0px;" align="center">
An user requested a beta access
</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 5px 20px;" align="center">
<p>User {{email}} requested beta access </p>
{% for vm in vms %}
Type: {{vm.type}} - Amount: {{vm.amount}}
{% endfor %}
</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">&nbsp;</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 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>
</tr></table>
</center>
</td>
</tr>
</table>
</body>
</html>

View file

@ -1,131 +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">
An user requested a beta access
</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>User {{email}} requested beta access </p>
{% for vm in vms %}
Type: {{vm.type}}
{% endfor %}
</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">&nbsp;</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>

View file

@ -1,14 +1,59 @@
{% extends "datacenterlight/emails/base_email_datacenterlight.html" %}
{% load static from staticfiles %}
{% load i18n %}
{% block email_head %}
{{dcl_text}} {% trans 'Account Activation' %}
{% endblock %}
{% block email_body %}
{% blocktrans %}
You can activate your Data Center Light account by <a href="{{base_url}}{{activation_link}}">clicking here</a>.<br/>
You can also copy and paste the following link into the address bar of your browser<br/>
to activate your Data Center Light account.<br/>
{{base_url}}{{activation_link}}
{% endblocktrans %}
{% endblock %}
{% load static i18n %}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% trans "Data Center Light Account Activation" %}</title>
<link rel="shortcut icon" href="{{ base_url }}{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,400">
</head>
<body style="margin: 0; padding: 20px 0;">
<table style="width: 100%; border-spacing: 0; border-collapse: collapse; max-width: 560px;">
<tr>
<td>
<img src="{{ base_url }}{% static 'datacenterlight/img/datacenterlight.png' %}" style="max-width: 200px;">
</td>
</tr>
<tr>
<td style="padding-top: 15px;">
<h1 style="font-family: Lato, Arial, sans-serif; font-size: 25px; font-weight: 400; margin: 0;">{% trans "Data Center Light Account Activation" %}</h1>
</td>
</tr>
<tr>
<td style="padding-top: 25px; font-size: 16px;">
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin-bottom: 10px; margin-top: 0;">
{% blocktrans %}You can activate your Data Center Light account by clicking <a href="{{base_url}}{{activation_link}}" style="text-decoration: none; color: #4382c8; font-weight: 400;">here</a>.{% endblocktrans %}
</p>
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin-bottom: 10px; margin-top: 0;">
{% blocktrans %}You can also copy and paste the following link into the address bar of your browser to activate your Data Center Light account.{% endblocktrans %}
</p>
<p style="color: #4382c8; line-height: 1.4; font-family: Lato, Arial, sans-serif; font-weight: 300; margin: 0;">
{{base_url}}{{activation_link}}
</p>
{% if account_details %}
{% url 'hosting:reset_password' as reset_password_url %}
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin-bottom: 10px; margin-top: 10px;">
{% trans "Your account details are as follows" %}:
</p>
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin-bottom: 10px; margin-top: 0;">
{% trans "Username" %} : {% trans "Your email address" %}<br/>
{% trans "Password" %} : {{account_details}}
</p>
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin-bottom: 0; margin-top: 0;">
{% blocktrans %}You can reset your password <a href="{{base_url}}{{reset_password_url}}" style="text-decoration: none; color: #4382c8; font-weight: 400;">here</a>.{% endblocktrans %}
</p>
{% endif %}
</td>
</tr>
<tr>
<td style="padding-top: 40px; padding-bottom: 25px;">
<h3 style="font-family: Lato, Arial, sans-serif; margin: 0; font-weight: 400; font-size: 15px;">{% trans "Your Data Center Light Team" %}</h3>
</td>
</tr>
</table>
</body>
</html>

View file

@ -1,10 +1,20 @@
{% extends "datacenterlight/emails/base_email_datacenterlight.txt" %}
{% load i18n %}
{% block email_head %}{{dcl_text}} {% trans 'Account Activation' %}{% endblock %}
{% block email_body %}
{% blocktrans %}You can activate your Data Center Light account by clicking here.
You can also copy and paste the following link into the address bar of your browser
to activate your Data Center Light account.
{% trans "Data Center Light Account Activation" %}
{% blocktrans %}You can copy and paste the following link into the address bar of your browser to activate your Data Center Light account.{% endblocktrans %}
{{base_url}}{{activation_link}}
{% endblocktrans %}
{% endblock %}
{% if account_details %}
{% url 'hosting:reset_password' as reset_password_url %}
{% trans "Your account details are as follows" %}:
{% trans "Username" %} : {% trans "Your email address" %}
{% trans "Password" %} : {{account_details}}
{% trans "You can reset your password here" %}:
{{base_url}}{{reset_password_url}}
{% endif %}
{% trans "Your Data Center Light Team" %}

View file

@ -0,0 +1,48 @@
{% load static i18n %}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% trans "Welcome to Data Center Light!" %}</title>
<link rel="shortcut icon" href="{{ base_url }}{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,400">
</head>
<body style="margin: 0; padding: 20px 0;">
<table style="width: 100%; border-spacing: 0; border-collapse: collapse; max-width: 560px;">
<tr>
<td>
<img src="{{ base_url }}{% static 'datacenterlight/img/datacenterlight.png' %}" style="max-width: 200px;">
</td>
</tr>
<tr>
<td style="padding-top: 15px;">
<h1 style="font-family: Lato, Arial, sans-serif; font-size: 25px; font-weight: 400; margin: 0;">{% trans "Welcome to Data Center Light!" %}</h1>
</td>
</tr>
<tr>
<td style="padding-top: 25px; font-size: 16px;">
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin: 0;">
{% blocktrans %}Thanks for joining us! We provide the most affordable virtual machines from the heart of Switzerland.{% endblocktrans %}
</p>
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin: 0;">
{% blocktrans %}Try now, order a VM. VM price starts from only 15CHF per month.{% endblocktrans %}
</p>
</td>
</tr>
<tr>
<td style="padding-top: 30px;">
<a class="btn" href="{{ base_url }}{% url 'hosting:create_virtual_machine' %}" style="font-family: Lato, Arial, sans-serif; text-decoration: none; background-color: #1596da; color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 30px; padding-right: 30px; letter-spacing: 0.5px; border-radius: 3px; display: inline-block;">{% trans "ORDER VM" %}</a>
</td>
</tr>
<tr>
<td style="padding-top: 40px; padding-bottom: 25px;">
<h3 style="font-family: Lato, Arial, sans-serif; margin: 0; font-weight: 400; font-size: 15px;">{% trans "Your Data Center Light Team" %}</h3>
</td>
</tr>
</table>
</body>
</html>

View file

@ -0,0 +1,10 @@
{% load i18n %}
{% trans "Welcome to Data Center Light!" %}
{% blocktrans %}Thanks for joining us! We provide the most affordable virtual machines from the heart of Switzerland.{% endblocktrans %}
{% blocktrans %}Try now, order a VM. VM price starts from only 15CHF per month.{% endblocktrans %}
{{ base_url }}{% url 'hosting:create_virtual_machine' %}
{% trans "Your Data Center Light Team" %}

View file

@ -1,14 +1,35 @@
{% load staticfiles i18n%}
<form id="order_form" method="POST" action="" data-toggle="validator" role="form">
{% if vm_pricing %}
<script type="application/javascript">
window.vat_inclusive = {% if vm_pricing.vat_inclusive %}true{% else %}false{% endif%};
window.vat_percentage = {{vm_pricing.vat_percentage|default:0}};
window.coresUnitPrice = {{vm_pricing.cores_unit_price|default:0}};
window.ramUnitPrice = {{vm_pricing.ram_unit_price|default:0}};
window.ssdUnitPrice = {{vm_pricing.ssd_unit_price|default:0}};
window.hddUnitPrice = {{vm_pricing.hdd_unit_price|default:0}};
window.discountAmount = {{vm_pricing.discount_amount|default:0}};
window.minRam = {{min_ram}};
window.minRamErr = '{% blocktrans with min_ram=min_ram %}Please enter a value in range {{min_ram}} - 200.{% endblocktrans %}';
</script>
{% endif %}
<form id="order_form" method="POST" action="{{calculator_form_url}}" data-toggle="validator" role="form">
{% csrf_token %}
<input type="hidden" name="pid" value="{{instance.id}}">
<div class="title">
<h3>{% trans "VM hosting" %} </h3>
</div>
<div class="price">
<span id="total">15</span>
<span id="total"></span>
<span>CHF/{% trans "month" %}</span>
<div class="price-text">
<p>{% trans "VAT included" %}</p>
<p>
{% if vm_pricing.vat_inclusive %}{% trans "VAT included" %} <br>{% endif %}
{% if vm_pricing.discount_amount %}
{% trans "You save" %} {{ vm_pricing.discount_amount }} CHF
{% endif %}
</p>
</div>
</div>
<div class="descriptions">
@ -26,9 +47,9 @@
<div class="help-block with-errors">
{% for message in messages %}
{% if 'cores' in message.tags %}
<ul class="list-unstyled"><li>
{{ message|safe }}
</li></ul>
<ul class="list-unstyled">
<li>{{ message|safe }}</li>
</ul>
{% endif %}
{% endfor %}
</div>
@ -36,8 +57,8 @@
<div class="form-group">
<div class="description input">
<i class="fa fa-minus-circle left" data-minus="ram" aria-hidden="true"></i>
<input id="ramValue" class="input-price select-number" type="number" min="2" max="200" name="ram"
data-error="{% trans 'Please enter a value in range 2 - 200.' %}" required>
<input id="ramValue" class="input-price select-number" type="number" min="{% if min_ram == 0.5 %}0{% else %}1{% endif %}" max="200" name="ram"
data-error="{% blocktrans with min_ram=min_ram %}Please enter a value in range {{min_ram}} - 200.{% endblocktrans %}" required step="1">
<span> GB RAM</span>
<i class="fa fa-plus-circle right" data-plus="ram" aria-hidden="true"></i>
</div>
@ -71,53 +92,14 @@
</div>
<div class="description select-configuration input form-group justify-center">
<label for="config">OS</label>
<select name="config" id="">
<select name="config">
{% for template in templates %}
<option value="{{template.opennebula_vm_template_id}}">{{template.name}}</option>
<option value="{{template.opennebula_vm_template_id}}" {% if template.name|lower == instance.default_selected_template|lower %}selected="selected"{% endif %}>{{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="form-group">
<div class="description input justify-center">
<label for="name" class="control-label">{% trans "Name"%}</label>
<input type="text" name="name" class="form-control" placeholder="{% trans 'Your Name'%}"
data-minlength="3" data-error="{% trans 'Please enter your name.' %}" required>
</div>
<div class="help-block with-errors">
{% for message in messages %}
{% if 'name' in message.tags %}
<ul class="list-unstyled">
<li>
{{ message|safe }}
</li>
</ul>
{% endif %}
{% endfor %}
</div>
</div>
<div class="form-group">
<div class="description input justify-center">
<label for="email" class="control-label">{% trans "Email"%}</label>
<input name="email" type="email" pattern="^[^@\s]+@([^@\s]+\.)+[^@\s]+$" class="form-control"
placeholder="{% trans 'Your Email' %}"
data-error="{% trans 'Please enter a valid email address.' %}" required>
</div>
<div class="help-block with-errors">
{% for message in messages %}
{% if 'email' in message.tags %}
<ul class="list-unstyled">
<li>
{{ message|safe }}
</li>
</ul>
{% endif %}
{% endfor %}
</div>
</div>
</div>
<input type="hidden" name="pricing_name" value="{% if vm_pricing.name %}{{vm_pricing.name}}{% else %}unknown{% endif%}"></input>
<input type="submit" class="btn btn-primary disabled" value="{% trans 'Continue' %}"></input>
</form>

View file

@ -1,38 +1,21 @@
{% load staticfiles i18n%}
{% get_current_language as LANGUAGE_CODE %}
<footer>
<div class="container">
<ul class="list-inline">
{% if request.resolver_match.url_name != "index" %}
<li>
<a href="{% url 'datacenterlight:index' %}">{% trans "Home" %}</a>
</li>
<li class="footer-menu-divider">&sdot;</li>
{% endif %}
<li>
<a class="url-init" href="{% url 'datacenterlight:index' %}#how">{% trans "Highlights" %}</a>
</li>
<li>
<a class="url-init" href="{% url 'datacenterlight:index' %}#your">{% trans "Scale out" %}</a>
</li>
<li>
<a class="url-init" href="{% url 'datacenterlight:index' %}#our">{% trans "Reliable and light" %}</a>
</li>
{% if request.resolver_match.url_name != "index" %}
<li>
<a class="url-init" href="{% url 'datacenterlight:index' %}#price">{% trans "Pricing" %}</a>
</li>
<li class="footer-menu-divider">&sdot;</li>
{% else %}
<li>
<a class="url-init" href="{% url 'datacenterlight:index' %}#price">{% trans "Order VM" %}</a>
</li>
{% endif %}
<li>
<a class="url-init" href="{% url 'datacenterlight:index' %}#contact">{% trans "Contact" %}</a>
</li>
</ul>
{% load i18n %}
<p class="copyright text-muted small">Copyright &copy; ungleich GmbH {% now "Y" %}. {% trans "All Rights Reserved" %}</p>
</div>
</footer>
<footer>
<div class="container">
<ul class="list-inline">
<li>
<a class="url-init" href="https://{{MULTISITE_CMS_FALLBACK}}">{% trans "Home" %}</a>
</li>
<li class="footer-menu-divider">&sdot;</li>
<li>
<a class="url-init" href="https://{{MULTISITE_CMS_FALLBACK}}#contact">{% trans "Contact" %}</a>
</li>
<li class="footer-menu-divider">&sdot;</li>
<li>
<a class="url-init" href="https://{{MULTISITE_CMS_FALLBACK}}/cms/terms-of-service">{% trans "Terms of Service" %}</a>
</li>
</ul>
<p class="copyright text-muted small">Copyright &copy; ungleich glarus ag {% now "Y" %}. {% trans "All Rights Reserved" %}</p>
</div>
</footer>

View file

@ -1,71 +1,59 @@
{% load staticfiles i18n%}
{% load custom_tags %}
{% load staticfiles i18n custom_tags %}
{% get_current_language as LANGUAGE_CODE %}
<nav class="navbar navbar-default navbar-fixed-top topnav">
<div class="topnav">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">{% trans "Toggle navigation" %}</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="{% url 'datacenterlight:index' %}" id="logoBlack" class="navbar-brand topnav"><img src="{% static 'datacenterlight/img/logo_black.svg' %}"></a>
<a href="{% url 'datacenterlight:index' %}" id="logoWhite" class="navbar-brand topnav"><img src="{% static 'datacenterlight/img/logo_white.svg' %}"></a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<!-- Start Navbar collapse-->
<ul class="nav navbar-nav navbar-right">
<li class="dropdown highlights-dropdown">
<a class="dropdown-toggle url-init" href="{% url 'datacenterlight:index' %}#how" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% trans "Highlights" %}&nbsp;<span class="caret"></span></a>
<ul class="dropdown-menu ">
<li><a class="url-init" href="{% url 'datacenterlight:index' %}#your">{% trans "Scale out" %}</a></li>
<li><a class="url-init" href="{% url 'datacenterlight:index' %}#our">{% trans "Reliable and light" %}</a></li>
<li> <a class="url-init" href="{% url 'datacenterlight:index' %}#price">{% trans "Order VM" %}</a></li>
</ul>
</li>
<nav class="navbar navbar-default navbar-fixed-top topnav navbar-transparent">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">{% trans "Toggle navigation" %}</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="{% url 'datacenterlight:index' %}" id="logoBlack" class="navbar-brand topnav"><img src="{% static 'datacenterlight/img/logo_black.svg' %}"></a>
<a href="{% url 'datacenterlight:index' %}" id="logoWhite" class="navbar-brand topnav"><img src="{% static 'datacenterlight/img/logo_white.svg' %}"></a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<!-- Start Navbar collapse-->
<ul class="nav navbar-nav navbar-right">
<li>
<a class="url-init" href="https://datacenterlight.ch/en-us/cms/datacenterlight/#contact">{% trans "Contact" %}</a>
</li>
<li>
{% if LANGUAGE_CODE == 'en-us'%}
<a class="on-hover-border" href="{% change_lang 'de' %}">Deutsch&nbsp;&nbsp;<i class="fa fa-globe" aria-hidden="true"></i></a> {% else %}
<a class="on-hover-border" href="{% change_lang 'en-us' %}">English&nbsp;&nbsp;<i class="fa fa-globe" aria-hidden="true"></i></a> {% endif %}
</li>
{% if not request.user.is_authenticated %}
<li>
<a href="{% url 'datacenterlight:whydatacenterlight' %}">{% trans "Why Data Center Light?" %}</a>
<a href="{% url 'hosting:login' %}">{% trans "Login" %}&nbsp;&nbsp;<span class="fa fa-sign-in"></span></a>
</li>
{% else %}
<li>
<a class="url-init" href="{% url 'datacenterlight:index' %}#contact">{% trans "Contact" %}</a>
<a href="{% url 'hosting:dashboard' %}">{% trans "Dashboard" %}</a>
</li>
<li>
{% if LANGUAGE_CODE == 'en-us'%}
<a class="on-hover-border" href="{% change_lang 'de' %}">Deutsch&nbsp;&nbsp;<i class="fa fa-globe" aria-hidden="true"></i></a> {% else %}
<a class="on-hover-border" href="{% change_lang 'en-us' %}">English&nbsp;&nbsp;<i class="fa fa-globe" aria-hidden="true"></i></a> {% endif %}
</li>
{% if not request.user.is_authenticated %}
<li>
<a href="{% url 'hosting:login' %}">{% trans "Login" %}&nbsp;&nbsp;<span class="fa fa-sign-in"></span></a>
</li>
{% else %}
<li>
<a href="{% url 'hosting:dashboard' %}">{% trans "Dashboard" %}</a>
</li>
{% endif %}
{% comment %}
<!-- to be used when more than one option for language -->
<li class="nav-language">
<div class="dropdown">
<div class="dropdown-toggle select-language" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
{% if LANGUAGE_CODE == 'en-us'%}
<span>English</span> {% else %}
<span>Deutsch</span> {% endif %}
<i class="fa fa-globe" aria-hidden="true"></i>
</div>
<ul class="dropdown-menu drop-language dropdown-menu-right">
{% if LANGUAGE_CODE == 'en-us'%}
<li><a class="url" href="{% change_lang 'de' %}">Deutsch</a></li>
{% else %}
<li><a class="url" href="{% change_lang 'en-us' %}">English</a></li>
{% endif %}
</ul>
{% endif %}
{% comment %}
<!-- to be used when more than one option for language -->
<li class="nav-language">
<div class="dropdown">
<div class="dropdown-toggle select-language" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
{% if LANGUAGE_CODE == 'en-us'%}
<span>English</span> {% else %}
<span>Deutsch</span> {% endif %}
<i class="fa fa-globe" aria-hidden="true"></i>
</div>
</li>
{% endcomment %}
</ul>
<!-- /.navbar-collapse -->
</div>
<ul class="dropdown-menu drop-language dropdown-menu-right">
{% if LANGUAGE_CODE == 'en-us'%}
<li><a class="url" href="{% change_lang 'de' %}">Deutsch</a></li>
{% else %}
<li><a class="url" href="{% change_lang 'en-us' %}">English</a></li>
{% endif %}
</ul>
</div>
</li>
{% endcomment %}
</ul>
<!-- /.navbar-collapse -->
</div>
</nav>

View file

@ -6,41 +6,31 @@
<!-- Header -->
<div class="intro-header" id="home">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="intro-message">
<h1>Data Center Light</h1>
<h3>{% trans "Finally, an affordable VM hosting in Switzerland!" %}</h3>
<hr class="intro-divider">
<ul class="list-inline intro-social-buttons">
<li>
<a class="btn btn-default btn-lg btn-transparent url" href="#how"><i class="#Services"></i> <span class="network-name">{% trans "Highlights" %}</span></a>
</li>
<li>
<a class="btn btn-primary btn-lg page-scroll url" href="#price"><span class="network-name">{% trans "I want it!" %}</span></a>
</li>
</ul>
</div>
</div>
<div class="intro-message">
<h1>Data Center Light</h1>
<h3>{% trans "Finally, an affordable VM hosting in Switzerland!" %}</h3>
<hr class="intro-divider">
<ul class="list-inline intro-social-buttons">
<li>
<a class="btn btn-default btn-lg btn-transparent url" href="#how"><span class="network-name">{% trans "Highlights" %}</span></a>
</li>
<li>
<a class="btn btn-primary btn-lg page-scroll url" href="#price"><span class="network-name">{% trans "I want it!" %}</span></a>
</li>
</ul>
</div>
</div>
<!-- /.container -->
</div>
<!-- /.intro-header -->
<!-- Page Content -->
<div class="split-section right" id="how">
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-6 col-md-6 icon-section">
<div class="col-sm-6 icon-section">
<i class="fa fa-cogs" aria-hidden="true"></i>
</div>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="col-sm-6">
<div class="split-text">
<div class="split-title">
<h2>{% trans "Highlights" %}</h2>
@ -65,91 +55,79 @@
<p class="lead">{% trans "Cuts down the costs for you by using FOSS (Free Open Source Software) exclusively, wherefore we can save money from paying licenses." %}</p>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<!-- /.container -->
<!-- /.option 1 -->
</div>
<div class="split-section left" id="your">
<div class="split-section left section-gradient" id="your">
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="col-sm-6">
<div class="split-text">
<div class="split-title">
<h2>{% trans "Scale out" %}</h2>
</div>
<div class="split-description">
<p class="lead">{% trans "We don't use special hardware. We use commodity hardware: we buy computers that you buy. Just many more and put them in a cozy home for computers called data center." %}</p>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 icon-section">
<div class="col-sm-6 icon-section">
<i class="fa fa-rocket" aria-hidden="true"></i>
</div>
</div>
</div>
<!-- /.container -->
<!-- /.option 1 -->
</div>
<div class="split-section right" id="our">
<div class="split-section right" id="our">
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-6 col-md-6 icon-section">
<div class="col-sm-6 icon-section">
<i class="fa fa-handshake-o" aria-hidden="true"></i>
</div>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="col-sm-6">
<div class="split-text">
<div class="split-title">
<h2>{% trans "Reliable and light" %}</h2>
</div>
<div class="split-description">
<p class="lead">{% trans "Our VMs are located in Switzerland, with reliable power supply and fast internet connection. Our VM costs less thanks to our featherlight infrastructure." %}</p>
</div>
</div>
</div>
</div>
</div>
<!-- /.container -->
<!-- /.option 1 -->
</div>
<!-- /.content-section-b -->
<div class="content-section-a pricing-section" id="price">
<div class="split-section pricing-section section-gradient" id="price">
<div class="container">
<!-- Page Features -->
<div class="row text-center">
<div class="col-xs-12 col-md-6 text">
<h2 class="section-heading">{% trans "Simple and affordable: Try our virtual machine with featherlight price." %}</h2>
<p class="lead new-lead">{% trans "Affordable VM hosting based in Switzerland" %}</p>
<div class="row">
<div class="col-md-6">
<div class="split-text">
<div class="split-title">
<h2>{% trans "Simple and affordable: Try our virtual machine with featherlight price." %}</h2>
</div>
<div class="split-description">
<div class="lead">
<p>{% blocktrans %}Ready in 30 seconds.<br/>Experience the unbeatable speed from Data Center Light.{% endblocktrans %}</p>
</div>
</div>
</div>
</div>
<div class="col-xs-12 col-md-6 hero-feature">
<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">
{% include "datacenterlight/calculator_form.html" %}
</div>
<div class="col-md-6">
<div class="price-calc-section">
<div class="card">
{% include "datacenterlight/includes/_calculator_form.html" %}
</div>
</div>
</div>
</div>
</div>
</div>
<!-- / contact section -->
<div class="full-contact-section">
<div class="intro-header-2 contact-section" id="contact">
<div class="container">
@ -160,18 +138,18 @@
</div>
<div class="contact-details">
<div class="subtitle">
<h3>ungleich GmbH</h3>
<h3>ungleich glarus ag</h3>
</div>
<div class="description">
<p>info@datacenterlight.ch</p>
<p>In der Au 7, Schwanden 8762</p>
<p>Bahnhofstrasse 1, 8783 Linthal</p>
<p>{% trans "Switzerland " %}</p>
</div>
</div>
<div class="social">
<a target="_blank" class="" href="https://twitter.com/datacenterlight"><i class="fa fa-twitter fa-fw"></i></a>
<a target="_blank" class="" href="https://github.com/ungleich"><i class="fa fa-github fa-fw"></i></a>
<a target="_blank" class="" href="https://www.facebook.com/ungleich.ch/"><i class="fa fa-facebook"></i></a>
<a target="_blank" href="https://twitter.com/datacenterlight"><i class="fa fa-twitter fa-fw"></i></a>
<a target="_blank" href="https://github.com/ungleich"><i class="fa fa-github fa-fw"></i></a>
<a target="_blank" href="https://www.facebook.com/ungleich.ch/"><i class="fa fa-facebook"></i></a>
</div>
</div>
<div class="col-sm-6">
@ -180,10 +158,8 @@
</div>
</div>
</div>
</div>
</div>
</div>
<!-- /.banner -->
{% endblock %}

View file

@ -1,5 +1,9 @@
{% extends "hosting/base_short.html" %}
{% load staticfiles bootstrap3 i18n %}
{% extends "datacenterlight/base_hosting.html" %}
{% load staticfiles bootstrap3 i18n cms_tags humanize %}
{% block css_extra %}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/paymentfont/1.1.2/css/paymentfont.min.css"/>
{% endblock css_extra %}
{% block navbar %}
{% include "datacenterlight/includes/_navbar.html" %}
@ -7,185 +11,158 @@
{% block content %}
<!-- Credit card form -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/paymentfont/1.1.2/css/paymentfont.min.css"/>
<div class="dcl-order-container">
<div class="payment-container">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 dcl-order-sec">
<h3><strong>{%trans "Your Order" %}</strong></h3>
<div class="col-xs-6 col-sm-12 col-md-12 col-lg-12 dcl-order-table-header">
<div class="col-xs-12 col-sm-2 col-md-1 col-lg-1 tbl-header">
{%trans "Cores" %}
</div>
<div class="col-xs-12 col-sm-3 col-md-4 col-lg-4 tbl-header">
{%trans "Memory" %}
</div>
<div class="col-xs-12 col-sm-3 col-md-3 col-lg-3 tbl-header">
{%trans "Disk space" %}
</div>
<div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 tbl-header">
{%trans "Configuration" %}
</div>
</div>
<div class="col-xs-6 col-sm-12 col-md-12 col-lg-12 dcl-order-table-content">
<div class="col-xs-12 col-sm-2 col-md-1 col-lg-1 tbl-content">
{{request.session.specs.cpu|floatformat}}
</div>
<div class="col-xs-12 col-sm-3 col-md-4 col-lg-4 tbl-content">
{{request.session.specs.memory|floatformat}} GB
</div>
<div class="col-xs-12 col-sm-3 col-md-3 col-lg-3 tbl-content">
{{request.session.specs.disk_size|floatformat}} GB
</div>
<div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 tbl-content">
{{request.session.template.name}}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 dcl-order-table-total">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 tbl-tot tbl-no-padding">
{%trans "Total" %} <span>{%trans "including VAT" %}</span>
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 tbl-no-padding">
<div class="col-xs-12 col-sm-4 col-md-4 col-lg-4"></div>
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6 tbl-total">{{request.session.specs.price}}
CHF<span class="dcl-price-month">/{% trans "Month" %}</span>
<div class="dcl-payment-grid">
<div class="dcl-payment-box">
<div class="dcl-payment-section">
{% if request.user.is_authenticated %}
<div class="dcl-payment-user">
<h4>{% trans "Welcome back" %} {{request.user.name}}!</h4>
<p>{% trans "Review your billing address and card details and proceed to make payment." %}</p>
</div>
</div>
{% else %}
<h3>{%trans "Log in" %}</h3>
<hr class="top-hr">
<p style="margin-bottom: 20px;">{% blocktrans %}Already signed up?<br>By logging in you can retrieve saved billing information.{% endblocktrans %}</p>
<form role="form" id="login-form" method="post" action="" novalidate>
{% for field in login_form %}
{% csrf_token %}
{% bootstrap_field field show_label=False type='fields'%}
{% endfor %}
<p class="text-danger">{{login_form.non_field_errors|striptags}}</p>
<input type='hidden' name='next' value='{{request.path}}'/>
<div class="form-group text-right">
<button type="submit" class="btn btn-wide btn-vm-contact" name="login_form">{% trans "LOGIN" %}</button>
</div>
</form>
<p>
{% trans "Don't have an account yet?" %}<br>
{% trans "You can sign up by filling in the information below." %}<br>
<a href="{% url 'hosting:reset_password' %}" target="_blank">{% trans "Forgot password?" %}</a> or <a href="{% url 'hosting:resend_activation_link' %}" target="_blank">{% trans "Resend activation link" %}?</a>
</p>
{% endif %}
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 dcl-billing-sec">
<div class="col-xs-12 col-sm-5 col-md-6 billing dcl-billing">
<h3><b>{%trans "Billing Address"%}</b></h3>
<hr>
<div class="dcl-payment-box">
<div class="dcl-payment-section">
{% if not request.user.is_authenticated %}
<h3><b>{%trans "Sign up"%}</b></h3>
{% else %}
<h3><b>{%trans "Billing Address"%}</b></h3>
{% endif %}
<hr class="top-hr">
{% for message in messages %}
{% if 'duplicate_email' in message.tags %}
<p class="text-danger">{{message}}</p>
{% endif %}
{% endfor %}
<form role="form" id="billing-form" method="post" action="" novalidate>
{% for field in form %}
{% csrf_token %}
{% for field in billing_address_form %}
{% bootstrap_field field show_label=False type='fields'%}
{% endfor %}
</form>
</div>
<div class="col-xs-12 col-sm-7 col-md-6 creditcard-box dcl-creditcard">
<h3><b>{%trans "Credit Card"%}</b></h3>
<hr>
<div>
<div>
</div>
<div class="dcl-payment-box">
<div class="dcl-payment-section">
{% if generic_payment_form %}
<h3>{%trans "Make a payment" %}</h3>
<hr class="top-hr">
<form role="form" id="generic-payment-form" method="post" action="" novalidate>
{% csrf_token %}
<input type="hidden" name="product" value="1" />
{% for field in generic_payment_form %}
{% bootstrap_field field type='fields'%}
{% endfor %}
<p class="text-danger">{{generic_payment_form.non_field_errors|striptags}}</p>
</form>
{% else %}
<h3>{%trans "Your Order" %}</h3>
<hr class="top-hr">
<div class="dcl-payment-order">
<p>{% trans "Cores"%} <strong class="pull-right">{{request.session.specs.cpu|floatformat}}</strong></p>
<hr>
<p>{% trans "Memory"%} <strong class="pull-right">{{request.session.specs.memory|floatformat}} GB</strong></p>
<hr>
<p>{% trans "Disk space"%} <strong class="pull-right">{{request.session.specs.disk_size|floatformat}} GB</strong></p>
<hr>
<p>{% trans "Configuration"%} <strong class="pull-right">{{request.session.template.name}}</strong></p>
<hr>
<p>
{% blocktrans %}
Please fill in your credit card information below. We are using <a
href="https://stripe.com" target="_blank">Stripe</a> for payment and do not store
your information in our database.
{% endblocktrans %}
<strong>{%trans "Total" %}</strong>&nbsp;&nbsp;
<small>
({% if vm_pricing.vat_inclusive %}{%trans "including VAT" %}{% else %}{%trans "excluding VAT" %}{% endif %})
</small>
<strong class="pull-right">{{request.session.specs.price|intcomma}} CHF/{% trans "Month" %}</strong>
</p>
<hr>
{% if vm_pricing.discount_amount %}
<p class="mb-0">
{%trans "Discount" as discount_name %}
<strong>{{ vm_pricing.discount_name|default:discount_name }}</strong>&nbsp;&nbsp;
<strong class="pull-right text-primary">- {{ vm_pricing.discount_amount }} CHF/{% trans "Month" %}</strong>
</p>
<p>
({% trans "Will be applied at checkout" %})
</p>
{% endif %}
</div>
<br>
{% endif %}
</div>
</div>
<div class="dcl-payment-box">
<div class="dcl-payment-section">
{% with card_list_len=cards_list|length %}
<h3><b>{%trans "Credit Card"%}</b></h3>
<hr class="top-hr">
<p>
{% if card_list_len > 0 %}
{% blocktrans %}Please select one of the cards that you used before or fill in your credit card information below. We are using <a href="https://stripe.com" target="_blank">Stripe</a> for payment and do not store your information in our database.{% endblocktrans %}
{% else %}
{% blocktrans %}Please fill in your credit card information below. We are using <a href="https://stripe.com" target="_blank">Stripe</a> for payment and do not store your information in our database.{% endblocktrans %}
{% endif %}
</p>
<div>
{% if credit_card_data.last4 %}
<form role="form" id="payment-form-with-creditcard" novalidate>
<h5 class="billing-head">Credit Card</h5>
<h5 class="membership-lead">Last 4: *****{{credit_card_data.last4}}</h5>
<h5 class="membership-lead">Type: {{credit_card_data.cc_brand}}</h5>
<input type="hidden" name="credit_card_needed" value="false"/>
</form>
<div class="row">
<div class="col-xs-12">
{% if not messages and not form.non_field_errors %}
<p class="card-warning-content card-warning-addtional-margin">
{% trans "You are not making any payment yet. After submitting your card information, you will be taken to the Confirm Order Page." %}
</p>
{% endif %}
<div id='payment_error'>
{% for message in messages %}
{% if 'failed_payment' or 'make_charge_error' in message.tags %}
<ul class="list-unstyled"><li>
<p class="card-warning-content card-warning-error">{{ message|safe }}</p>
</li></ul>
{% endif %}
{% endfor %}
{% for error in form.non_field_errors %}
<p class="card-warning-content card-warning-error">
{{ error|escape }}
</p>
{% endfor %}
</div>
{% for card in cards_list %}
<div class="credit-card-info">
<div class="col-xs-6 no-padding">
<h5 class="billing-head">{% trans "Credit Card" %}</h5>
<h5 class="membership-lead">{% trans "Last" %} 4: ***** {{card.last4}}</h5>
<h5 class="membership-lead">{% trans "Type" %}: {{card.brand}}</h5>
</div>
<div class="col-xs-12">
<div class="col-xs-6 pull-right">
<button id="payment_button_with_creditcard" class="btn btn-success stripe-payment-btn"
type="submit">
{%trans "Submit" %}
</button>
<div class="col-xs-6 text-right align-bottom">
<a class="btn choice-btn choice-btn-faded" href="#" data-id_card="{{card.id}}">{% trans "SELECT" %}</a>
</div>
</div>
</div>
{% else %}
<form action="" id="payment-form-new" method="POST">
<input type="hidden" name="token"/>
<div class="group">
<div class="col-xs-12 col-sm-12 col-md-10 col-lg-9 credit-card-goup">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 card-element card-number-element">
<label>{%trans "Card Number" %}</label>
<div id="card-number-element" class="field my-input"></div>
</div>
<div class="col-xs-5 col-sm-3 col-md-3 col-lg-3 card-element card-expiry-element">
<label>{%trans "Expiry Date" %}</label>
<div id="card-expiry-element" class="field my-input"></div>
</div>
<div class="col-xs-12 col-sm-2 col-md-6 col-lg-7 hide-mobile"></div>
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-2 card-element card-cvc-element">
<label>{%trans "CVC" %}</label>
<div id="card-cvc-element" class="field my-input"></div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 card-element brand">
<label>{%trans "Card Type" %}</label>
<i class="pf pf-credit-card" id="brand-icon"></i>
</div>
</div>
</div>
<div id="card-errors" role="alert"></div>
<div class="row">
<div class="col-xs-12">
{% if not messages and not form.non_field_errors %}
<p class="card-warning-content">
{% trans "You are not making any payment yet. After submitting your card information, you will be taken to the Confirm Order Page." %}
</p>
{% endif %}
<div id='payment_error'>
{% for message in messages %}
{% if 'failed_payment' or 'make_charge_error' in message.tags %}
<ul class="list-unstyled"><li>
<p class="card-warning-content card-warning-error">{{ message|safe }}</p>
</li></ul>
{% endif %}
{% endfor %}
{% for error in form.non_field_errors %}
<p class="card-warning-content card-warning-error">
{{ error|escape }}
</p>
{% endfor %}
{% endfor %}
{% if card_list_len > 0 %}
<div class="new-card-head">
<div class="row">
<div class="col-xs-6">
<h4>{% trans "Add a new credit card" %}</h4>
</div>
</div>
<div class="col-xs-12">
<div class="col-xs-6 pull-right">
<button class="btn btn-success stripe-payment-btn" type="submit">{%trans "Submit" %}
<div class="col-xs-6 text-right new-card-button-margin">
<button data-toggle="collapse" data-target="#newcard" class="btn choice-btn">
<span class="fa fa-plus"></span>&nbsp;&nbsp;{% trans "NEW CARD" %}
</button>
</div>
</div>
</div>
<div class="row" style="display:none;">
<div class="col-xs-12">
<p class="payment-errors"></p>
<div id="newcard" class="collapse">
<hr class="thick-hr">
<div class="card-details-box">
<h3>{%trans "New Credit Card" %}</h3>
<hr>
{% include "hosting/includes/_card_input.html" %}
</div>
</div>
</form>
{% else%}
{% include "hosting/includes/_card_input.html" %}
{% endif %}
</div>
</div>
{% endwith %}
</div>
</div>
</div>
@ -205,13 +182,4 @@
})();
</script>
{%endif%}
{% if credit_card_data.last4 and credit_card_data.cc_brand %}
<script type="text/javascript">
(function () {
window.hasCreditcard = true;
})();
</script>
{%endif%}
{%endblock%}

View file

@ -1,106 +1,190 @@
{% extends "hosting/base_short.html" %}
{% load staticfiles bootstrap3 %}
{% load i18n %}
{% load custom_tags %}
{% block navbar %}
{% include "datacenterlight/includes/_navbar.html" %}
{% endblock navbar %}
{% extends "datacenterlight/base_hosting.html" %}
{% load staticfiles bootstrap3 i18n custom_tags humanize %}
{% block content %}
<div class="order-detail-container">
{% if messages %}
<div class="row">
<div class="col-xs-12 col-md-8 col-md-offset-2">
<br/>
<div class="alert alert-warning">
{% for message in messages %}
<span>{{ message }}</span>
{% endfor %}
</div>
</div>
<div id="order-detail{{order.pk}}" class="order-detail-container">
{% if messages %}
<div class="alert alert-warning">
{% for message in messages %}
<span>{{ message }}</span>
{% endfor %}
</div>
{% endif %}
{% if not error %}
<div class="dashboard-container-head">
<h1 class="dashboard-title-thin">
<img src="{% static 'hosting/img/billing.svg' %}" class="un-icon">{% blocktrans with page_header_text=page_header_text|default:"Invoice" %}{{page_header_text}}{% endblocktrans %}
</h1>
</div>
<div class="order-details">
<p>
<strong>{% trans "Date" %}:</strong>
<span class="locale_date">
{% now "Y-m-d h:i a" %}
</span>
</p>
<hr>
<div>
<address>
<h4>{% trans "Billed to" %}:</h4>
<p>
{% with request.session.billing_address_data as billing_address %}
{{billing_address.cardholder_name}}<br>
{{billing_address.street_address}}, {{billing_address.postal_code}}<br>
{{billing_address.city}}, {{billing_address.country}}
{% endwith %}
</p>
</address>
</div>
{% endif %}
{% if not error %}
<div class="row">
<div class="col-xs-12 col-md-8 col-md-offset-2">
<div class="invoice-title">
<h2>{% trans "Confirm Order"%}</h2>
</div>
<hr>
<div class="row">
<div class="col-xs-12 col-sm-6 pull-right order-confirm-date">
<address>
<strong>{% trans "Date"%}:</strong><br>
<span id="order-created_at">{% now "Y-m-d H:i" %}</span><br><br>
</address>
</div>
<div class="col-xs-12 col-sm-6">
<address>
<h3><b>{% trans "Billed To:"%}</b></h3>
{% with request.session.billing_address_data as billing_address %}
{{billing_address|get_value_from_dict:'cardholder_name'}}<br> {{billing_address|get_value_from_dict:'street_address'}}, {{billing_address|get_value_from_dict:'postal_code'}}<br>
{{billing_address|get_value_from_dict:'city'}}, {{billing_address|get_value_from_dict:'country'}}.
{% endwith %}
</address>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<address>
<strong>{% trans "Payment Method:"%}</strong><br>
{{cc_brand}} {% trans "ending in" %} **** {{cc_last4}}<br>
{{request.session.user.email}}
</address>
</div>
</div>
</div>
<hr>
<div>
<h4>{% trans "Payment method" %}:</h4>
<p>
{{cc_brand|default:_('Credit Card')}} {% trans "ending in" %} ****{{cc_last4}}<br>
{{request.user.email}}
</p>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h3><b>{% trans "Order summary"%}</b></h3>
<hr>
<div class="content">
{% with request.session.specs as vm %}
<p><b>{% trans "Cores"%}</b> <span class="pull-right">{{vm.cpu}}</span></p>
<hr>
<p><b>{% trans "Memory"%}</b> <span class="pull-right">{{vm.memory}} GB</span></p>
<hr>
<p><b>{% trans "Disk space"%}</b> <span class="pull-right">{{vm.disk_size}} GB</span></p>
<hr>
<p><b>{% trans "Configuration"%}</b> <span class="pull-right">{{request.session.template.name}}</span></p>
<hr>
<h4>{% trans "Total"%}<p class="pull-right"><b>{{vm.price}} CHF</b><span class="dcl-price-month"> /{% trans "Month" %}</span></p></h4>
{% endwith %}
</div>
<br/>
<form method="post">
{% csrf_token %}
<hr>
<div>
<h4>{% trans "Order summary" %}</h4>
{% if generic_payment_details %}
<p>
<strong>{% trans "Product" %}:</strong>&nbsp;
{{ generic_payment_details.product_name }}
</p>
<div class="row">
<div class="col-sm-8">
<p class="dcl-place-order-text">{% blocktrans with vm_price=request.session.specs.price %}By clicking "Place order" this plan will charge your credit card account with the fee of {{ vm_price }}CHF/month{% endblocktrans %}.</p>
</div>
<div class="col-sm-4 content">
<a href="{{next_url}}" ><button class="btn btn-info pull-right">{% trans "Place order"%}</button></a>
<div class="col-sm-6">
<p>
<span>{% trans "Amount" %}: </span>
<strong class="pull-right">CHF {{generic_payment_details.amount|floatformat:2|intcomma}}</strong>
</p>
{% if generic_payment_details.description %}
<p>
<span>{% trans "Description" %}: </span>
<strong class="pull-right">{{generic_payment_details.description}}</strong>
</p>
{% endif %}
{% if generic_payment_details.recurring %}
<p>
<span>{% trans "Recurring" %}: </span>
<strong class="pull-right">Yes</strong>
</p>
{% endif %}
</div>
</div>
</form>
{% else %}
<p>
<strong>{% trans "Product" %}:</strong>&nbsp;
{{ request.session.template.name }}
</p>
<div class="row">
<div class="col-sm-6">
<p>
<span>{% trans "Cores" %}: </span>
<strong class="pull-right">{{vm.cpu|floatformat}}</strong>
</p>
<p>
<span>{% trans "Memory" %}: </span>
<strong class="pull-right">{{vm.memory|intcomma}} GB</strong>
</p>
<p>
<span>{% trans "Disk space" %}: </span>
<strong class="pull-right">{{vm.disk_size|intcomma}} GB</strong>
</p>
</div>
<div class="col-sm-12">
<hr class="thin-hr">
</div>
{% if vm.vat > 0 or vm.discount.amount > 0 %}
<div class="col-sm-6">
<div class="subtotal-price">
{% if vm.vat > 0 %}
<p>
<strong class="text-lg">{% trans "Subtotal" %} </strong>
<strong class="pull-right">{{vm.price|floatformat:2|intcomma}} CHF</strong>
</p>
<p>
<small>{% trans "VAT" %} ({{ vm.vat_percent|floatformat:2|intcomma }}%) </small>
<strong class="pull-right">{{vm.vat|floatformat:2|intcomma}} CHF</strong>
</p>
{% endif %}
{% if vm.discount.amount > 0 %}
<p class="text-primary">
{%trans "Discount" as discount_name %}
<strong>{{ vm.discount.name|default:discount_name }} </strong>
<strong class="pull-right">- {{ vm.discount.amount }} CHF</strong>
</p>
{% endif %}
</div>
</div>
<div class="col-sm-12">
<hr class="thin-hr">
</div>
{% endif %}
<div class="col-sm-6">
<p class="total-price">
<strong>{% trans "Total" %} </strong>
<strong class="pull-right">{{vm.total_price|floatformat:2|intcomma}} CHF</strong>
</p>
</div>
</div>
{% endif %}
</div>
<hr class="thin-hr">
</div>
<form id="virtual_machine_create_form" action="" method="POST">
{% csrf_token %}
<div class="row">
<div class="col-sm-8">
{% if generic_payment_details %}
{% if generic_payment_details.recurring %}
<div class="dcl-place-order-text">{% blocktrans with total_price=generic_payment_details.amount|floatformat:2|intcomma %}By clicking "Place order" this plan will charge your credit card account with {{total_price}} CHF/month{% endblocktrans %}.</div>
{% else %}
<div class="dcl-place-order-text">{% blocktrans with total_price=generic_payment_details.amount|floatformat:2|intcomma %}By clicking "Place order" this payment will charge your credit card account with a one time amount of {{total_price}} CHF{% endblocktrans %}.</div>
{% endif %}
{% else %}
<div class="dcl-place-order-text">{% blocktrans with vm_total_price=vm.total_price|floatformat:2|intcomma %}By clicking "Place order" this plan will charge your credit card account with {{vm_total_price}} CHF/month{% endblocktrans %}.</div>
{% endif %}
</div>
<div class="col-sm-4 order-confirm-btn text-right">
<button class="btn choice-btn" id="btn-create-vm" data-toggle="modal" data-target="#createvm-modal">
{% trans "Place order" %}
</button>
</div>
</div>
{% endif %}
</form>
{% endif %}
</div>
<!-- Create VM Modal -->
<div class="modal fade" id="createvm-modal" tabindex="-1" role="dialog"
aria-hidden="true" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
</div>
<div class="modal-body">
<div class="modal-icon">
<i class="fa fa-cog fa-spin fa-3x fa-fw"></i>
<span class="sr-only">{% trans "Processing..." %}</span>
</div>
<h4 class="modal-title" id="createvm-modal-title"></h4>
<div class="modal-text" id="createvm-modal-body">
{% trans "Hold tight, we are processing your request" %}
</div>
<div class="modal-footer">
<a id="createvm-modal-done-btn" class="btn btn-success btn-ok btn-wide hide" href="{% url 'hosting:virtual_machines' %}">{% trans "OK" %}</a>
<button id="createvm-modal-close-btn" type="button" class="btn btn-danger btn-ok btn-wide hide" data-dismiss="modal" aria-label="create-vm-close">{% trans "Close" %}</button>
</div>
</div>
</div>
</div>
</div>
<!-- / Create VM Modal -->
<script type="text/javascript">
window.onload = function () {
var locale_date = moment.utc(document.getElementById("order-created_at").textContent,'YYYY-MM-DD HH:mm').toDate();
locale_date = moment(locale_date).format("YYYY-MM-DD h:mm:ss a");
document.getElementById('order-created_at').innerHTML = locale_date;
};
</script>
{%endblock%}
<script type="text/javascript">
{% trans "Some problem encountered. Please try again later." as err_msg %}
var create_vm_error_message = '{{err_msg|safe}}';
</script>
{%endblock%}

View file

@ -1,96 +0,0 @@
{% extends "datacenterlight/base.html" %}
{% load staticfiles i18n%}
{% get_current_language as LANGUAGE_CODE %}
{% block content %}
<div class="intro-pricing">
<div class="intro-message">
<h2 class="section-heading">{% trans "We are cutting down the costs significantly!" %}</h2>
</div>
</div>
<div class="price-calc-section">
<div class="card">
<img class="img-beta" src="{% static 'datacenterlight/img/beta-img.png' %}" alt="">
<div class="caption">
<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</span>
<div class="price-text">
<p>{% trans "VAT included" %}</p>
</div>
</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="name">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 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 class="description check-ip">
<input type="checkbox" name="ipv6"> Ipv6 Only<br>
</div>-->
</div>
<input type="submit" class="btn btn-primary" value="{% trans 'Order Now!' %}"></input>
</form>
</div>
</div>
<div class="text">
<h2 class="section-heading">{% trans "Simple and affordable: Try our virtual machine with featherlight price." %}</h2>
<div class="description">
<p>{% trans "Our VMs are hosted in Glarus, Switzerland, and our website is currently running in BETA mode. If you want more information that you did not find on our website, or if your order is more detailed, or if you encounter any technical hiccups, please contact us at support@datacenterlight.ch, our team will get in touch with you asap." %}</p>
</div>
</div>
</div>
{% endblock %}

Some files were not shown because too many files have changed in this diff Show more