* add lynx
* stale thread fix, add ?tag amcro, config categories from menu
* copilot actually right
* comment out stale ticket logic so doesnt cause havoc
* pre commit
* ratelimit
* Add blockkit
* Use blockkit for header components
* Add get_header_components()
* Add a APP_HOME_VIEWS list to reduce repetition
* Re-add `buttons = Actions()`
bc that merged wrongly somehow
* Remove Question Tags view button
* Switch to blockkit for dashboard view
Also splits get_ticket_status_pie_chart into two functions!
* Add some form of codebase contributing documentation
* Rename helper.py => dashboard.py
* Fix caption for fallback pie image
* Add ai-based ticket categorization and you can add tags in the bot homepage
* made the CategoryTag model and refactored the code to support it
* Implemented the fulfillment reminder to send all open tickets in the past 24h for amber to check them :)
* removed the ability to manage categories from the UI/fixed stuff
* Fix type error
* removed question tags
* Re-add question tags to DB schema
This is only because we don't have migrations rn so we can't actually delete stuff from the DB
---------
Co-authored-by: MMK21Hub <50421330+MMK21Hub@users.noreply.github.com>
* Rename tags to team tags
* Add a TagType enum with TEAM and QUESTION options
* Ticket#questionTag exists now
* Revert "Add a TagType enum with TEAM and QUESTION options"
This reverts commit c9a17f4003aa2ce470f82810ac031fe83325f3d6.
* Add a new QuestionTag model
* Add another dropdown to the backend msg
* create tag => create team tag
* Add creating tags (from the backend channel)
* Create a single function for sending the backend message
Previously this code was duplicated across 2 places, making it inconsistent
* Rename a bunch of files; implement upating question tags on tickets
* Add a log!
* Fix ticket tag dropdowns in old msgs
* Auto-select the current question tag when a backend msg is posted
* Update backend message with the current tag
* Allow clearing the question tag
* Dynamically get question tag list
* Document question tags
* typo
* Change some log msgs to debug
* Only make the DB call if current_question_tag_id is present
* Remove unused variable
* Add createdAt to QuestionTag
* Ensure "reopened by [user]" is preserved when backend message is edited
* Add a script for creating dummy DB records
* Note that add_dummy_data takes a while to run
* Change the dummy data range to 2 weeks
* Ensure the dummy data script sets all the timestamps
Previously it wouldn't set assignedAt, closedAt, etc, despite the ticket being marked as closed