I initially looked at adding the Catalog Concerns functionality into the existing OPAC Problem reports feature but quick found that troublesome. However, I still think the two sets of functionality can be merged and I designed the Catalog Concerns data structure and api's with that in mind. We should start migrating the OPAC Problem reports functionality into the Catalog concerns 'tickets' structure as the beginnings of a new 'Enquiries' module.
*** Bug 25466 has been marked as a duplicate of this bug. ***
Only 'Bug 35287: Preparation: Extend AdditionalFields Mixin' is actually required from bug 35287 in the dependencies.. I'm tempted to split that out into it's own bug.
Created attachment 160199 [details] [review] Bug 34324: Add opac_problem to source enum of tickets
Created attachment 160200 [details] [review] Bug 34324: Add relationship aliases
Created attachment 160201 [details] [review] Bug 34324: Add support for additional fields to /tickets We need to store page_url as part of the opac_report functionality. Rather than adding fields to the core tickets table, it makes sense to utilise the additional_fields functionality.
Created attachment 160202 [details] [review] Bug 34324: Add additional_field_value to definitions
Created attachment 160203 [details] [review] Bug 34324: API Tests
Created attachment 160204 [details] [review] Bug 34324: Make biblio_id a nullable field
Created attachment 160205 [details] [review] Bug 34324: Add 'Report a problem' modal This patch adds a modal for reporting opac problems. This will allow us to remove the controller and template code for the feature.
Created attachment 160206 [details] [review] Bug 34324: Add page_url to additional_fields
Work in progress.. still to do. 1) Re-implement/extend tickets endpoint to accept a target for who to notify by email on new submissions (we already do this for catalogue concerns, but it's hard coded to cataloguer email.. maybe we should expose it in a header as an option instead... or perhaps bing on source + audience) 2) Convert staff side interface to use the display framework built for catalog concerns. 3) Migrate existing problem reports into tickets 4) Drop the old controllers and tables