summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-01-23 16:33:10 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-01-23 16:33:10 +0100
commitdb214c18c7881724c78bdb1b454cf64813024f7b (patch)
tree9935281965c3f002a60ec8761f5102022af94276 /ishtar_common
parent2b01102025b51e7b4b4e750e43e006b07a738ac4 (diff)
downloadIshtar-db214c18c7881724c78bdb1b454cf64813024f7b.tar.bz2
Ishtar-db214c18c7881724c78bdb1b454cf64813024f7b.zip
Widgets: image input
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/forms.py9
-rw-r--r--ishtar_common/static/media/styles.css11
-rw-r--r--ishtar_common/templates/widgets/image_input.html15
-rw-r--r--ishtar_common/widgets.py4
4 files changed, 33 insertions, 6 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py
index 038e9bd07..eb548f70c 100644
--- a/ishtar_common/forms.py
+++ b/ishtar_common/forms.py
@@ -246,10 +246,11 @@ class IshtarForm(forms.Form):
def __init__(self, *args, **kwargs):
super(IshtarForm, self).__init__(*args, **kwargs)
for k in self.fields:
- cls = 'form-control'
- if 'class' in self.fields[k].widget.attrs:
- cls = self.fields[k].widget.attrs['class'] + " " + cls
- self.fields[k].widget.attrs['class'] = cls
+ if not hasattr(self.fields[k].widget, 'NO_FORM_CONTROL'):
+ cls = 'form-control'
+ if 'class' in self.fields[k].widget.attrs:
+ cls = self.fields[k].widget.attrs['class'] + " " + cls
+ self.fields[k].widget.attrs['class'] = cls
widget = self.fields[k].widget
if not isinstance(widget, DatePicker):
continue
diff --git a/ishtar_common/static/media/styles.css b/ishtar_common/static/media/styles.css
index 453583bbe..19116e94c 100644
--- a/ishtar_common/static/media/styles.css
+++ b/ishtar_common/static/media/styles.css
@@ -8,6 +8,17 @@
font-weight: bold;
}
+.form-thumbnail{
+ max-width: 120px;
+ max-height: 120px;
+ width: auto;
+ height: auto;
+}
+
+.form-group span label {
+ display: inline-block;
+}
+
.search .form-group {
margin-bottom: 0.2rem;
font-size: 0.9em;
diff --git a/ishtar_common/templates/widgets/image_input.html b/ishtar_common/templates/widgets/image_input.html
new file mode 100644
index 000000000..79be1aaf9
--- /dev/null
+++ b/ishtar_common/templates/widgets/image_input.html
@@ -0,0 +1,15 @@
+<div class="form-row form-control">
+ {% if is_initial %}
+ <span class="col-4">
+ <a href="{{ widget.value.url }}">
+ <img class="form-thumbnail" src="{{ widget.value.url }}">
+ </a>
+ </span>{% endif %}
+ <span class="col-8">
+ {% if not widget.required and is_initial %}
+ <input type="checkbox" name="{{ checkbox_name }}" id="{{ checkbox_id }}" />
+ <label for="{{ checkbox_id }}">{{ clear_checkbox_label }}</label>
+ {% endif %}
+ <input type="{{ widget.type }}" name="{{ widget.name }}"{% include "django/forms/widgets/attrs.html" %} />
+ </span>
+</div> \ No newline at end of file
diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py
index 24a87d5a8..a9fcdf798 100644
--- a/ishtar_common/widgets.py
+++ b/ishtar_common/widgets.py
@@ -261,8 +261,8 @@ class DeleteWidget(forms.CheckboxInput):
class ImageFileInput(ClearableFileInput):
- template_with_initial = u'<span class="prettyPhoto">%(initial)s</span>'\
- u' %(clear_template)s<br />%(input_text)s: %(input)s'
+ template_name = 'widgets/image_input.html'
+ NO_FORM_CONTROL = True
class SquareMeterWidget(forms.TextInput):