Pixel peeping + javascript robustness

main
Jaap Joris Vens 2020-03-13 09:39:27 +01:00
rodzic 712b542610
commit 1989615e60
9 zmienionych plików z 82 dodań i 83 usunięć

Wyświetl plik

@ -51,6 +51,8 @@ class PageForm(forms.ModelForm):
fields = '__all__'
class SectionForm(forms.ModelForm):
type = forms.ChoiceField()
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
@ -80,16 +82,17 @@ class SectionForm(forms.ModelForm):
section.save()
return section
core_field_names = ['title', 'type', 'number', 'content', 'image', 'video', 'href']
def core_fields(self):
return [field for field in self.visible_fields() if field.name in self.core_field_names]
def extra_fields(self):
return [field for field in self.visible_fields() if field.name not in self.core_field_names]
class Meta:
model = Section
exclude = ['page']
#field_classes = {
# 'type': forms.ChoiceField,
#}
# There is definitely a bug in Django, since the above 'field_classes' gets
# ignored entirely. Workaround to force a ChoiceField anyway:
type = forms.ChoiceField()
class BaseSectionFormSet(forms.BaseInlineFormSet):
'''If a swappable Section model defines one-to-many fields, (i.e. has

Wyświetl plik

@ -29,7 +29,8 @@ form.cms {
border: 0.5px solid #ccc;
clear: both;
margin: 0.5em 0em;
padding: 0.5em;
padding: 0.25em 0.5em;
padding-top: 0;
border-radius: 0.25em;
}
@ -41,7 +42,7 @@ form.cms {
}
div.formfield {
margin-bottom: 10px;
margin: 0.25em 0;
clear: both;
box-sizing: border-box;
@ -54,43 +55,38 @@ form.cms {
width: 20%;
float: right;
}
}
div.formfield.error {
border: 2px dotted red;
border-radius: 3px;
padding: 0.5em;
//margin: 10px -50px;
background: #f001;
select, input, textarea {
background: white;
}
}
div.formfield.required {
div.label {
&.title {
font-weight: 700;
}
}
div.label, label {
font-size: 0.7rem;
font-weight: 400;
text-align: left;
margin-bottom: 2px;
}
&.error {
border: 2px dotted red;
border-radius: 3px;
padding: 0.5em;
margin-top: 0.5em;
background: #f001;
div.input {
overflow: hidden;
}
select, input, textarea {
background: white;
}
}
div.helptext, span.required {
color: #666;
font-size: 12px !important;
font-weight: 400 !important;
}
div.label, label {
font-size: 0.7rem;
font-weight: 400;
text-align: left;
margin-bottom: 2px;
}
span.required {
font-style: italic;
div.input {
overflow: hidden;
}
div.helptext {
color: #666;
font-size: 12px !important;
font-weight: 400 !important;
}
}
input, select, textarea {
@ -105,15 +101,13 @@ form.cms {
margin: 0;
padding: 5px 8px;
font-family: inherit;
font-weight: inherit;
}
input[type=checkbox] {
width: auto;
display: inline-block;
vertical-align: middle;
}
input[name$=title] {
font-weight: 700;
}
textarea {
font-size: 1rem;
height: 15em;

Wyświetl plik

@ -21,7 +21,8 @@ form.cms {
border: 0.5px solid #ccc;
clear: both;
margin: 0.5em 0em;
padding: 0.5em;
padding: 0.25em 0.5em;
padding-top: 0;
border-radius: 0.25em; }
form.cms img {
display: block;
@ -29,7 +30,7 @@ form.cms {
width: 50px;
cursor: pointer; }
form.cms div.formfield {
margin-bottom: 10px;
margin: 0.25em 0;
clear: both;
box-sizing: border-box; }
form.cms div.formfield.type, form.cms div.formfield.number, form.cms div.formfield.slug {
@ -39,28 +40,27 @@ form.cms {
form.cms div.formfield.number {
width: 20%;
float: right; }
form.cms div.formfield.error {
border: 2px dotted red;
border-radius: 3px;
padding: 0.5em;
background: #f001; }
form.cms div.formfield.error select, form.cms div.formfield.error input, form.cms div.formfield.error textarea {
background: white; }
form.cms div.formfield.required div.label {
font-weight: 700; }
form.cms div.label, form.cms label {
font-size: 0.7rem;
font-weight: 400;
text-align: left;
margin-bottom: 2px; }
form.cms div.input {
overflow: hidden; }
form.cms div.helptext, form.cms span.required {
color: #666;
font-size: 12px !important;
font-weight: 400 !important; }
form.cms span.required {
font-style: italic; }
form.cms div.formfield.title {
font-weight: 700; }
form.cms div.formfield.error {
border: 2px dotted red;
border-radius: 3px;
padding: 0.5em;
margin-top: 0.5em;
background: #f001; }
form.cms div.formfield.error select, form.cms div.formfield.error input, form.cms div.formfield.error textarea {
background: white; }
form.cms div.formfield div.label, form.cms div.formfield label {
font-size: 0.7rem;
font-weight: 400;
text-align: left;
margin-bottom: 2px; }
form.cms div.formfield div.input {
overflow: hidden; }
form.cms div.formfield div.helptext {
color: #666;
font-size: 12px !important;
font-weight: 400 !important; }
form.cms input, form.cms select, form.cms textarea {
background: #fff6;
color: black;
@ -72,13 +72,12 @@ form.cms {
box-sizing: border-box;
margin: 0;
padding: 5px 8px;
font-family: inherit; }
font-family: inherit;
font-weight: inherit; }
form.cms input[type=checkbox] {
width: auto;
display: inline-block;
vertical-align: middle; }
form.cms input[name$=title] {
font-weight: 700; }
form.cms textarea {
font-size: 1rem;
height: 15em;

Wyświetl plik

@ -5,5 +5,5 @@
"admin.scss"
],
"names": [],
"mappings": "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"
"mappings": "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"
}

Wyświetl plik

@ -46,6 +46,9 @@
for (let el of extra_form.querySelectorAll(`*[for^=id_${prefix}]`)) {
increment(el, 'id_' + prefix, 'for');
}
for (let el of extra_form.querySelectorAll(`*[id^=formfield_${prefix}]`)) {
increment(el, 'formfield_' + prefix, 'id');
}
node.remove();
parent.appendChild(extra_form);
@ -82,16 +85,13 @@
function showRelevantFields(form, type) {
let fields_per_type = {{fields_per_type|safe}};
for (let field of form.querySelectorAll(`fieldset#${form.id} > div`)) {
field.hidden = true;
}
for (let field of form.querySelectorAll(`fieldset#${form.id} > div.DELETE`)) {
field.hidden = false;
for (let field of form.querySelectorAll(`fieldset#${form.id} > div.formfield`)) {
if (!field.id.endsWith('DELETE')) {
field.hidden = true;
}
}
for (let name of fields_per_type[type]) {
for (let field of form.querySelectorAll(`fieldset#${form.id} > div.${name}`)) {
field.hidden = false;
}
document.getElementById(`formfield_${form.id}-${name}`).hidden = false;
}
}

Wyświetl plik

@ -5,11 +5,13 @@
{% for field in form.hidden_fields %}
{{field}}
{% endfor %}
{% for field in form.visible_fields %}
{% include 'cms/formfield.html' with field=field %}
{% endfor %}
{% for formset in form.formsets %}
<div id="{{formset.prefix}}" class="formset {{formset.name}}">
<div class="formfield {{formset.name}}" id="formfield_{{formset.prefix}}">
{{formset.management_form}}
{% for form in formset %}
{% include 'cms/form.html' %}

Wyświetl plik

@ -1,7 +1,7 @@
{% if field.name == 'DELETE' and not form.instance.pk %}
{% else %}
<div class="formfield{% if field.errors %} error{% endif %}{% if field.field.required %} required{% endif %} {{field.name}}">
<div class="formfield {{field.name}}{% if field.errors %} error{% endif %}" id="formfield_{{field.html_name}}">
<div class="errors">
{{field.errors}}
</div>

Wyświetl plik

@ -4,7 +4,7 @@
{% block content %}
<form method="post" class="cms" novalidate>
<div class="wrapper">
<div class="wrapper" style="max-width: 300px">
{% csrf_token %}
<fieldset>
{{form.non_field_errors}}

Wyświetl plik

@ -171,9 +171,10 @@ class EditPage(UserPassesTestMixin, edit.ModelFormMixin, base.TemplateResponseMi
return context
def get_object(self):
'''Prevent 404 by serving the new object form'''
try:
return super().get_object()
except:
except Http404:
return None
def get(self, request, *args, **kwargs):