mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-10-10 14:52:53 +00:00
77f903a9cba2bc228a7e7736cfb2598692aa6148
13 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
a29384a314 |
Bootstrap 5 & remove jQuery (#661)
* build: move frontend assets to Bootstrap 5.3 and Tom Select * feat: migrate templates and scripts to Bootstrap 5, dropping jQuery Templates - Rename Bootstrap 4 classes and data attributes (data-bs-*, ms-/me-/ps-/pe-, text-start/end, form-group -> mb-3, input-group wrappers removed, badges, custom controls -> form-check/form-select, media -> d-flex, btn-close, ...) - Dark mode now uses Bootstrap 5.3 colour modes (data-bs-theme on <html>), set from <head> to avoid a flash of the light theme - Remove the Bootstrap 4 /bootstrap/ demo page - Contextual table classes (table-success etc.) still work as plain backgrounds for the rigboard key JavaScript - Remove jQuery: src.js/interaction.js and every inline template script are rewritten in plain JS on top of small helpers (helpers.js, bundled with Bootstrap into jpop.js so inline scripts can use them) - Replace bootstrap-select/ajax-bootstrap-select with Tom Select. The remote search now sends the `q` parameter and reads `text`, which is what the API actually uses (the old picker sent `term` and read `label`) - HTML fragments are fetched with an X-Requested-With header so views keep rendering their modal variants, and fetched scripts are re-executed - Remove the Bootstrap 4 plugin script includes * fix: stop rigboard header buttons stretching to full width under Bootstrap 5 * fix: restore dark-mode brand colours and contextual table colours under Bootstrap 5 * fix: brighten dark-mode links and make coloured card outlines visible * fix: calendar layout and grid borders, navbar search button width, guard missing modal links * fix: readable text in dark-mode Tom Select inputs and placeholders, restore form-control column widths * build: split the Dockerfile into cached stages with prod and dev targets * deploy: make compose.yml development-only with live reload, and document it * fix: keep badge text colour for links inside badges * fix: restore table-bordered grid lines in dark mode * fix: include Bootstrap's progress styles and keep progress labels readable |
||
| 08171767a0 |
Port to Django 5.2 (#635)
* Port to Django 5.2 * Pin pluggy to 1.2.0 Any newer and the mystery importlib metadata error appears. Weird! >_> * Update for premailer changed default * Update view logic for is_ajax being changed to a template context processor * Port a few more tests to pytest proper Having two distinct test flavours is giving me a headache * Version 1 dockerfile Makes a VERY big image, I suspect we can optimise this a lot... * Optimise dockerfile a little lot a bit * fix(users): change logout link to POST request * fix(tests): fix some syntax errors in test code still got lots of failed tests :( * fix: replace deprecated Django APIs * ci: update Dockerfile * ci: update Dockerfile * fix(dependencies+tests): update EoL/vulnerable dependencies and improve test stability * Upgrade Python from 3.10 to 3.12 * Update frontend dependencies, replace node-sass with sass * chore(logging): ignore dangling obj reference warning from pypdf * ci: update compose.yml for prod deployment - Add Nginx as a reverse proxy - Add cert-selfsign.sh for generating self-signed certificates - Add certbot-issue.sh for Let's Encrypt certificate issuance and renewal - Add cron-install.sh and cron-uninstall.sh for system cron management - Add .env.example as an environment variable template * style: reformat code * ci: add more sleep trying to pass tests * ci: ignore browser-based tests during ci testing * fix: create home for the new user during Dockerfile building * chore: remove heroku conf file * fix: RIGS not franken anymore * fix: restore is_ajax as a boolean and split out the context processor * test: remove Selenium interaction tests and their CI workarounds * fix: harden production settings (CSRF origins, env casts, ADMINS) and drop dead debug toolbar code * deploy: serve static files from nginx, pin PGDATA, and make cert scripts loud on failure * build: switch .dockerignore to an allowlist * build: drop unused dependencies, soft-pin the rest and target Python 3.14 * build: move image to Python 3.14 / Node 24 and force DEBUG off * ci: add dependabot config for uv, npm, docker and actions * build: narrow Sass deprecation silencing to @import and require Node 24 * build: provide placeholder env for collectstatic now that DEBUG is off in the image * deploy: add plain-HTTP nginx config for local development and use it in compose * deploy: remove self-signed cert script * build: make the image multi-arch with official node and python base images * ci: lint and test on PRs, build the image on PRs and push it to GHCR on master * docs: add local running and sample data instructions * fix: report a form error instead of crashing when big power has no Power MIC * fix: upgrade pypdf and urllib3 to patched releases * fix: apply non-breaking npm audit fixes * fix: strip whitespace in ALLOWED_HOSTS and drop misleading HSTS preload * deploy: add a pyrigs healthcheck and make nginx wait for it * build: pin the uv image version * fix: correct the check-in person picker condition and use BeautifulSoup's string argument * refactor: replace unique_together with UniqueConstraint * build: replace pycodestyle with ruff and fix what it found Removes unused imports and variables, and fixes a few real problems it surfaced: - EventCheckIn.active() referenced an undefined name and raised NameError; it now returns whether the check-in has no end time - RIGS.admin defined EventChecklistAdmin twice; the second is now PowerTestRecordAdmin - RIGS/tests/conftest.py used date/timedelta without importing them - the signal-registering imports in apps.py are kept with noqa pycodestyle config in setup.cfg is dropped. * style: format the codebase with ruff * style: normalise line endings, trailing whitespace and end-of-file newlines * ci: run ruff and file hygiene through prek, and document it --------- Co-authored-by: Hang <me@hangxu.me> Co-authored-by: Joe Banks <joe@jb3.dev> |
|||
|
|
db387c768a | Potentially support cmd+P on macOS for printing events | ||
|
|
87dd32da6c |
Add shortcut to event page for opening PDF with Ctrl+P
Closes #457. You can still use browser default print if you are so inclined (however it looks trash). This is a quick way to export the PDF. |
||
|
|
99fdca6a2d |
Show crew list on event checklist view (#613)
* Split crew list into partial * Use new crew list partial on event checklist |
||
|
|
89d7c5140e |
Add fields to rig info for additional access requirements (#611)
* Add fields to rig info for additional access requirements * Add form field for additional access requirements * Display access requirements in rig info * Make access requirements field non-required Oops... * Add event access field to risk assessment * Allow for modification and display risk assessment venue access item * Correct tests for RAs with new parking fields * Add note to new venue access component of RA * Correct div boundaries for non-rig access requirements * Fill parking and access field in sample data generator * Set parking and access field to false in RA creation test * Hopefully the final correction of the RA test suite |
||
| 01a0b8f831 |
Add event checkin functionality, seperate power tests into a different form (#536)
* Split power related parts of event checklist into a seperate form * Revamp H&S overview, remove individual lists. They were not a good thing. * Remove old 'vehicle/crew' stuff * Very initial version of checkin form * Further work on checkin, add role field etc * Fix tests after form split * Add ability to edit checkins, more validation * Basic checkin/out logic complete * Add homepage checkin for events happening now * Minor improvement to homepage UI * Checkin button turns into checkout button where applicable * UI work * Clicking check out does not redirect the user * Register check in model with the admin site * Add power record status chip, checklist status chip displays number of checklists * Minor fixes * Implement codedoctor suggestions * pep8 * Add data migration for crew/vehicles * Checkin only requires login (no perms) and block users from editing other checkins at Django level |
|||
|
|
a01e351e89 |
Markdown (#214)
* Add basic markdown support site wide
* Improved MD support.
Add some styling for images in MD
Add support for the bastardisation of the MD html for RML.
* Add processing for <ul> in RML
* Add OL processing to RML
* Fix a bug with squares appearing around the last page number
* Remove rml formatting in event_detail
* Improve handling of code blocks in RML
* Add MD to rigboard
Reduce MD title sizes as they were offensively large
* Add parsing of markdown when editing event items
* Improved list handling in RML
* Add tests for markdown support.
Focuses mainly on RML as that's where it will break
* Add indications of where MD support is enabled as per comment by @samozzy in #178.
Isn't quite a full description, but for the most part this should be enough for the people who know how to use it see where they can use it.
* Add failing test for markdown processing none
* Fix for failing test in e0d56e
* Add failing test for using single line breaks as per comment on #214
* Enable line break extension for single breaks in paragraphs by new lines.
Pass tests in
|
||
|
c4fec483ae
|
FIX/CHNG: Clients may see line prices on event auth form
Not sure why they couldn't previous, its not like we only quote totals... |
|||
| 57e966826e |
Redesign invoice detail page
Closes #431 |
|||
| 911336ceec | More optimisation and cleanup (#420) | |||
| 2bf0175786 |
Toolchain/Dependency Upgrade (#418)
* Upgrade to heroku-20 stack * Move some gulp deps to dev rather than prod * npm upgrade * Fix audit time check in asset audit test * Attempt at parallelising tests where possible * Add basic calendar button test Mainly to pickup on FullCalendar loading errors * Upgrade python deps * Tends to help if I push valid yaml * You valid now? * Fix whoops in requirements.txt * Change python ver * Define service in coveralls task * Run parallelised RIGS tests as one matrix job * Update python version in tests * Cache python dependencies Should majorly speedup parallelillelelised testing * Purge old vagrant config * No Ruby compass bodge, no need for rubocop! * Purge old .idea config * Switch to gh-a artifact uploading instead of imgur 'hack' For test failure screenshots. Happy now @mattysmith22? ;p * Oops, remove unused import * Exclude tests from the coverage stats Seems to be artifically deflating our stats * Refactor asset audit tests with better selectors Also fixed a silly title error with the modal * Add title checking to the slightly insane assets test * Fix unauth test to not just immediately pass out * Upload failure screenshots as individual artifacts not a zip Turns out I can't unzip things from my phone, which is a pain * Should fix asset test on CI * What about this? * What about this? Swear I spend my life jiggerypokerying the damn test suite... * Does this help the coverage be less weird? * Revert "Does this help the coverage be less weird?" This reverts commit |
|||
| 3414204209 |
Refactor buildsystem to NPM/Gulp, port to BS4 & rewrite RIGS tests accordingly... (#412)
* Start to seperate versioning into its own app * Start reworking invoice things * Reduced overall font size a touch * Improvements to generic lists * Tweak some colours to be a bit less OTT I need to work out if I can seperate background and primary colours like BS3 did * Improvements to event table mobile * First pass at mobile-ising the generic list * Item table fixes * Fixed fullcalendar print css not included * Asset list table improvements * Tweak asset list to be more in line with other lists * Versioning template improvements //TODO Rather than have seperate asset templates, convert 'id' into a template variable * Tweak versioning templates to allow ID overrides Asset specific templates begone. Still need to bring back the ID formatting for the Rigboard. * Asset form fixes * Use the right autocompleter.js... * Breakout (most) user stuff to separate module The model remains in RIGS for now, as it's pretty painful to move... * Python Format/import opt * Test Refactor Part 1 - Shuffle things around * Fix migrations TODO - need to ensure moved models are *moved* rather than deleted and recreated! * Start on new tests * Initial work on event create test reimpl * Init other tests, more rigs test faffery * Desaturate theme colors even more Much closer to BS3 * Fix event item adding Bit too heavy handed with the deduplication there Arona * Initial refactor of event item testing * Upgrade bootstrap-select * Updated bootstrap-select for BS4 * Initial port of duplicate testing Needs the latter half rewriting once we have an EventDetail POM * Refactor date validation test So close to killing test_functional.EventTest! * Deduplication of testing code * pep8 * Fix some tests And some things that were actually borked * FIX: Prevent setting access time after start time Cherry pick of |