kopia lustrzana https://github.com/rtts/django-simplecms
better forms
rodzic
b2fb3b1e73
commit
644ec5b6b4
|
@ -63,7 +63,10 @@ class Page(NumberedModel):
|
|||
menu = models.BooleanField(_('visible in menu'), default=True)
|
||||
|
||||
def __str__(self):
|
||||
return '{}: {}. {}'.format(self._meta.verbose_name.title(), self.position, self.title)
|
||||
if not self.pk:
|
||||
return str(_('New page'))
|
||||
else:
|
||||
return self.title
|
||||
|
||||
def get_absolute_url(self):
|
||||
if self.slug:
|
||||
|
@ -93,8 +96,12 @@ class Section(NumberedModel):
|
|||
return self.page.sections.all()
|
||||
|
||||
def __str__(self):
|
||||
title = self.title if self.title else _('Untitled')
|
||||
return '{}: {}. {}'.format(self._meta.verbose_name.title(), self.position, title)
|
||||
if not self.pk:
|
||||
return str(_('New section'))
|
||||
elif not self.title:
|
||||
return str(_('Untitled'))
|
||||
else:
|
||||
return self.title
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('section')
|
||||
|
@ -116,8 +123,12 @@ class SubSection(NumberedModel):
|
|||
return self.section.subsections.all()
|
||||
|
||||
def __str__(self):
|
||||
title = self.title if self.title else _('Untitled')
|
||||
return '{}: {}. {}'.format(self._meta.verbose_name.title(), self.position, title)
|
||||
if not self.pk:
|
||||
return str(_('New subsection'))
|
||||
elif not self.title:
|
||||
return str(_('Untitled'))
|
||||
else:
|
||||
return self.title
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('subsection')
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
{% extends 'base.html' %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block header %}{% endblock %}
|
||||
{% block nav %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<form method="POST" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
|
@ -11,7 +8,9 @@
|
|||
|
||||
<section>
|
||||
<div class="wrapper">
|
||||
<h1>{{form.instance}}</h1>
|
||||
<div class="title">
|
||||
<h1>{{form.instance}}</h1>
|
||||
</div>
|
||||
{% if form.errors or formset.errors %}
|
||||
<div class="global_error">
|
||||
{% trans 'Please correct the error(s) below and save again' %}
|
||||
|
@ -42,9 +41,9 @@
|
|||
|
||||
<section>
|
||||
<div class="wrapper">
|
||||
<div class="button">
|
||||
<div class="edit">
|
||||
<a href="{{formset_form_url}}">
|
||||
Add a new {{formset_description}}
|
||||
+ {% trans 'new' %} {{formset_description}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
{% extends 'base.html' %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
<form method="POST" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
{{form.media}}
|
||||
|
||||
<div class="wrapper">
|
||||
{% if form.errors or formset.errors %}
|
||||
<div class="global_error">
|
||||
{% trans 'Please correct the error(s) below and save again' %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% for field in form %}
|
||||
{% include 'cms/formfield.html' with field=field %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
{% block sections %}
|
||||
{{formset.management_form}}
|
||||
{% for form in formset %}
|
||||
{{form.media}}
|
||||
{% for field in form.hidden_fields %}
|
||||
{{field}}
|
||||
{% endfor %}
|
||||
<section>
|
||||
<div class="wrapper">
|
||||
<h1>{% trans 'Section' %}: {{form.instance}}</h1>
|
||||
{% for field in form.visible_fields %}
|
||||
{% include 'cms/formfield.html' with field=field %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
|
||||
<div class="edit">
|
||||
<button>{% trans 'save' %}</button>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
|
@ -1,43 +0,0 @@
|
|||
{% extends 'base.html' %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
<form method="POST" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
{{form.media}}
|
||||
|
||||
<section>
|
||||
<div class="wrapper">
|
||||
<h1>{{form.model}}: {{form.object}}</h1>
|
||||
{% if form.errors or formset.errors %}
|
||||
<div class="global_error">
|
||||
{% trans 'Please correct the error(s) below and save again' %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% for field in form %}
|
||||
{% include 'cms/formfield.html' with field=field %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{formset.management_form}}
|
||||
{% for form in formset %}
|
||||
{{form.media}}
|
||||
{% for field in form.hidden_fields %}
|
||||
{{field}}
|
||||
{% endfor %}
|
||||
<section>
|
||||
<div class="wrapper">
|
||||
<h1>{% trans 'Subsection' %}: {{form.instance}}</h1>
|
||||
{% for field in form.visible_fields %}
|
||||
{% include 'cms/formfield.html' with field=field %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
{% endfor %}
|
||||
|
||||
<div class="edit">
|
||||
<button>{% trans 'save' %}</button>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
10
cms/views.py
10
cms/views.py
|
@ -32,12 +32,12 @@ class PageView(MenuMixin, MemoryMixin, DetailView):
|
|||
model = Page
|
||||
template_name = 'cms/page.html'
|
||||
|
||||
class CreatePage(StaffRequiredMixin, CreateView):
|
||||
class CreatePage(StaffRequiredMixin, MenuMixin, CreateView):
|
||||
model = Page
|
||||
form_class = PageForm
|
||||
template_name = 'cms/new.html'
|
||||
|
||||
class CreateSection(StaffRequiredMixin, CreateView):
|
||||
class CreateSection(StaffRequiredMixin, MenuMixin, CreateView):
|
||||
model = Section
|
||||
form_class = SectionForm
|
||||
template_name = 'cms/new.html'
|
||||
|
@ -47,7 +47,7 @@ class CreateSection(StaffRequiredMixin, CreateView):
|
|||
form.save()
|
||||
return redirect(self.request.session.get('previous_url'))
|
||||
|
||||
class CreateSubSection(StaffRequiredMixin, CreateView):
|
||||
class CreateSubSection(StaffRequiredMixin, MenuMixin, CreateView):
|
||||
model = SubSection
|
||||
form_class = SubSectionForm
|
||||
template_name = 'cms/new.html'
|
||||
|
@ -57,7 +57,7 @@ class CreateSubSection(StaffRequiredMixin, CreateView):
|
|||
form.save()
|
||||
return redirect(self.request.session.get('previous_url'))
|
||||
|
||||
class BaseUpdateView(StaffRequiredMixin, UpdateView):
|
||||
class BaseUpdateView(StaffRequiredMixin, MenuMixin, UpdateView):
|
||||
template_name = 'cms/edit.html'
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
|
@ -84,7 +84,7 @@ class BaseUpdateView(StaffRequiredMixin, UpdateView):
|
|||
context.update({
|
||||
'formset': formset,
|
||||
'formset_form_url': self.get_formset_form_url(self.object),
|
||||
'formset_description': self.formset_class.model._meta.verbose_name.title(),
|
||||
'formset_description': self.formset_class.model._meta.verbose_name,
|
||||
})
|
||||
return context
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue