Suche konsolidiert, unterscheidet nicht mehr nach Abschnittstyp. Möglicherweise optimierungswürdig
This commit is contained in:
@@ -28,6 +28,6 @@
|
||||
<div class="flex-fill">{% block content %}Main Content{% endblock %}</div>
|
||||
<div class="col-md-2">{% block sidebar_right %}{% endblock %}</div>
|
||||
</div>
|
||||
<div>VorgabenUI v0.927</div>
|
||||
<div>VorgabenUI v0.930</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if resultat.kurztext %}
|
||||
<h2>Vorgaben mit "{{ suchbegriff }}" im Kurztext</h2>
|
||||
{% for standard, vorgaben in resultat.kurztext.items %}
|
||||
{% if resultat.all %}
|
||||
<h2>Vorgaben mit "{{ suchbegriff }}"</h2>
|
||||
{% for standard, vorgaben in resultat.all.items %}
|
||||
<h4>{{ standard }}</h4>
|
||||
<ul>
|
||||
{% for vorgabe in vorgaben %}
|
||||
@@ -24,18 +24,7 @@
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if resultat.langtext %}
|
||||
<h2>Vorgaben mit "{{ suchbegriff }}" im Langtext</h2>
|
||||
{% for standard, vorgaben in resultat.langtext.items %}
|
||||
<h4>{{ standard }}</h4>
|
||||
<ul>
|
||||
{% for vorgabe in vorgaben %}
|
||||
<li><a href="{% url 'standard_detail' nummer=vorgabe.dokument.nummer %}#{{vorgabe.Vorgabennummer}}">{{vorgabe}}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if not resultat.langtext and not resultat.kurztext and not resultat.geltungsbereich %}
|
||||
{% if not resultat.all %}
|
||||
<h2>Keine Resultate für "{{suchbegriff}}"</h2>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -15,27 +15,6 @@
|
||||
placeholder="Suchbegriff eingeben …"
|
||||
required>
|
||||
</div>
|
||||
|
||||
<!-- Check-box group -->
|
||||
<fieldset class="mb-4">
|
||||
<legend class="h6 mb-2">In folgenden Bereichen suchen:</legend>
|
||||
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" value="kurztext" id="kurztext" name="suchbereich[]" checked>
|
||||
<label class="form-check-label" for="kurztext">Kurztext</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" value="langtext" id="langtext" name="suchbereich[]" checked>
|
||||
<label class="form-check-label" for="langtext">Langtext</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" value="geltungsbereich" id="geltungsbereich" name="suchbereich[]">
|
||||
<label class="form-check-label" for="geltungsbereich">Geltungsbereich</label>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<button type="submit" class="btn btn-primary">Suchen</button>
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -14,21 +14,18 @@ def search(request):
|
||||
elif request.method == "POST":
|
||||
suchbegriff=request.POST.get("q")
|
||||
areas=request.POST.getlist("suchbereich[]")
|
||||
result= {}
|
||||
geltungsbereich=set()
|
||||
if "kurztext" in areas:
|
||||
qs = VorgabeKurztext.objects.filter(inhalt__contains=suchbegriff).exclude(abschnitt__gueltigkeit_bis__lt=datetime.date.today())
|
||||
result["kurztext"] = {k: [o.abschnitt for o in g] for k, g in groupby(qs, key=lambda o: o.abschnitt.dokument)}
|
||||
if "langtext" in areas:
|
||||
qs = VorgabeLangtext.objects.filter(inhalt__contains=suchbegriff).exclude(abschnitt__gueltigkeit_bis__lt=datetime.date.today())
|
||||
result['langtext']= {k: [o.abschnitt for o in g] for k, g in groupby(qs, key=lambda o: o.abschnitt.dokument)}
|
||||
if "geltungsbereich" in areas:
|
||||
result["geltungsbereich"]={}
|
||||
geltungsbereich=set(list([x.geltungsbereich for x in Geltungsbereich.objects.filter(inhalt__contains=suchbegriff)]))
|
||||
result= {"all": {}}
|
||||
qs = VorgabeKurztext.objects.filter(inhalt__contains=suchbegriff).exclude(abschnitt__gueltigkeit_bis__lt=datetime.date.today())
|
||||
result["kurztext"] = {k: [o.abschnitt for o in g] for k, g in groupby(qs, key=lambda o: o.abschnitt.dokument)}
|
||||
qs = VorgabeLangtext.objects.filter(inhalt__contains=suchbegriff).exclude(abschnitt__gueltigkeit_bis__lt=datetime.date.today())
|
||||
result['langtext']= {k: [o.abschnitt for o in g] for k, g in groupby(qs, key=lambda o: o.abschnitt.dokument)}
|
||||
result["geltungsbereich"]={}
|
||||
geltungsbereich=set(list([x.geltungsbereich for x in Geltungsbereich.objects.filter(inhalt__contains=suchbegriff)]))
|
||||
for s in geltungsbereich:
|
||||
result["geltungsbereich"][s]=render_textabschnitte(s.geltungsbereich_set.order_by("order"))
|
||||
for r in result.keys():
|
||||
for s in result[r].keys():
|
||||
result[r][s]=set(result[r][s])
|
||||
result["all"][s] = set(result[r][s])
|
||||
print (result)
|
||||
return render(request,"results.html",{"suchbegriff":suchbegriff,"resultat":result})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user