manager: add verbose name to cells
This commit is contained in:
parent
43930fe4d4
commit
d9dcbb8bc9
|
@ -37,13 +37,17 @@ class CellBase(models.Model):
|
|||
|
||||
objects = InheritanceManager()
|
||||
|
||||
@classmethod
|
||||
def get_verbose_name(cls):
|
||||
return cls._meta.verbose_name
|
||||
|
||||
@classmethod
|
||||
def get_cell_content_types(cls):
|
||||
content_types = []
|
||||
for symbol in globals().values():
|
||||
if inspect.isclass(symbol) and issubclass(symbol, cls) and symbol is not cls:
|
||||
content_types.append({
|
||||
'name': symbol.__name__, # XXX: add support for verbose name
|
||||
'name': symbol.get_verbose_name(),
|
||||
'content_type': ContentType.objects.get_for_model(symbol),
|
||||
})
|
||||
return content_types
|
||||
|
@ -52,12 +56,18 @@ class CellBase(models.Model):
|
|||
class TextCell(CellBase):
|
||||
text = RichTextField(_('Text'), null=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Text')
|
||||
|
||||
def render(self):
|
||||
from django.utils.safestring import mark_safe
|
||||
return mark_safe(self.text or '')
|
||||
|
||||
|
||||
class FortuneCell(CellBase):
|
||||
class Meta:
|
||||
verbose_name = _('Fortune')
|
||||
|
||||
def render(self):
|
||||
import subprocess
|
||||
return subprocess.check_output(['fortune'])
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
<div class="cell-list">
|
||||
{% for cell in placeholder.cells %}
|
||||
<div class="cell" data-cell-id="{{ cell.id }}">
|
||||
<h3>{{ cell }}</h3>
|
||||
<h3>{{ cell.get_verbose_name }}</h3>
|
||||
<div>{% cell_form cell %}</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
|
Loading…
Reference in New Issue