diff options
author | Dave Arter <davea@mysociety.org> | 2019-11-04 14:45:16 +0000 |
---|---|---|
committer | Dave Arter <davea@mysociety.org> | 2019-12-09 12:48:12 +0000 |
commit | 977f2d023bf5eb3e54f0b00664127b59a26371a5 (patch) | |
tree | bd7e5a32fa6d753710acd005a0922433e5b7aee4 | |
parent | 9f99597cb802c800fcb4e3e06ec153182c004be4 (diff) |
Include groups on inspector/admin category dropdown
Shows categories hierarchically, and for categories that appear in multiple groups
ensures the correct one is selected based on problem’s category_group extra field.
-rw-r--r-- | templates/web/base/admin/report-category.html | 12 | ||||
-rw-r--r-- | templates/web/base/report/new/_category_select.html | 13 | ||||
-rw-r--r-- | templates/web/base/report/new/category.html | 22 |
3 files changed, 23 insertions, 24 deletions
diff --git a/templates/web/base/admin/report-category.html b/templates/web/base/admin/report-category.html index 64aa474b9..e76106f7f 100644 --- a/templates/web/base/admin/report-category.html +++ b/templates/web/base/admin/report-category.html @@ -1,17 +1,15 @@ [%~ IF NOT select_name %] [%~ select_name = 'category' %] [%~ END %] +[%~ BLOCK category_option ~%] +<option value="[% cat.category | html %]"[% ' selected' IF problem.category == cat.category %]>[% cat.category_display | html %]</option> +[%~ END ~%] + <select class="form-control" name="[% select_name %]" id="[% select_name %]"> [% IF NOT problem.category OR NOT categories_hash.${problem.category} %] <optgroup label="[% loc('Existing category') %]"> <option selected value="[% problem.category | html %]">[% (problem.category_display OR '-') | html %]</option> </optgroup> [% END %] - [% IF category_options.size %] - <optgroup label="[% loc('Available categories') %]"> - [% FOREACH cat IN category_options %] - <option value="[% cat.category | html %]"[% ' selected' IF problem.category == cat.category %]>[% cat.category_display | html %]</option> - [% END %] - </optgroup> - [% END %] + [%~ INCLUDE 'report/new/_category_select.html' ~%] </select> diff --git a/templates/web/base/report/new/_category_select.html b/templates/web/base/report/new/_category_select.html new file mode 100644 index 000000000..d5aa9842b --- /dev/null +++ b/templates/web/base/report/new/_category_select.html @@ -0,0 +1,13 @@ +[%~ IF category_groups.size ~%] + [%~ FOREACH group IN category_groups ~%] + [% IF group.name %]<optgroup label="[% group.name %]">[% END %] + [%~ FOREACH cat IN group.categories ~%] + [% INCLUDE category_option %] + [%~ END ~%] + [% IF group.name %]</optgroup>[% END %] + [%~ END =%] +[%~ ELSE ~%] + [%~ FOREACH cat IN category_options ~%] + [% INCLUDE category_option %] + [%~ END =%] +[%~ END ~%] diff --git a/templates/web/base/report/new/category.html b/templates/web/base/report/new/category.html index 264a08861..961954f33 100644 --- a/templates/web/base/report/new/category.html +++ b/templates/web/base/report/new/category.html @@ -8,10 +8,10 @@ END ~%] [% IF category_options.size OR category_groups.size ~%] [%~ BLOCK category_option ~%] - [% cat_op_lc = cat_op.category | lower =%] - <option value='[% cat_op.category | html %]'[% ' selected' IF report.category == cat_op.category || category_lc == cat_op_lc ~%] - >[% IF loop.first %][% cat_op.category_display %][% ELSE %][% cat_op.category_display | html %][% END %] - [%~ IF cat_op.get_extra_metadata('help_text') %] ([% cat_op.get_extra_metadata('help_text') %])[% END ~%] + [% cat_lc = cat.category | lower =%] + <option value='[% cat.category | html %]'[% ' selected' IF report.category == cat.category || category_lc == cat_lc ~%] + >[% IF loop.first %][% cat.category_display %][% ELSE %][% cat.category_display | html %][% END %] + [%~ IF cat.get_extra_metadata('help_text') %] ([% cat.get_extra_metadata('help_text') %])[% END ~%] </option> [%~ END ~%] @@ -27,19 +27,7 @@ END data-body="[% c.user.from_body.name %]" data-prefill="[% prefill_report %]" [%~ END ~%] > - [%~ IF category_groups.size ~%] - [%~ FOREACH group IN category_groups ~%] - [% IF group.name %]<optgroup label="[% group.name %]">[% END %] - [%~ FOREACH cat_op IN group.categories ~%] - [% INCLUDE category_option %] - [%~ END ~%] - [% IF group.name %]</optgroup>[% END %] - [%~ END =%] - [%~ ELSE ~%] - [%~ FOREACH cat_op IN category_options ~%] - [% INCLUDE category_option %] - [%~ END =%] - [%~ END ~%] + [%~ INCLUDE 'report/new/_category_select.html' ~%] </select> [%~ IF category_groups.size ~%] <label id="form_subcategory_label" class="hidden"> |