merge master and fixed migration conflict
This commit is contained in:
		
				commit
				
					
						39d2697e30
					
				
			
		
					 17 changed files with 219 additions and 63 deletions
				
			
		
							
								
								
									
										12
									
								
								Changelog
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								Changelog
									
										
									
									
									
								
							|  | @ -1,10 +1,16 @@ | |||
| Next release: | ||||
| Next: | ||||
|     * #3911: [dcl] Integrate resend activation link into dcl landing payment page | ||||
|     * #3972: [hosting] Add ungleich company info to invoice footer | ||||
| 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 | ||||
|     *        [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 | ||||
|     * [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 | ||||
|  |  | |||
|  | @ -39,7 +39,7 @@ | |||
|                         <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' %}">{% trans "Forgot password?" %}</a> | ||||
|                             <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> | ||||
|  |  | |||
|  | @ -235,7 +235,7 @@ fieldset[disabled] .btn-xl.active { | |||
| .navbar-default .navbar-brand { | ||||
| 	font-family: "Helvetica Neue", Helvetica, Arial, cursive; | ||||
| 	color: #a1cfd7; | ||||
| 	padding-top: 10px; | ||||
| 	padding-top: 11px; | ||||
| } | ||||
| 
 | ||||
| .navbar-default .navbar-brand:hover, | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
| 
 | ||||
| @media(min-width: 768px) { | ||||
|     .order-detail-container { | ||||
|         padding: 30px; | ||||
|         padding: 30px 30px 20px; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | @ -53,7 +53,7 @@ | |||
| } | ||||
| 
 | ||||
| .order-detail-container .order-details { | ||||
|     margin-bottom: 30px; | ||||
|     margin-bottom: 15px; | ||||
| } | ||||
| 
 | ||||
| .order-detail-container .order-details strong { | ||||
|  | @ -90,3 +90,18 @@ | |||
|         width: 16px; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| .order_detail_footer { | ||||
|     font-size: 9px; | ||||
|     letter-spacing: 1px; | ||||
|     color: #333333; | ||||
| } | ||||
| 
 | ||||
| .order_detail_footer strong { | ||||
|     font-size: 11px; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| #virtual_machine_create_form { | ||||
|     padding: 15px 0; | ||||
| } | ||||
|  | @ -135,9 +135,7 @@ | |||
|                     </div> | ||||
|                 </div> | ||||
|             </div> | ||||
|             {% if not order %} | ||||
|             <hr> | ||||
|             {% endif %} | ||||
|         </div> | ||||
|         {% if not order %} | ||||
|             {% block submit_btn %} | ||||
|  | @ -155,6 +153,11 @@ | |||
|                     </div> | ||||
|                 </form> | ||||
|             {% endblock submit_btn %} | ||||
|         {% else %} | ||||
|             <div class="order_detail_footer"> | ||||
|                 <strong>ungleich glarus ag</strong>  Bahnhotstrasse 1, 8783 Linthal, Switzerland<br> | ||||
|                 www.datacenterlight.ch  |  info@datacenterlight.ch | ||||
|             </div> | ||||
|         {% endif %} | ||||
|     {% endif %} | ||||
| </div> | ||||
|  |  | |||
|  | @ -41,10 +41,8 @@ | |||
|                 {% for vm in vms %} | ||||
|                     <tr> | ||||
|                         <td data-header="ID">{{vm.vm_id}}</td> | ||||
|                     {% if vm.ipv6  %} | ||||
|                         <td data-header="IPv4">{{vm.ipv4}}</td> | ||||
|                         <td data-header="IPv6">{{vm.ipv6}}</td> | ||||
|                     {% endif %} | ||||
|                         <td data-header="IPv4">{% if vm.ipv4 %}{{vm.ipv4}}{% endif %}</td> | ||||
|                         <td data-header="IPv6">{% if vm.ipv6 %}{{vm.ipv6}}{% endif %}</td> | ||||
|                         <td data-header="{% trans 'Status' %}"> | ||||
|                             <strong> | ||||
|                                 {% if vm.state == 'ACTIVE' %} | ||||
|  |  | |||
|  | @ -8,7 +8,8 @@ from .views import ( | |||
|     MarkAsReadNotificationView, PasswordResetView, PasswordResetConfirmView, | ||||
|     HostingPricingView, CreateVirtualMachinesView, HostingBillListView, | ||||
|     HostingBillDetailView, SSHKeyDeleteView, SSHKeyCreateView, SSHKeyListView, | ||||
|     SSHKeyChoiceView, DashboardView, SettingsView, ResendActivationEmailView) | ||||
|     SSHKeyChoiceView, DashboardView, SettingsView, ResendActivationEmailView | ||||
| ) | ||||
| 
 | ||||
| 
 | ||||
| urlpatterns = [ | ||||
|  |  | |||
|  | @ -6,7 +6,9 @@ from .models import ( | |||
|     About, AboutItem, SectionWithImage, UngleichServiceItem, UngleichHeader, | ||||
|     UngleichHeaderItem, UngleichProductItem, UngleichProduct, UngleichCustomer, | ||||
|     UngleichCustomerItem, UngleichHTMLOnly, UngleichSimpleHeader, | ||||
|     UngleichHeaderItemWithVideo | ||||
|     UngleichHeaderItemWithVideo, | ||||
|     UngleichHeaderWithBackgroundImageSlider, | ||||
|     UngleichHeaderWithBackgroundImageSliderItem, | ||||
| ) | ||||
| 
 | ||||
| 
 | ||||
|  | @ -241,6 +243,39 @@ class UngleichHeaderItemWithVideoPlugin(CMSPluginBase): | |||
|         context = super(UngleichHeaderItemWithVideoPlugin, self).render( | ||||
|             context, instance, placeholder | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| @plugin_pool.register_plugin | ||||
| class UngleichHeaderBackgroundImageAndTextSliderPlugin(CMSPluginBase): | ||||
|     name = "ungleich Header with Background and Image Slider Plugin" | ||||
|     model = UngleichHeaderWithBackgroundImageSlider | ||||
|     render_template = ( | ||||
|         'ungleich_page/ungleich/header_with_background_image_slider.html' | ||||
|     ) | ||||
|     cache = False | ||||
|     allow_children = True | ||||
|     child_classes = ['UngleichHeaderBackgroundImageAndTextItemPlugin'] | ||||
| 
 | ||||
|     def render(self, context, instance, placeholder): | ||||
|         context['instance'] = instance | ||||
|         return context | ||||
| 
 | ||||
| 
 | ||||
| @plugin_pool.register_plugin | ||||
| class UngleichHeaderBackgroundImageAndTextItemPlugin(CMSPluginBase): | ||||
|     name = "ungleich Header with Background and Image and Text Item Plugin" | ||||
|     model = UngleichHeaderWithBackgroundImageSliderItem | ||||
|     render_template = ( | ||||
|         'ungleich_page/ungleich/_header_with_background_image_slider_item.html' | ||||
|     ) | ||||
|     cache = False | ||||
|     require_parent = True | ||||
|     parent_classes = ['UngleichHeaderBackgroundImageAndTextSliderPlugin'] | ||||
| 
 | ||||
|     def render(self, context, instance, placeholder): | ||||
|         context = super( | ||||
|             UngleichHeaderBackgroundImageAndTextItemPlugin, self | ||||
|         ).render(context, instance, placeholder) | ||||
|         context['instance'] = instance | ||||
|         return context | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,43 @@ | |||
| # -*- coding: utf-8 -*- | ||||
| # Generated by Django 1.9.4 on 2017-12-02 07:30 | ||||
| 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 = [ | ||||
|         ('filer', '0004_auto_20160328_1434'), | ||||
|         ('cms', '0014_auto_20160404_1908'), | ||||
|         ('ungleich_page', '0015_ungleichsimpleheader'), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.CreateModel( | ||||
|             name='UngleichHeaderWithBackgroundImageSlider', | ||||
|             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')), | ||||
|                 ('carousel_data_interval', models.IntegerField(default=2000)), | ||||
|             ], | ||||
|             options={ | ||||
|                 'abstract': False, | ||||
|             }, | ||||
|             bases=('cms.cmsplugin',), | ||||
|         ), | ||||
|         migrations.CreateModel( | ||||
|             name='UngleichHeaderWithBackgroundImageSliderItem', | ||||
|             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')), | ||||
|                 ('description', djangocms_text_ckeditor.fields.HTMLField(default='<div class="intro-cap">We  Design, Configure & Maintain <br>Your Linux Infrastructure</div><p class="intro_lead">Ruby on Rails, Django, Java, Webserver, Mailserver, any infrastructure that needs to configured, we provide comprehensive solutions. Amazon, rackspace or bare metal servers, we configure for you.</p><p style="text-align: right;"><a class="btn btn-trans" href="">Learn More</a></p>')), | ||||
|                 ('background_image', filer.fields.image.FilerImageField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='ungleich_header_slider_item_image', to='filer.Image')), | ||||
|             ], | ||||
|             options={ | ||||
|                 'abstract': False, | ||||
|             }, | ||||
|             bases=('cms.cmsplugin',), | ||||
|         ), | ||||
|     ] | ||||
|  | @ -11,7 +11,7 @@ import filer.fields.image | |||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
|     dependencies = [ | ||||
|         ('ungleich_page', '0015_ungleichsimpleheader'), | ||||
|         ('ungleich_page', '0016_ungleichheaderwithbackgroundimageslider_ungleichheaderwithbackgroundimageslideritem'), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|  | @ -124,6 +124,27 @@ class UngleichHeader(CMSPlugin): | |||
|     carousel_data_interval = models.IntegerField(default=5000) | ||||
| 
 | ||||
| 
 | ||||
| class UngleichHeaderWithBackgroundImageSliderItem(CMSPlugin): | ||||
|     background_image = FilerImageField( | ||||
|         null=True, blank=True, | ||||
|         related_name="ungleich_header_slider_item_image", | ||||
|         on_delete=models.SET_NULL | ||||
|     ) | ||||
|     description = HTMLField( | ||||
|         default='<div class="intro-cap">We  Design, Configure & Maintain ' | ||||
|                 '<br>Your Linux Infrastructure</div><p class="intro_lead">' | ||||
|                 'Ruby on Rails, Django, Java, Webserver, Mailserver, any ' | ||||
|                 'infrastructure that needs to configured, we provide ' | ||||
|                 'comprehensive solutions. Amazon, rackspace or bare metal ' | ||||
|                 'servers, we configure for you.</p><p style="text-align: ' | ||||
|                 'right;"><a class="btn btn-trans" href="">Learn More</a></p>' | ||||
|     ) | ||||
| 
 | ||||
| 
 | ||||
| class UngleichHeaderWithBackgroundImageSlider(CMSPlugin): | ||||
|     carousel_data_interval = models.IntegerField(default=2000) | ||||
| 
 | ||||
| 
 | ||||
| class UngleichHeaderItem(CMSPlugin): | ||||
|     image = FilerImageField( | ||||
|         null=True, | ||||
|  |  | |||
|  | @ -280,7 +280,10 @@ fieldset[disabled] .btn-xl.active { | |||
|     } | ||||
| 
 | ||||
|     .navbar-default .navbar-brand { | ||||
|        padding: 8px; | ||||
|        padding: 4px 8px 12px; | ||||
|     } | ||||
|     .navbar-default.navbar-shrink .navbar-brand { | ||||
|        padding: 6px 8px 10px; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | @ -440,6 +443,7 @@ section h3.section-subheading { | |||
|     max-width: 400px; | ||||
|     text-align: center; | ||||
|     background-color: #fff; | ||||
|     width: 100%; | ||||
| } | ||||
| 
 | ||||
| #portfolio .portfolio-item .portfolio-caption h4 { | ||||
|  |  | |||
|  | @ -1,2 +1,2 @@ | |||
| <a href="{{ instance.url }}"><img class="center-block img-client img-responsive" src="{{ instance.image.url}}"></a> | ||||
| <p class="carousel-text text-muted text-center">{{ instance.description }}</p> | ||||
| {{ instance.description }} | ||||
|  | @ -1,8 +1,14 @@ | |||
| {% if instance.image %} | ||||
|   <div class="bg_img" style="background-image:url({{ instance.image.url }})"></div> | ||||
| {% endif %} | ||||
| <div class="container"> | ||||
|   <div class="intro-cap-sans-transform"> | ||||
|     <div> | ||||
|         {% if instance.image %} | ||||
|         <img src="{{ instance.image.url }}" alt="" | ||||
|              class="logo-image" img-responsive="" width="300"/> | ||||
|         <div class="header-vh"></div> | ||||
|         {% endif %} | ||||
|         <div> | ||||
|                 <span class="intro-cap-sans-transform"> | ||||
|                 {{ instance.description }} | ||||
|                 </span> | ||||
|         </div> | ||||
|     </div> | ||||
| </div> | ||||
|  |  | |||
|  | @ -0,0 +1,4 @@ | |||
| <div class="bg_img" style="background-image:url({{ instance.background_image.url }})"></div> | ||||
| <div class="container"> | ||||
|   {{ instance.description }} | ||||
| </div> | ||||
|  | @ -0,0 +1,31 @@ | |||
| {% load cms_tags %} | ||||
| <header class="header_slider"> | ||||
|   <div id="carousel-header-ungleich" class="carousel slide" data-interval="{{ instance.carousel_data_interval}}"> | ||||
|     <!-- Indicators --> | ||||
|     {% if instance.child_plugin_instances|length > 1  %} | ||||
|       <ol class="carousel-indicators"> | ||||
|         {% for plugin in instance.child_plugin_instances %} | ||||
|             <li data-target="#carousel-header-ungleich" data-slide-to="{{forloop.counter0}}" {% if forloop.counter0 == 0 %}class="active" {% endif %}></li> | ||||
|         {% endfor %} | ||||
|       </ol> | ||||
|     {% endif %} | ||||
|     <!-- Wrapper for slides --> | ||||
|     <div class="carousel-inner" role="listbox"> | ||||
|         {% for plugin in instance.child_plugin_instances %} | ||||
|         <div class="item {% if forloop.counter0 == 0 %}active{% endif %}"> | ||||
|           {% render_plugin plugin %} | ||||
|         </div> | ||||
|         {% endfor %} | ||||
|     </div> | ||||
|     {% if instance.child_plugin_instances|length > 1  %} | ||||
|       <a class="left carousel-control" href="#carousel-header-ungleich" role="button" data-slide="prev"> | ||||
|         <span class="fa fa-angle-left" aria-hidden="true"></span> | ||||
|         <span class="sr-only">Previous</span> | ||||
|       </a> | ||||
|       <a class="right carousel-control" href="#carousel-header-ungleich" role="button" data-slide="next"> | ||||
|         <span class="fa fa-angle-right" aria-hidden="true"></span> | ||||
|         <span class="sr-only">Next</span> | ||||
|       </a> | ||||
|     {% endif %} | ||||
|   </div> | ||||
| </header> | ||||
|  | @ -5,7 +5,7 @@ | |||
|       {% if instance.child_plugin_instances|length > 1  %} | ||||
|         <ol class="carousel-indicators"> | ||||
|                 {% for plugin in instance.child_plugin_instances %} | ||||
|           <li data-target="#carousel-header-ungleich" data-slide-to="{{forloop.counter0}}" {% if forloop.counter0 == 0 %}class="active"{% endif %}></li> | ||||
|                     <li data-target="#carousel-header-ungleich" data-slide-to="{{forloop.counter0}}" {% if forloop.counter0 == 0 %}class="active" {% endif %}></li> | ||||
|                 {% endfor %} | ||||
|         </ol> | ||||
|       {% endif %} | ||||
|  | @ -17,16 +17,5 @@ | |||
|         </div> | ||||
|         {% endfor %} | ||||
|     </div> | ||||
|     <!-- Control Arrows --> | ||||
|     {% if instance.child_plugin_instances|length > 1  %} | ||||
|       <a class="left carousel-control" href="#carousel-header-ungleich" role="button" data-slide="prev"> | ||||
|         <span class="fa fa-angle-left" aria-hidden="true"></span> | ||||
|         <span class="sr-only">Previous</span> | ||||
|       </a> | ||||
|       <a class="right carousel-control" href="#carousel-header-ungleich" role="button" data-slide="next"> | ||||
|         <span class="fa fa-angle-right" aria-hidden="true"></span> | ||||
|         <span class="sr-only">Next</span> | ||||
|       </a> | ||||
|     {% endif %} | ||||
|   </div> | ||||
| </header> | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue