Skip to content

Commit

Permalink
Revert "Fix MR 454 conflicts"
Browse files Browse the repository at this point in the history
  • Loading branch information
pablodiegoss authored Feb 16, 2025
1 parent 53a18e1 commit 5321c7f
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 26 deletions.
24 changes: 1 addition & 23 deletions src/core/forms.py
Original file line number Diff line number Diff line change
@@ -1,30 +1,8 @@
from django import forms
from django.utils.safestring import mark_safe

from .models import Exhibit



class ListTextWidget(forms.TextInput):
def __init__(self, *args, **kwargs):
super(ListTextWidget, self).__init__(*args, **kwargs)
self._name = "exhibit-list"
self._list = Exhibit.objects.all().order_by("name")
self.attrs.update({"list": f"list__{self._name}"})

def render(self, name, value, attrs=None, renderer=None):
text_html = super(ListTextWidget, self).render(name, value, attrs=attrs)
data_list = f'<datalist id="list__{self._name}">'
for item in self._list:
data_list += f'<option value="{item.slug}">{item.name}</option>'
data_list += "</datalist>"
return mark_safe(text_html + data_list)


class ExhibitForm(forms.Form):
exhibit = forms.CharField(required=True)

def __init__(self, *args, **kwargs):
super(ExhibitForm, self).__init__(*args, **kwargs)
self.fields["exhibit"].widget = ListTextWidget()
self.fields["exhibit"].label = ""
exhibit = forms.ModelChoiceField(queryset=Exhibit.objects.all().order_by("name"))
28 changes: 26 additions & 2 deletions src/core/jinja2/core/exhibit_select.jinja2
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,40 @@

<div class="exhibit-form">
<h2>{{_("Choose the Exhibition you're seeing")}}</h2>
<form name="exhibit-form" action="{{url('exhibit_select')}}" method="post" autocomplete="off">
<div class="search-area">
<input type="text" id="search-box" name="search" onkeyup="findExhibit()" autocomplete="off" />
</div>
<form name="exhibit-form" action="{{url('exhibit_select')}}" method="post">
{{ csrf_input }}
{{ form }}
{% for field in form.visible_fields() %}
<p class="exhibit-field {{field.name}}">
{{ field }}
{{ field.errors }}
</p>
{% endfor %}
<input class="submit-btn" type="submit" value="{{ _('Submit') }}"/>
</form>
</div>
</div>
<script>
let field = document.getElementById('id_exhibit');
field.style="padding: 0";
function findExhibit() {
let field = document.getElementById('id_exhibit').options;
let searchValue = document.getElementById("search-box").value;
for (keys in field) {
if (field[keys].innerHTML !== undefined) {
let valueField = field[keys].innerHTML
if (valueField.toUpperCase().indexOf(searchValue.toUpperCase()) > -1 && searchValue != "") {
field[keys].selected = "selected";
} else {
field[keys].selected = "";
}
}
}
}
$('#id_exhibit').on('change',function(e){
if($(this).prop('value') != ''){
$('input[type="submit"]').prop('disabled', false);
Expand Down
2 changes: 1 addition & 1 deletion src/core/views/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ def exhibit_select(request):
form = ExhibitForm(request.POST)
if form.is_valid():
exhibit = form.cleaned_data.get("exhibit")
return redirect("/" + exhibit)
return redirect("/" + exhibit.slug)
else:
form = ExhibitForm()

Expand Down

0 comments on commit 5321c7f

Please sign in to comment.