manage: add a new field for extra css class on BaseCell (#12553)

This commit is contained in:
Frédéric Péters 2016-07-13 17:47:15 +02:00
parent 699e24f1f4
commit 9242e4d37a
14 changed files with 297 additions and 6 deletions

View File

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('dataviz', '0004_auto_20160108_1048'),
]
operations = [
migrations.AddField(
model_name='cubesbarchart',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='cubestable',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='gauge',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
]

View File

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('family', '0002_familyinfoscell_restricted_to_unlogged'),
]
operations = [
migrations.AddField(
model_name='familyinfoscell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
]

View File

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('fargo', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='recentdocumentscell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
]

View File

@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('lingo', '0022_regie_is_default'),
]
operations = [
migrations.AlterModelOptions(
name='regie',
options={'ordering': ('label',), 'verbose_name': 'Regie'},
),
migrations.AddField(
model_name='activeitems',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='itemshistory',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='lingobasketcell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='lingobasketlinkcell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='lingorecenttransactionscell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
]

View File

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('momo', '0009_auto_20160504_1036'),
]
operations = [
migrations.AddField(
model_name='momoiconcell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AlterField(
model_name='momooptions',
name='contact_email',
field=models.EmailField(max_length=254, null=True, verbose_name='Contact Email'),
),
]

View File

@ -40,7 +40,7 @@ class GenerationInfo(Exception):
def render_cell(cell, context):
classnames = ['cell', cell.css_class_name]
classnames = ['cell', cell.css_class_names]
if cell.slug:
classnames.append(cell.slug)
return '<div class="%s">%s</div>' % (' '.join(classnames), cell.render(context))

View File

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('newsletters', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='newsletterscell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
]

View File

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('usersearch', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='usersearchcell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
]

View File

@ -0,0 +1,49 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('wcs', '0012_wcsformsofcategorycell_manual_order'),
]
operations = [
migrations.AddField(
model_name='categoriescell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='trackingcodeinputcell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='wcscategorycell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='wcscurrentdraftscell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='wcscurrentformscell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='wcsformcell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='wcsformsofcategorycell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
]

View File

@ -0,0 +1,59 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('data', '0019_create_parent_cells'),
]
operations = [
migrations.AddField(
model_name='blurpcell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='feedcell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='fortunecell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='linkcell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='menucell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='parameterscell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='parentcontentcell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='textcell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
migrations.AddField(
model_name='unlockmarkercell',
name='extra_css_class',
field=models.CharField(max_length=100, verbose_name='Extra classes for CSS styling', blank=True),
),
]

View File

@ -261,6 +261,7 @@ class CellBase(models.Model):
placeholder = models.CharField(max_length=20)
order = models.PositiveIntegerField()
slug = models.SlugField(_('Slug'), blank=True)
extra_css_class = models.CharField(_('Extra classes for CSS styling'), max_length=100, blank=True)
public = models.BooleanField(_('Public'), default=True)
restricted_to_unlogged = models.BooleanField(
@ -295,8 +296,8 @@ class CellBase(models.Model):
return ''
@property
def css_class_name(self):
return self.__class__.__name__.lower()
def css_class_names(self):
return self.__class__.__name__.lower() + ' ' + self.extra_css_class
@classmethod
def get_all_cell_types(cls):
@ -371,6 +372,7 @@ class CellBase(models.Model):
fields = [x.name for x in self._meta.local_concrete_fields
if x.name not in ('id', 'page', 'placeholder', 'order',
'public', 'groups', 'slug',
'extra_css_class',
'restricted_to_unlogged')]
if not fields:
return None
@ -379,7 +381,7 @@ class CellBase(models.Model):
def get_options_form_class(self):
return model_forms.modelform_factory(self.__class__,
fields=['slug'])
fields=['slug', 'extra_css_class'])
def get_visibility_form_class(self):
# generate a form with the 'public' model attribute inverted to create

View File

@ -66,6 +66,11 @@ div.cell h3 .group1 {
width: 60%;
}
div.cell h3 span.extra-css-class {
font-size: 70%;
opacity: 0.7;
}
div.cell h3 span.additional-label,
div.cell h3 span.visibility-summary {
font-size: 80%;

View File

@ -75,7 +75,11 @@
<h3><span class="handle"></span>
<span class="group1">
{{ cell.get_label }}
{% if cell.slug %} [{{cell.slug}}] {% endif %}
{% if cell.slug %} [{{cell.slug}}]
{% if cell.extra_css_class %}
<span class="extra-css-class">[{{ cell.extra_css_class }}]</span>
{% endif %}
{% endif %}
<span class="additional-label">
<i>{{cell.get_additional_label|default_if_none:""}}</i></span>
</span>

View File

@ -1,6 +1,6 @@
{% load combo i18n %}
{% for cell in cells %}
<div class="cell {{ cell.css_class_name }} {% if cell.slug %}{{cell.slug}}{% endif %} {% if cell|shown_because_admin:request %}shown-because-admin{% endif %}"
<div class="cell {{ cell.css_class_names }} {% if cell.slug %}{{cell.slug}}{% endif %} {% if cell|shown_because_admin:request %}shown-because-admin{% endif %}"
data-ajax-cell-url="{{ site_base }}{% url 'combo-public-ajax-page-cell' page_pk=cell.page.id cell_reference=cell.get_reference %}"
data-ajax-cell-loading-message="{% trans "Loading..." %}"
{% if cell.ajax_refresh %}