Browse Source

resolving issue with empty filter parameters

joel
Simon Bowie 2 years ago
parent
commit
08fcdb830c
3 changed files with 17 additions and 17 deletions
  1. +2
    -2
      web/app/book.py
  2. +12
    -12
      web/app/templates/resources.html
  3. +3
    -3
      web/app/tool.py

+ 2
- 2
web/app/book.py View File

books_query = Resource.query.filter_by(type=resource_type) books_query = Resource.query.filter_by(type=resource_type)
for key in request.args.keys(): for key in request.args.keys():
if key != 'view': if key != 'view':
if key == 'practice':
if (key == 'practice' and request.args.get(key) != ''):
books_1 = books_query.join(Relationship, Relationship.first_resource_id == Resource.id, isouter=True).filter(Relationship.second_resource_id==request.args.get(key)) books_1 = books_query.join(Relationship, Relationship.first_resource_id == Resource.id, isouter=True).filter(Relationship.second_resource_id==request.args.get(key))
books_2 = books_query.join(Relationship, Relationship.second_resource_id == Resource.id, isouter=True).filter(Relationship.first_resource_id==request.args.get(key)) books_2 = books_query.join(Relationship, Relationship.second_resource_id == Resource.id, isouter=True).filter(Relationship.first_resource_id==request.args.get(key))
books_query = books_1.union(books_2) books_query = books_1.union(books_2)
if key != 'practice':
if (key != 'practice' and request.args.get(key) != ''):
kwargs = {key: request.args.get(key)} kwargs = {key: request.args.get(key)}
books_query = books_query.filter_by(**kwargs) books_query = books_query.filter_by(**kwargs)
# finalise the query # finalise the query

+ 12
- 12
web/app/templates/resources.html View File

{{ view_switch() }} {{ view_switch() }}
{% if practices_filter%} {% if practices_filter%}
{{ filter_dropdown('practice', practices_filter, 'Practices') }}
{{ filter_dropdown('practice', practices_filter, 'Practices') }}
{% endif %} {% endif %}
{% if year_filter %} {% if year_filter %}
{{ filter_dropdown_nokey('year', year_filter, 'Year') }}
{{ filter_dropdown_nokey('year', year_filter, 'Year') }}
{% endif %} {% endif %}
{% if typology_filter %} {% if typology_filter %}
{{ filter_dropdown_nokey('typology', typology_filter, 'Typologies') }}
{{ filter_dropdown_nokey('typology', typology_filter, 'Typologies') }}
{% endif %} {% endif %}
{% if languages_filter %} {% if languages_filter %}
{{ filter_dropdown_nokey('scriptingLanguage', languages_filter, 'Scripting languages') }}
{{ filter_dropdown_nokey('scriptingLanguage', languages_filter, 'Scripting languages') }}
{% endif %} {% endif %}
{% if licenses_filter %} {% if licenses_filter %}
{{ filter_dropdown_nokey('license', licenses_filter, 'Licenses') }}
{{ filter_dropdown_nokey('license', licenses_filter, 'Licenses') }}
{% endif %} {% endif %}
{% if status_filter %} {% if status_filter %}
{{ filter_dropdown_nokey('status', status_filter, 'Maintenance status') }}
{{ filter_dropdown_nokey('status', status_filter, 'Maintenance status') }}
{% endif %} {% endif %}
<a href="{{ request.base_url }}?view={{ view }}">Reset</a> <a href="{{ request.base_url }}?view={{ view }}">Reset</a>
<div> <div>
{% if view == 'list' %} {% if view == 'list' %}
{% for resource in resources %}
{{ resource_list(resource, loop) }}
{% endfor %}
{% for resource in resources %}
{{ resource_list(resource, loop) }}
{% endfor %}
{% else %} {% else %}
{% for resource in resources %}
{{ resource_with_related(resource, loop) }}
{% endfor %}
{% for resource in resources %}
{{ resource_with_related(resource, loop) }}
{% endfor %}
{% endif %} {% endif %}
</div> </div>



+ 3
- 3
web/app/tool.py View File

tools_query = Resource.query.filter_by(type=resource_type) tools_query = Resource.query.filter_by(type=resource_type)
for key in request.args.keys(): for key in request.args.keys():
if key != 'view': if key != 'view':
if key == 'practice':
if (key == 'practice' and request.args.get(key) != ''):
tools_1 = tools_query.join(Relationship, Relationship.first_resource_id == Resource.id, isouter=True).filter(Relationship.second_resource_id==request.args.get(key)) tools_1 = tools_query.join(Relationship, Relationship.first_resource_id == Resource.id, isouter=True).filter(Relationship.second_resource_id==request.args.get(key))
tools_2 = tools_query.join(Relationship, Relationship.second_resource_id == Resource.id, isouter=True).filter(Relationship.first_resource_id==request.args.get(key)) tools_2 = tools_query.join(Relationship, Relationship.second_resource_id == Resource.id, isouter=True).filter(Relationship.first_resource_id==request.args.get(key))
tools_query = tools_1.union(tools_2) tools_query = tools_1.union(tools_2)
if key == 'scriptingLanguage':
if (key == 'scriptingLanguage' and request.args.get(key) != ''):
regex = request.args.get(key) + "$|" + request.args.get(key) + "\s\/" regex = request.args.get(key) + "$|" + request.args.get(key) + "\s\/"
tools_query = tools_query.filter(Resource.scriptingLanguage.regexp_match(regex)) tools_query = tools_query.filter(Resource.scriptingLanguage.regexp_match(regex))
if key != 'practice' and key != 'scriptingLanguage':
if ((key != 'practice' and key != 'scriptingLanguage') and request.args.get(key) != ''):
kwargs = {key: request.args.get(key)} kwargs = {key: request.args.get(key)}
tools_query = tools_query.filter_by(**kwargs) tools_query = tools_query.filter_by(**kwargs)
# finalise the query # finalise the query

Loading…
Cancel
Save