Compare commits

..

3640 Commits

Author SHA1 Message Date
dependabot[bot] e57c29a7b5 Bump lxml from 6.0.2 to 6.1.0
Bumps [lxml](https://github.com/lxml/lxml) from 6.0.2 to 6.1.0.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-6.0.2...lxml-6.1.0)

---
updated-dependencies:
- dependency-name: lxml
  dependency-version: 6.1.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 23:06:14 +00:00
Titouan ca37996d6a Merge pull request #1332 from ae-utbm/taiste
Stats & Whitelist, Eurockéenne, fix pagination, Vite 8, delete unused settings
2026-03-29 16:35:16 +02:00
klmp200 fcce34fde5 Merge pull request #1329 from ae-utbm/fix_pagination
Fix pagination
2026-03-29 09:59:50 +02:00
klmp200 a213bc058d Add request argument to paginate_jinja and paginate_htmx 2026-03-28 23:13:42 +01:00
klmp200 71bfdf68b7 Use urlencode for querystring macro 2026-03-28 23:01:52 +01:00
klmp200 2a9bb46e97 Fix 500 error on all broken pagination pages where with context was missing 2026-03-28 14:01:47 +01:00
Titouan 182cdbe590 Merge pull request #1324 from ae-utbm/eurock
Eurock
2026-03-25 13:20:38 +01:00
TitouanDor ac33a5e6b2 run pre-commit 2026-03-24 14:32:30 +01:00
TitouanDor 068bb9ab83 add widget eurock 2026-03-24 14:19:10 +01:00
thomas girod f9910c3360 Merge pull request #1320 from ae-utbm/user-whitelist
feat: whitelist for user visibility
2026-03-23 23:21:30 +01:00
imperosol f0f8cc5604 add permission to AE board to see hidden users in populate 2026-03-23 23:03:53 +01:00
imperosol 2a8e810ad0 always show the show_my_stats input 2026-03-23 23:03:53 +01:00
imperosol 739a1bba47 Use whitelist for picture identifications 2026-03-23 23:03:53 +01:00
imperosol 180852a598 add explanation comment 2026-03-23 23:03:53 +01:00
imperosol c3989a0016 add translations 2026-03-23 23:03:53 +01:00
imperosol 435c8f9612 include visibility settings in the user preferences page 2026-03-23 23:03:53 +01:00
imperosol 3d7f57b8da feat: whitelist for user visibility 2026-03-23 23:03:53 +01:00
thomas girod ffa0b94408 Merge pull request #1319 from ae-utbm/show-my-stats
show user stats to subscribers if show_my_stats is enabled
2026-03-20 13:49:48 +01:00
thomas girod 22a1f4ba07 Merge pull request #1317 from ae-utbm/remove-settings
remove unused settings
2026-03-20 13:47:22 +01:00
TitouanDor 76396cdeb0 add partnership with eurock in eboutic 2026-03-16 16:07:25 +01:00
imperosol 1c0b89bfc7 show user stats to subscribers if show_my_stats is enabled 2026-03-14 16:23:56 +01:00
thomas girod d374ea9651 Merge pull request #1318 from ae-utbm/vite
upgrade to vite 8
2026-03-13 09:48:42 +01:00
imperosol 10a4e71b7a upgrade to vite 8
FASTER FASTER FASTER FASTER FASTER FASTER
2026-03-13 09:46:12 +01:00
Titouan 173311c1d5 Merge pull request #1315 from ae-utbm/taiste
Product history, formula management, test election
2026-03-12 11:33:45 +01:00
imperosol f1a60e589a remove unused settings 2026-03-12 10:26:40 +01:00
thomas girod 00acda7ba3 Merge pull request #1316 from ae-utbm/update-deps
Update deps
2026-03-12 08:32:13 +01:00
imperosol 1686a9da87 update JS deps 2026-03-11 22:41:51 +01:00
imperosol 83255945c4 update python deps 2026-03-11 22:30:36 +01:00
thomas girod b4a6b6961b Merge pull request #1307 from ae-utbm/counter-sellers
Counter sellers
2026-03-11 18:09:49 +01:00
thomas girod 0f0702825e Merge pull request #1281 from ae-utbm/test_election
add test_election_form
2026-03-10 19:42:02 +01:00
imperosol b74b1ac691 refactor TestElectionForm 2026-03-10 19:39:40 +01:00
TitouanDor 33d4a99a2c move form test into a class TestElectionForm 2026-03-10 19:39:40 +01:00
TitouanDor c154b311c3 add test with wrong data form 2026-03-10 19:39:40 +01:00
TitouanDor fb8da93c68 add test_election_form 2026-03-10 19:39:40 +01:00
thomas girod 1845a7cbcf Merge pull request #1312 from ae-utbm/dynamic-formset
Dynamic formset
2026-03-10 19:31:49 +01:00
imperosol f17f17d8de use dynamic formset for product action formset 2026-03-10 19:26:30 +01:00
imperosol 7bb3d064ee add dynamic-formset-index.ts 2026-03-10 19:26:30 +01:00
imperosol 4f84ec09d7 add tests 2026-03-10 19:26:05 +01:00
imperosol 7e649b40c5 add translation 2026-03-10 19:26:05 +01:00
thomas girod 296feb6e32 Merge pull request #1305 from ae-utbm/user-all-groups
User all groups
2026-03-10 19:08:24 +01:00
imperosol 30663d87a4 directly work on group ids 2026-03-09 19:36:15 +01:00
thomas girod b5ff9b4c13 Merge pull request #1314 from ae-utbm/user-clubs
feat: API route to get user memberships
2026-03-09 19:06:30 +01:00
imperosol e2f6671ad0 apply review comments 2026-03-09 18:59:41 +01:00
imperosol 9a67926a49 feat: API route to get user memberships 2026-03-09 18:11:23 +01:00
imperosol 78c373f84e differentiate regular and temporary barmen on the counter edit view 2026-03-09 16:04:46 +01:00
imperosol a7c8b318bd add fields to CounterSellers 2026-03-09 16:04:46 +01:00
imperosol 1701ab5f33 feat: custom through model for Counter.sellers 2026-03-09 16:04:46 +01:00
imperosol 09a98db786 refactor election views permission check 2026-03-09 16:04:19 +01:00
imperosol 84ed180c1e refactor sas moderation view permission 2026-03-09 16:04:19 +01:00
imperosol 52759764a1 feat: User.all_groups 2026-03-09 16:04:19 +01:00
Titouan be1563f46f Merge pull request #1313 from ae-utbm/price_fix
modify price on discount
2026-03-08 15:37:26 +01:00
TitouanDor 5d3d44ec67 modify price on discount 2026-03-08 15:09:46 +01:00
thomas girod 25e19339ff Merge pull request #1310 from ae-utbm/product-input
exclude archived products from product autocompletion.
2026-03-07 16:40:41 +01:00
thomas girod 10c4a921db Merge pull request #1311 from ae-utbm/counter-products
Restrict products that non-admins can add to counter
2026-03-07 16:24:41 +01:00
imperosol 74bf462e90 restrict products that non-admins can add to counter 2026-03-07 16:08:14 +01:00
imperosol 8e4d367522 exclude archived products from product autocompletion.
Dans tous les contextes avec un champ Ajax sur les produits, on a besoin uniquement des produits non-archivés. C'est plus cohérent d'exclure les produits archivés de la recherche.
2026-03-06 18:40:21 +01:00
thomas girod f713903589 Merge pull request #1265 from ae-utbm/product-formula
Product formula
2026-03-04 17:55:26 +01:00
imperosol 9506c8688f show more infos on the formulas list page 2026-02-17 22:08:01 +01:00
imperosol f3f470ec6c make formula deletion page clearer 2026-02-17 22:08:01 +01:00
imperosol ced524587f add tests 2026-02-17 22:08:01 +01:00
imperosol 5f01f973de add translations 2026-02-17 22:08:01 +01:00
imperosol 6a6a7e949f add checks on ProductForm 2026-02-17 22:08:01 +01:00
imperosol 4e73f103d8 automatically apply formulas on click 2026-02-17 22:08:01 +01:00
imperosol b03346c733 product formulas management views 2026-02-17 22:08:01 +01:00
imperosol 7be1d1cc63 feat: ProductFormula model 2026-02-17 22:08:01 +01:00
thomas girod 71ed7cdf7d Merge pull request #1289 from ae-utbm/product_history
Product history
2026-02-17 22:05:59 +01:00
imperosol 43768171a1 show creation date on Product update page 2026-02-17 22:05:34 +01:00
imperosol 0eccb4a5b5 Add created_at and updated_at to Product model 2026-02-17 22:05:19 +01:00
thomas girod e7584c8c83 Merge pull request #1299 from ae-utbm/populate-more
add ban generation to populate_more
2026-02-17 22:04:18 +01:00
thomas girod ac06de4f55 Merge pull request #1300 from ae-utbm/csv-typo
fix: typo
2026-02-17 12:30:35 +01:00
imperosol e2fca3e6d2 fix: typo 2026-02-14 15:22:18 +01:00
imperosol 2138783bde add ban generation to populate_more 2026-02-14 15:14:45 +01:00
thomas girod 2995823d6e Merge pull request #1293 from ae-utbm/taiste
Refactors, updates and db optimisations
2026-02-13 15:25:04 +01:00
thomas girod 4391f63de8 Merge pull request #1292 from ae-utbm/merge-back
Merge back
2026-02-13 15:19:35 +01:00
klmp200 8b7eb6edf9 Merge branch 'master' into taiste 2026-02-13 15:16:26 +01:00
klmp200 f8cda3a31d Merge pull request #1291 from ae-utbm/update-hey-api
Update hey-api
2026-02-13 14:32:18 +01:00
klmp200 433d29fcdb Update hey-api 2026-02-13 14:27:52 +01:00
thomas girod 514b8bbec7 Merge pull request #1290 from ae-utbm/update-deps
Update deps
2026-02-13 14:21:15 +01:00
imperosol 84033f37cf update BiomeJS 2026-02-13 14:09:27 +01:00
imperosol e71f76ea91 remove shorten.min.js 2026-02-13 13:13:40 +01:00
imperosol 530475c4ee update JS dependencies 2026-02-13 11:58:20 +01:00
imperosol e992bebd68 update python dependencies 2026-02-13 11:52:02 +01:00
thomas girod 8f1c786aa2 Merge pull request #1274 from ae-utbm/remove-club-cache
remove cache calls to fetch user membership
2026-02-11 12:47:06 +01:00
imperosol c5ae81aae7 update docstrings 2026-02-10 13:08:36 +01:00
imperosol 252acc64c1 remove cache calls to fetch user membership 2026-02-10 13:08:36 +01:00
thomas girod 0d2430a5d4 Merge pull request #1288 from ae-utbm/cb-message
explanation message when eboutic bank payments are disabled
2026-02-09 19:37:12 +01:00
imperosol b6f77dea97 apply review suggestion 2026-02-09 15:24:52 +01:00
imperosol df2e65a991 explanation message when eboutic bank payments are disabled 2026-02-08 16:21:09 +01:00
thomas girod de776045a8 Merge pull request #1287 from ae-utbm/ruff
Update Ruff
2026-02-04 03:10:33 +01:00
imperosol 367ea703ce remove fmt: off 2026-02-03 21:23:34 +01:00
imperosol bdcb802da8 apply ruff rule PLW0108 2026-02-03 21:12:14 +01:00
imperosol 4e4b5a39f7 update ruff 2026-02-03 21:11:13 +01:00
klmp200 51534629ed Merge pull request #1279 from ae-utbm/fix_elections
fix: bad value for blank vote and better flow for invalid form
2026-02-03 15:18:33 +01:00
klmp200 c042c8e8a3 fix: bad value for blank vote and better flow for invalid form
* Add an error message when looking at a public election without being logged in
* Add correct value for blank vote on single vote field
* Redirect to view with an error message if an invalid form has been submitted
2026-02-03 10:05:36 +01:00
thomas girod 5af894060a Merge pull request #1273 from ae-utbm/fix-counter
fix: wrong quantity displayed on click after removing item
2026-01-21 22:42:27 +01:00
klmp200 679b8dac1c Merge pull request #1278 from ae-utbm/download-picture-fix
Fix image file generation on user image download
2026-01-21 22:04:09 +01:00
klmp200 e9eb3dc17d Fix image file generation on user image download
* Add image id on the name to avoid error with images with the exact same date (if we have epoch for example)
* Fix album name due to schema change not reflected here
2026-01-07 17:49:14 +01:00
klmp200 8c6f7c82c9 Merge pull request #1277 from ae-utbm/pedagogy
Don't craft urls in pedagogy frontend
2025-12-25 17:01:48 +01:00
klmp200 6ec1834540 Don't craft urls in pedagogy frontend 2025-12-24 14:48:03 +01:00
thomas girod 086a61f493 Merge pull request #1272 from ae-utbm/update-ue
rename UV to UE
2025-12-24 11:29:32 +01:00
imperosol 53a3dc0060 fix: wrong quantity displayed on click after removing item 2025-12-20 06:47:29 +01:00
Thomas Girod 775a3282dc rename UV to UE 2025-12-19 23:12:02 +01:00
thomas girod 32570ee03d Merge pull request #1266 from ae-utbm/matmat
Refactor Matmatronch
2025-12-18 13:13:28 +01:00
imperosol 2fa3597722 fix display of non field errors 2025-12-18 00:39:08 +01:00
klmp200 d484971dad Fix pagination on matmat, don't allow empty matmat search and add htmx pagination 2025-12-17 09:21:52 +01:00
klmp200 f24e39ccb7 Fix aria-busy when going backward on pages with htmx pagination 2025-12-17 00:01:48 +01:00
klmp200 3a57439d6e Merge pull request #1271 from ae-utbm/calendar-colors
Add different colors for recurring events on event calendar
2025-12-16 23:04:03 +01:00
thomas girod fbe5c741d1 Merge pull request #1270 from ae-utbm/calendar
Use ics rrule for recurrent event
2025-12-16 19:19:06 +01:00
klmp200 749cd067da Add different colors for recurring events on event calendar 2025-12-16 17:07:18 +01:00
Titouan 12b098feac Merge pull request #1269 from ae-utbm/dependence_update
update uv dependencies
2025-12-16 10:52:35 +01:00
imperosol 1abfbeb76c use ics rrule for recurrent event 2025-12-16 01:13:17 +01:00
TitouanDor 0fb86e5d77 modification pyproject.toml 2025-12-15 16:21:22 +01:00
TitouanDor 523e0ff0ee update uv dependencies 2025-12-15 15:22:14 +01:00
imperosol a68f16ba9d add tests 2025-11-30 19:12:37 +01:00
imperosol 1a99f4096e make matmatronch form more readable 2025-11-30 19:12:37 +01:00
imperosol 559a904e0d refactor: Matmatronch 2025-11-30 19:11:51 +01:00
imperosol fca6a58c5e feat: querystring jinja macro 2025-11-30 16:55:44 +01:00
imperosol 39c3e11d88 extract matmat forms into their own file 2025-11-29 14:48:30 +01:00
thomas girod d3edcaff14 Merge pull request #1264 from ae-utbm/refactor/user
Refactor some user views
2025-11-26 18:33:35 +01:00
imperosol 8c127a96f7 refactor: user godfathers views 2025-11-25 22:20:43 +01:00
imperosol 55d6e2bbec refactor: PasswordRootChangeView 2025-11-25 20:55:36 +01:00
imperosol e9fbac8264 test UserPreferencesView 2025-11-25 19:48:45 +01:00
imperosol 1911f2e6dd refactor: remove UserUpdateView.board_only
La variable n'a pas été utilisée depuis 2016
2025-11-25 19:47:52 +01:00
thomas girod 77bdc8dcb5 Merge pull request #1263 from ae-utbm/remove-group
refactor: remove useless Group methods
2025-11-25 16:42:50 +01:00
imperosol 00acdcd1a5 refactor: remove useless Group methods 2025-11-24 18:15:28 +01:00
thomas girod aa77cfd1c8 Merge pull request #1262 from ae-utbm/refactor/userstats
Refactor/userstats
2025-11-24 18:09:56 +01:00
imperosol 0d4b77ba1c take all purchases for global purchase sum 2025-11-24 17:00:28 +01:00
imperosol 5271783e88 refactor: user stats view 2025-11-24 16:49:22 +01:00
imperosol 4ff4d179a1 refactor: format_timedelta template filter 2025-11-24 16:49:15 +01:00
thomas girod 7cbb3a2c5d Merge pull request #1256 from ae-utbm/remove-is_validated
Database optimisations on counter
2025-11-24 16:46:15 +01:00
thomas girod a0768d6d7f Merge pull request #1261 from ae-utbm/refactor/index
refactor: `core/views/index.py`
2025-11-24 15:43:36 +01:00
imperosol f55627a292 refactor: core/views/index.py 2025-11-24 09:25:38 +01:00
thomas girod 4f802ac56e Merge pull request #1260 from ae-utbm/fix-warnings
Fix warnings
2025-11-24 07:43:51 +01:00
thomas girod 16a6e07d4b Merge pull request #1259 from ae-utbm/update-ninja
deps: bump django-ninja to 1.5.0
2025-11-24 07:43:39 +01:00
thomas girod 33d6300131 Merge pull request #1258 from ae-utbm/fix/product-action
fix: product scheduled action on product creation
2025-11-24 07:43:20 +01:00
imperosol 6709befb1f fix timezone issues 2025-11-23 01:30:44 +01:00
imperosol ddfb88ca2a remove settings.FORM_RENDERER 2025-11-23 01:22:15 +01:00
imperosol acdb9660f6 deps: bump django-ninja to 1.5.0 2025-11-23 00:48:32 +01:00
imperosol b60bd3a42b fix: product scheduled action on product creation
cf. issue #1257
2025-11-21 11:13:06 +01:00
imperosol 0c046b6164 translations 2025-11-19 21:03:55 +01:00
imperosol c588e5117d make Refilling.payment_method a SmallIntegerField 2025-11-19 21:03:55 +01:00
imperosol ad87617018 remove Refilling.bank 2025-11-19 21:03:55 +01:00
imperosol 56c2c2b70e remove Refilling.is_validated 2025-11-19 21:03:55 +01:00
imperosol 78fe4e52ca make Selling.payment_method a SmallIntegerField 2025-11-19 21:03:55 +01:00
imperosol 2a5893aa79 remove Selling.is_validated 2025-11-19 21:03:55 +01:00
thomas girod 0a4d21611e Merge pull request #1255 from ae-utbm/taiste
Refactors, better `PageRev` handling, better user invisibilisation and fixes
2025-11-19 14:02:59 +01:00
thomas girod 7373e3d9de Merge pull request #1254 from ae-utbm/refactor/page-merge
refactor detection of the need to merge `PageRev`
2025-11-19 13:52:52 +01:00
imperosol 3f4a41ba42 refactor detection of the need to merge PageRev 2025-11-19 13:51:38 +01:00
thomas girod 449abbb17e Merge pull request #1248 from ae-utbm/fix/api-barman-auth
fix: user search for anonymous sessions with logged barmen
2025-11-19 13:05:16 +01:00
thomas girod 9862e763ad Merge pull request #1249 from ae-utbm/membership-set-old
prevent csrf on `MembershipSetOldView`
2025-11-19 13:04:51 +01:00
imperosol 32e1f09d46 prevent csrf on MembershipSetOldView 2025-11-16 15:05:10 +01:00
imperosol f359fab6b4 style: class for <a>-like form submit buttons 2025-11-16 15:04:30 +01:00
imperosol 0b53db7a95 fix: user search for anonymous sessions with logged barmen
Quand une session n'était pas connectée en tant qu'utilisateur, mais avait des utilisateurs connectés en tant que barman, la route de recherche des utilisateurs était 401
2025-11-16 13:31:48 +01:00
imperosol d325b19383 typo in Sha512ApiKeyHasher docstring 2025-11-16 13:30:17 +01:00
imperosol 33cc9588b0 remove unused Mock 2025-11-16 13:12:58 +01:00
thomas girod 5f0d7c07ce Merge pull request #1246 from ae-utbm/club-sale
use FilterSchema for club sales view
2025-11-14 19:59:57 +01:00
imperosol 17421e5cc9 test ClubSellingCSVView 2025-11-12 22:00:18 +01:00
imperosol e00a64252e use FilterSchema for club sales. 2025-11-12 22:00:18 +01:00
thomas girod 926e5ae45c Merge pull request #1245 from ae-utbm/revert-gala-style
Revert "Custom style for Gala 2025"
2025-11-11 15:18:19 +01:00
imperosol a27d8d0755 Revert "Custom style for Gala 2025"
This reverts commit 8cbf42d714.
2025-11-11 15:16:45 +01:00
thomas girod 433fea1855 Merge pull request #1242 from ae-utbm/merge-rev
Reuse last PageRev if same author and small diff
2025-11-11 15:16:14 +01:00
imperosol c0ed5bd393 add diff ratio to the heuristic 2025-11-11 15:13:45 +01:00
imperosol ede15623df translations 2025-11-11 15:13:45 +01:00
imperosol b9aa07646a reuse last PageRev if same author and short time diff 2025-11-11 15:13:45 +01:00
imperosol 3c79bd4d01 test PageListView 2025-11-11 15:13:44 +01:00
imperosol 8819abe27c Custom 404 for Page 2025-11-11 15:13:44 +01:00
imperosol 30e76a5e39 move page templates to their own folder 2025-11-11 15:13:44 +01:00
imperosol d50bb0d9b1 remove dead code 2025-11-11 15:13:44 +01:00
thomas girod 6c5b348a0a Merge pull request #1244 from ae-utbm/subscription-defaults
add more default user infos on first subscription
2025-11-11 15:13:32 +01:00
imperosol d0340603a2 add more default user infos on first subscription 2025-11-11 15:07:06 +01:00
thomas girod 2d60ae2ed8 Merge pull request #1231 from ae-utbm/hide-user
better invisibilisation of hidden users
2025-11-11 14:34:57 +01:00
imperosol 80dbe7f742 exclude hidden users from ajax search 2025-11-11 14:31:20 +01:00
imperosol a571bda766 Show groups of Permission in admin 2025-11-11 14:31:20 +01:00
imperosol 04702335e2 rename User.is_subscriber_viewable => User.is_viewable 2025-11-11 14:31:20 +01:00
imperosol c942ff6aec don't show hidden users in picture identifications 2025-11-11 14:31:20 +01:00
thomas girod 164e8c7a53 Merge pull request #1243 from ae-utbm/remove-selectuser
remove unused `SelectUser`
2025-11-11 13:51:57 +01:00
imperosol 7042cc41f0 remove unused SelectUser 2025-11-11 13:49:33 +01:00
thomas girod 992b6d6b79 Merge pull request #1238 from ae-utbm/taiste
Sith theme, `Selling.date` index, galaxy simplification, OG tags, dependencies update, bugfixes and others
2025-11-10 13:19:43 +01:00
thomas girod a7284c936b Merge pull request #1240 from ae-utbm/remove-cancreatemixin
remove remaining `CanCreateMixin`
2025-11-10 13:18:56 +01:00
imperosol 53f7bf08d3 remove remaining CanCreateMixin 2025-11-10 00:19:16 +01:00
thomas girod 2dce0674a2 Merge pull request #1239 from ae-utbm/fix-og
fix: url in news_detail og:image
2025-11-09 23:07:15 +01:00
imperosol 0a3e0fa755 fix: url in news_detail og:image 2025-11-09 23:06:32 +01:00
thomas girod 2984e14746 Merge pull request #1237 from ae-utbm/remove-repair-fs
remove `SithFile._check_fs` and `SithFile.repair_fs`
2025-11-09 21:40:32 +01:00
thomas girod 99f79487aa Merge pull request #1236 from ae-utbm/csrf-api
remove deprecated api csrf argument
2025-11-09 21:38:36 +01:00
imperosol 075c6f16ec make ApiKeyAuth work on non-safe routes 2025-11-09 21:34:26 +01:00
imperosol 2e9e1b6a78 remove deprecated api csrf argument 2025-11-09 21:34:26 +01:00
thomas girod 02f7e10729 Merge pull request #1235 from ae-utbm/update-docs
update doc
2025-11-09 21:32:14 +01:00
imperosol 0ba84c4750 docs: update doc 2025-11-09 21:31:45 +01:00
thomas girod 1e25560a1c Merge pull request #1234 from ae-utbm/og-tags
add missing open graph tags
2025-11-09 21:28:55 +01:00
imperosol 530e851bd1 add missing open graph tags 2025-11-09 21:28:16 +01:00
thomas girod 1d2a90a751 Merge pull request #1232 from ae-utbm/group-simplify
simplify `User.is_in_group`
2025-11-09 21:27:51 +01:00
imperosol 61d51a08d2 simplify User.is_in_group 2025-11-09 21:27:18 +01:00
thomas girod 99b86fb27d Merge pull request #1233 from ae-utbm/fix-duplicated-message
fix: duplicated message on `PermissionGroupsUpdateView`
2025-11-09 21:26:32 +01:00
imperosol ec9bfd3b7e fix: duplicated message on PermissionGroupsUpdateView 2025-11-09 21:25:44 +01:00
thomas girod 7ef16f027a Merge pull request #1230 from ae-utbm/gala-2025
Custom style for Gala 2025
2025-11-09 21:24:50 +01:00
imperosol 282c4b8f26 remove SithFile._check_fs and SithFile.repair_fs 2025-11-09 17:00:44 +01:00
imperosol 8cbf42d714 Custom style for Gala 2025 2025-11-09 15:33:29 +01:00
thomas girod 1f3a483b1b Merge pull request #1046 from ae-utbm/refactor-election
Refactor election
2025-11-08 22:44:16 +01:00
imperosol 2e288368f0 apply review comments 2025-11-07 19:18:24 +01:00
imperosol 8b98e10ba3 remove CanCreateMixin usage from election 2025-11-07 19:18:24 +01:00
imperosol 59655e0414 refactor election result computing 2025-11-07 19:18:24 +01:00
imperosol 0d6856e925 refactor election detail view 2025-11-07 19:18:24 +01:00
imperosol e754b48371 feat: add x-limited-choices directive 2025-11-07 19:18:22 +01:00
imperosol a56b1c244e refactor CandidatureForm 2025-11-07 19:18:00 +01:00
imperosol 0d9d048ea3 move forms to their own file 2025-11-07 19:18:00 +01:00
thomas girod c42aea26d7 Merge pull request #1229 from ae-utbm/update-deps
Update dependencies
2025-11-07 19:15:44 +01:00
thomas girod 570836190c Merge pull request #1206 from ae-utbm/club_api_filters
Add club search api filters
2025-11-07 19:00:09 +01:00
thomas girod 163ef21ace Merge pull request #1170 from ae-utbm/trim-galaxy
Include only subscribed users and their direct relations in the galaxy
2025-11-07 18:51:33 +01:00
thomas girod a8f7a8865c Merge pull request #1194 from ae-utbm/update_subscription_price
Update subscription price
2025-11-07 18:51:12 +01:00
imperosol 8cd28fda9c include only subscribed users and their direct relations in the galaxy 2025-11-07 18:47:13 +01:00
imperosol 7665d7efb4 update subscription price 2025-11-07 18:46:41 +01:00
imperosol 722ef67450 deps: update JS dependencies 2025-11-07 16:32:42 +01:00
imperosol f027464d0e apply new ruff rules 2025-11-07 16:24:28 +01:00
imperosol d940e32dac deps: update python dependencies 2025-11-07 16:22:07 +01:00
thomas girod a0015eb65f Merge pull request #1214 from ae-utbm/pinktober
Pinktober
2025-11-07 15:58:49 +01:00
thomas girod 812a761690 Merge pull request #1228 from ae-utbm/news-autoscroll
feat: scroll to news moderation section when clicking notification
2025-11-07 15:58:27 +01:00
imperosol f0b1e8af4a improve tests 2025-11-07 15:58:06 +01:00
Kenneth SOARES 5697b4e9c8 move club api test to test_controller_club.py 2025-11-07 15:58:06 +01:00
Kenneth SOARES 7f504d9ee2 add test cases 2025-11-07 15:58:06 +01:00
Kenneth SOARES 49b0a13dbd fixed imports 2025-11-07 15:58:06 +01:00
Kenneth SOARES edd31d5d56 used 3.10 types 2025-11-07 15:58:06 +01:00
Torrent 3ea2d2aaf2 filter using schema 2025-11-07 15:58:06 +01:00
Torrent 6b27542210 add club search api filters 2025-11-07 15:58:06 +01:00
imperosol e26851beb3 feat: scroll to news moderation section when clicking notification
closes #1202
2025-11-07 15:39:58 +01:00
thomas girod 285bd71371 Merge pull request #1227 from ae-utbm/sales-csv-header
fix: missing sales csv header row
2025-11-07 15:39:42 +01:00
imperosol 9c22e061f5 fix: missing sales csv header row
fix #1205
2025-11-07 14:56:34 +01:00
thomas girod 4fdc13fb1c Merge pull request #1226 from ae-utbm/fix-picture-download-btn
fix: picture download btn
2025-11-07 14:55:47 +01:00
thomas girod 415193972c Merge pull request #1223 from ae-utbm/sale-date-index
Add index on `Selling.date`
2025-11-07 14:55:32 +01:00
thomas girod bf45b95d88 Merge pull request #1224 from ae-utbm/fix-product-picture
fix: product image not saved
2025-11-07 14:55:22 +01:00
imperosol 9a311d8cee fix: pictures download button
fix #1225
2025-11-07 14:30:11 +01:00
imperosol 7209801511 fix: product image not saved
fix #1219
2025-11-07 13:14:13 +01:00
imperosol 742ac504dc optimize db requests on club sales view 2025-11-07 13:08:01 +01:00
imperosol 3b56d2c22b add index on Selling.date
L'index prend ~20% de la taille de la table (la table fait un peu plus de 100%Mo, et l'index un peu plus de 20Mo), mais permet de diviser par 10 les requêtes qui filtrent sur la date des ventes.

Ca concerne notamment les requêtes db faites sur les pages suivantes :

- les appels à facture (~75ms → ~3ms)
- les ventes d'un club (entre 300ms et 450ms → entre 10ms et 15ms)
- le top conso des comptoirs (sur le Foyer, ~90ms → ~9ms)
- les dernières opérations d'un comptoir (sur le Foyer, ~130ms → ~1.5ms

J'aurais bien aimé mettre également un index sur la troncature au mois de la date, mais c'est compliqué à mettre en place étant donné que postgres ne prend des index que sur des expressions immuables et que, comme elle dépend de la timezone (qui peut changer), la fonction date_trunc n'est pas immuable.
2025-11-07 13:08:01 +01:00
thomas girod 9c64dae7fe Merge pull request #1221 from ae-utbm/fix-posters
posters: fix broken moderation view
2025-11-04 12:29:40 +01:00
klmp200 917a2b50cc Fix naming, fix tooltip and cosmetic changes 2025-10-31 21:51:12 +01:00
imperosol 118a08372f simplify poster moderation 2025-10-31 17:16:52 +01:00
klmp200 b8429a510f posters: fix broken moderation view 2025-10-31 12:15:44 +01:00
imperosol 49a9149a90 Revert "pinktober 2025"
This reverts commit 35443c9721cf84a94a89bd082029523dad354824.
2025-10-19 11:31:15 +02:00
imperosol ed12da222f pinktober 2025 2025-10-18 20:57:13 +02:00
Kenneth Soares 710b4aa942 Merge pull request #1213 from ae-utbm/taiste
HTMX, Alpine, Invoice Calls, Products, Bugfixes, Other
2025-10-18 17:29:15 +02:00
thomas girod 459edc1b6e Merge pull request #1212 from ae-utbm/fix-notification-invoice
fix: notification on invoice call update
2025-10-18 15:05:38 +02:00
klmp200 a760a0b75d Merge pull request #1191 from ae-utbm/notifications
Add macro to refresh messages from htmx swap
2025-10-18 14:39:30 +02:00
imperosol fc615e90b2 fix: notification on invoice call update 2025-10-18 14:35:19 +02:00
klmp200 76eebaf54e Rename notification plugin import on alpine-index 2025-10-18 14:35:08 +02:00
thomas girod 9407f4b341 Merge pull request #1104 from ae-utbm/invoice_calls_validation
Invoice calls validation checkbox
2025-10-18 14:21:46 +02:00
imperosol 8bd82c9d7c Complete invoice call validation feature 2025-10-17 13:44:03 +02:00
Kenneth SOARES 957441ceb1 fix checkbox width 2025-10-17 13:40:06 +02:00
Kenneth SOARES 3bcd417ad0 Basic implementation of invoice call validation 2025-10-17 13:40:05 +02:00
thomas girod 453e13d54b Merge pull request #1174 from ae-utbm/auto-archive
Automatic product actions
2025-10-16 09:16:50 +02:00
thomas girod dbd86b66cc Merge pull request #1178 from ae-utbm/cache-photos
Cache user photos
2025-10-12 14:04:30 +02:00
thomas girod dcf799b352 Merge pull request #1197 from ae-utbm/fix-permission
fix: permission in ClubAddMemberForm
2025-10-12 14:04:03 +02:00
imperosol d815f7da97 fix: permission in ClubAddMemberForm 2025-10-10 21:20:04 +02:00
imperosol dac52db434 forbid past dates for product actions 2025-10-10 20:50:50 +02:00
imperosol f398c9901c fix: 500 on product create view 2025-10-10 20:42:36 +02:00
imperosol 5b91fe2145 use ModelFormSet instead of FormSet for scheduled actions 2025-10-10 20:40:44 +02:00
imperosol abd905c24d write tests 2025-10-10 20:40:44 +02:00
imperosol 42b53a39f3 feat: automatic product counters edition 2025-10-10 20:40:44 +02:00
imperosol 5306001f6f ScheduledProductAction model to store tasks related to products 2025-10-10 20:40:44 +02:00
imperosol 83a4ac2a7e feat: automatic product archiving 2025-10-10 20:40:44 +02:00
thomas girod 30fd4f6926 Merge pull request #1054 from ae-utbm/edt
Embed the timetable generator in the sith
2025-10-10 20:39:43 +02:00
Noa Fouich 1b1ef18531 Merge pull request #1195 from ae-utbm/fix-css-on-barman-click-on-phone
fix css on barman click on phone
2025-10-06 16:36:18 +02:00
Noa Fouich bcf5d30d8f fix css on barman click on phone 2025-10-06 16:13:51 +02:00
thomas girod 4b44e50780 Merge pull request #1193 from ae-utbm/optimize-jinja
Optimisations
2025-10-02 19:05:03 +02:00
imperosol 40c3276c3c remove spaces from autocomplete selects 2025-09-29 17:43:50 +02:00
imperosol 543a424258 fix: N+1 on news list for admins 2025-09-29 16:10:50 +02:00
imperosol 8ff25e6034 optimize main page notifications 2025-09-29 08:45:56 +02:00
klmp200 fa8772ede2 Add macro to refresh messages from htmx swap 2025-09-27 19:49:17 +02:00
thomas girod 03f53e921b Merge pull request #1192 from ae-utbm/fix-add-member
fix: wrong text on member form submit button
2025-09-27 18:01:10 +02:00
imperosol 56f09fd739 fix: wrong text on member form submit button 2025-09-27 17:40:18 +02:00
thomas girod 19e3fc604d Merge pull request #1172 from ae-utbm/htmx-club
HTMXify club members page
2025-09-27 17:29:16 +02:00
imperosol 24e1ad6dc8 apply review comments 2025-09-27 17:06:43 +02:00
imperosol 2a30f30a31 feat: cache user pictures 2025-09-26 22:44:26 +02:00
imperosol 80545e682b add hour indicator 2025-09-26 22:32:51 +02:00
imperosol a7adb4bba3 add translations 2025-09-26 22:32:49 +02:00
imperosol e75e7e697a display course type on top left of slots 2025-09-26 22:32:35 +02:00
imperosol 9d99976bee add timetable to common links 2025-09-26 22:32:35 +02:00
imperosol 4103dce1bb simplify timetable generator url 2025-09-26 22:32:35 +02:00
Kenneth SOARES 126fcbaaa1 update regex 2025-09-26 22:32:35 +02:00
Kenneth SOARES 8a27214801 add colors to each subject 2025-09-26 22:32:35 +02:00
imperosol e82f3649e5 allow export to Png 2025-09-26 22:32:35 +02:00
imperosol d3444f6bea timetable base 2025-09-26 22:32:35 +02:00
Bartuccio Antoine 289ffe1109 Merge pull request #1190 from ae-utbm/alpine-notifications
Add alpine notifications plugin
2025-09-26 18:29:04 +02:00
imperosol eadf74604c Split ClubMemberForm into JoinClubForm and ClubAddMemberForm 2025-09-26 18:23:49 +02:00
imperosol cc58479a19 use new notifications system 2025-09-26 16:00:31 +02:00
imperosol c03b6e5d9d add tests 2025-09-26 15:49:36 +02:00
imperosol 66cf2bd957 Better management of roles in ClubMemberForm 2025-09-26 15:49:33 +02:00
imperosol 3e8f3b9275 feat: success message on membership creation 2025-09-26 15:49:24 +02:00
imperosol c7363de44f improve new member form style 2025-09-26 15:49:24 +02:00
imperosol 966fe0ec0e fix: N+1 queries on old club members view 2025-09-26 15:49:24 +02:00
imperosol fd0af3a804 HTMXify club members page 2025-09-26 15:49:24 +02:00
imperosol 7db66bb8f6 feat: MembershipQuerySet.editable_by method 2025-09-26 15:49:24 +02:00
thomas girod ff5bb04af1 Merge pull request #1188 from ae-utbm/autocomplete-sas
Clear tom select text when identifying users in SAS
2025-09-26 15:48:24 +02:00
klmp200 ca50e5dc81 Add alpine notifications plugin 2025-09-26 14:54:26 +02:00
Bartuccio Antoine f015bde768 Merge pull request #1186 from ae-utbm/jquery
Remove JQuery
2025-09-26 14:36:02 +02:00
klmp200 bb09fd0feb Apply review comments 2025-09-26 14:33:17 +02:00
klmp200 210278440a Change notification zone position 2025-09-26 13:36:36 +02:00
klmp200 e041da9cf4 Remove unnecessary complex anonymous callback on poster list 2025-09-25 22:07:29 +02:00
klmp200 54c1957776 Move notifications from eboutic checkout to billing info fragment 2025-09-25 16:02:56 +02:00
klmp200 30356d97f3 Use SuccessMessageMixin on trombi 2025-09-25 16:02:56 +02:00
klmp200 7eaf25a64f Remove QuikNotifMixin 2025-09-25 16:02:56 +02:00
klmp200 c6e86841b3 Remove jquery remeanants 2025-09-25 16:02:56 +02:00
klmp200 cbe9887efb Create unified notification system 2025-09-25 16:02:55 +02:00
Noa Fouich 980952807a Merge pull request #1189 from ae-utbm/deleted_barman_user_fix
Deleted barman user fix
2025-09-25 16:01:36 +02:00
Noa Fouich 0b7c516f18 adding test 2025-09-25 15:57:21 +02:00
Noa Fouich e186052283 Fix deleted barman on user account
# Conflicts:
#	locale/fr/LC_MESSAGES/django.po
2025-09-25 15:57:16 +02:00
imperosol ec80b72a25 clear tom select text when identifying users in SAS 2025-09-25 07:38:44 +02:00
Bartuccio Antoine 6cd3875b2b Merge pull request #1187 from ae-utbm/fix-search
Remove `s` shortcut for search bar
2025-09-24 18:09:00 +02:00
klmp200 ad8b003336 Remove s shortcut for search bar 2025-09-24 16:36:55 +02:00
Bartuccio Antoine b4f5a866e3 Merge pull request #1185 from ae-utbm/posters
Remove jquery from posters
2025-09-23 14:59:24 +02:00
klmp200 d87b069769 Apply review comments 2025-09-23 10:28:05 +02:00
thomas girod 9461b2e5d9 Merge pull request #1184 from ae-utbm/page-N+1
fix: N+1 query on PageListView
2025-09-23 09:18:24 +02:00
klmp200 4701c0804b Fix slideshow transition 2025-09-22 23:06:18 +02:00
imperosol acb6c6ce9c fix: N+1 query on PageListView 2025-09-22 18:14:14 +02:00
klmp200 95e6fff98b Migrate poster view to alpine 2025-09-22 14:30:23 +02:00
thomas girod f1a5a0781c Merge pull request #1181 from ae-utbm/fix-subscription
Fix subscription
2025-09-22 13:41:15 +02:00
imperosol 854dd2d9e7 add disclaimer for subscription purchase with AE account 2025-09-22 13:28:42 +02:00
imperosol a7c96425c8 fix: ClubSellingView N+1 queries 2025-09-22 13:28:42 +02:00
klmp200 dff23fae7f Migrate slideshow to alpine 2025-09-22 13:26:28 +02:00
thomas girod 34b0dc3302 Merge pull request #1182 from ae-utbm/fix-pagerev
fix: 500 on page properties edit
2025-09-22 13:04:22 +02:00
thomas girod 31aee01360 Merge pull request #1169 from ae-utbm/dependabot/npm_and_yarn/vite-6.3.6
Bump vite from 6.3.5 to 6.3.6
2025-09-21 16:05:03 +02:00
imperosol ce2ef78a6d fix: 500 on page properties edit 2025-09-21 16:01:17 +02:00
Kenneth Soares 5fee2e4720 Merge pull request #1180 from ae-utbm/taiste
Com, Subscriptions, Posters, Others
2025-09-19 21:31:28 +02:00
Kenneth Soares f7c5088048 Merge pull request #1177 from ae-utbm/fix_archived_products
Fix display of archived products
2025-09-19 20:09:40 +02:00
thomas girod 9bc6a447b9 Merge pull request #1179 from ae-utbm/poster-access
Make poster views available to club board members
2025-09-19 19:54:32 +02:00
imperosol 08b16d6e74 feat: make poster views available to club board members 2025-09-19 17:22:44 +02:00
thomas girod c6baab068a Merge pull request #1164 from ae-utbm/subscription-birthday
Subscription birthday
2025-09-19 12:58:03 +02:00
Noa Fouich 262281adda Add test case 2025-09-18 14:40:20 +02:00
thomas girod b58eca3ed0 Merge pull request #1171 from ae-utbm/club-edit-groups
fix: `Counter.edit_groups`
2025-09-16 15:20:47 +02:00
Kenneth SOARES c7fe8961ab fixed display of archived products 2025-09-16 12:43:03 +02:00
thomas girod 18f77ef2cb Merge pull request #1176 from ae-utbm/fix-dependabot
Fix dependabot
2025-09-16 09:04:02 +02:00
imperosol b58da0ea30 fix: dependabot.yml 2025-09-15 12:04:18 +02:00
imperosol 25cd877160 fix: Counter.edit_groups 2025-09-13 11:39:53 +02:00
dependabot[bot] 79297b7a75 Bump vite from 6.3.5 to 6.3.6
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.3.5 to 6.3.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.3.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.3.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.3.6
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 02:04:00 +00:00
thomas girod b767079c5a Merge pull request #1167 from ae-utbm/page-n+1
Page n+1
2025-09-08 11:28:55 +02:00
imperosol 37961e437b fix: N+1 queries on PageListView 2025-09-04 17:39:17 +02:00
imperosol b97a1a2e56 improve User.can_view and User.can_edit 2025-09-04 17:38:58 +02:00
imperosol 3ad40b7383 change birthdate only if user didn't have it previously 2025-09-04 11:03:02 +02:00
imperosol 3709b5c221 require birthday when creating subscriptions for users that didn't give it previously 2025-09-04 11:02:59 +02:00
imperosol 171a3f4d92 make some users not having birthday in populate_more.py 2025-09-04 11:02:48 +02:00
imperosol 84e2f1b45a fix: subscription form alignment 2025-09-04 11:02:48 +02:00
thomas girod fdf5e4fbe9 Merge pull request #1161 from ae-utbm/meta-tags
Meta tags
2025-09-04 10:51:25 +02:00
thomas girod 4e08591721 Merge pull request #1163 from ae-utbm/sitemap
Add sitemap
2025-09-04 10:51:10 +02:00
thomas girod 27b98f4a48 Merge pull request #1166 from ae-utbm/com-notification
Com notification
2025-09-03 14:40:06 +02:00
Kenneth Soares e0702ce8be Merge pull request #1165 from ae-utbm/taiste
Commands, Galaxy, Buxfixes and other
2025-09-03 14:32:30 +02:00
imperosol cb454935ad fix: N+1 queries on ICS generation 2025-09-03 14:00:09 +02:00
imperosol 17c50934bb fix: news notifications
Résout trois problèmes :
- la création des notifications faisait un N+1 queries
- le décompte du nombre de nouvelles à modérer était mauvais
- modérer une nouvelle ne modifiait pas les notifications des autres admins
2025-09-03 13:55:07 +02:00
imperosol 5646f22968 feat: add sitemap 2025-09-02 16:00:03 +02:00
thomas girod cf3daa2574 Merge pull request #1160 from ae-utbm/fix-old-subscribers-group
fix old subscribers group attribution
2025-09-01 20:10:37 +02:00
imperosol 03759fd83e fix translations 2025-09-01 18:21:55 +02:00
imperosol 83c96884d8 add missing meta description tags 2025-09-01 18:20:27 +02:00
imperosol 8524996f06 simplify Subscription.save() 2025-09-01 15:30:39 +02:00
thomas girod 57e3a930ba Merge pull request #1136 from ae-utbm/galaxy
Optimize galaxy generation
2025-09-01 14:18:02 +02:00
imperosol 2086d23b50 fix old subscribers group attribution
Si un utilisateur faisait sa première cotisation alors qu'il avait déjà un compte AE (par exemple, en effectuant un achat sur l'eboutic avant sa cotisation), alors il pouvait se retrouver hors du groupe Anciens cotisants.
2025-08-31 20:49:56 +02:00
imperosol d8f907fc70 Optimize galaxy generation
En réorganisant les requêtes à la db, on diminue par 100 le temps d'exécution de la commande `rule_galaxy` (~6h => ~2min)
2025-08-30 19:05:41 +02:00
Bartuccio Antoine 81260b34a2 Merge pull request #1159 from ae-utbm/update
Update dependencies
2025-08-29 08:16:56 +02:00
Bartuccio Antoine 7bd3f69c76 Merge pull request #1158 from ae-utbm/dependabot-config
Update dependabot config
2025-08-29 08:16:31 +02:00
thomas girod 257ad0f7e4 Merge pull request #1157 from ae-utbm/checkconstraint
replace deprecated CheckConstraint.check by CheckConstraint.condition
2025-08-29 00:45:41 +02:00
klmp200 f3fe67cf75 Update dependencies 2025-08-28 23:42:06 +02:00
klmp200 142dd6a16f Update dependabot config 2025-08-28 22:06:35 +02:00
imperosol e864e82573 replace deprecated CheckConstraint.check by CheckConstraint.condition 2025-08-28 16:31:54 +02:00
Kenneth Soares 95b476b212 Merge pull request #1072 from ae-utbm/promo_add_tool
custom django command for promo logos
2025-08-27 21:00:22 +02:00
Bartuccio Antoine 0e9c470f41 Merge pull request #1155 from ae-utbm/eboutic
Fix auto basket cleaning after refilling account
2025-08-26 19:09:49 +02:00
klmp200 ed9c718cf1 Apply review comments 2025-08-26 10:30:08 +02:00
klmp200 25099528bf Improve eboutic readability 2025-08-24 00:26:34 +02:00
Bartuccio Antoine 23103950b8 Merge pull request #1156 from ae-utbm/euroks
Remove euroks partnership
2025-08-23 22:06:56 +02:00
klmp200 cbf2678f6d Remove euroks partnership 2025-08-23 15:33:05 +02:00
klmp200 0bc18be75e Add basket cleaning tests 2025-08-23 15:16:57 +02:00
klmp200 f44fe72423 Get customer last purchases in one request 2025-08-23 15:09:05 +02:00
klmp200 c016dbc8bc Fix auto basket cleaning after refilling account 2025-08-22 10:36:57 +02:00
Bartuccio Antoine 080dd7756d Merge pull request #1148 from ae-utbm/footer
fix footer alignment on small screens
2025-07-07 16:32:06 +02:00
klmp200 ae5165af19 fix footer alignment on small screens 2025-07-07 11:49:45 +02:00
Kenneth SOARES 5b57f75b4e custom django command for promo logos
added path vailidity verification and IOError handling

added option to overwrite existing logo and force flag

improved uppon suggestions

mistake correction

fixed string conversion bugs and logical error

corrected path conversion

f

better error handling and corrections

ajout d'une section de documentation pour la feature

copié coller

fixed documentation bullet points

added resampling clean up error handling

removed useless IOError
2025-07-03 14:28:16 +02:00
thomas girod f6683068ff Merge pull request #1147 from ae-utbm/taiste
Many fixes
2025-07-02 10:10:19 +02:00
thomas girod 3e3c6631ff Merge pull request #1146 from ae-utbm/fix-ts
Fix ts
2025-07-02 09:01:24 +02:00
imperosol a3ac04fc9e fix TS types 2025-06-30 18:35:53 +02:00
imperosol 6e724a9c74 extract AlertMessage to its own file 2025-06-30 18:17:29 +02:00
thomas girod c177ef2a3a Merge pull request #1145 from ae-utbm/xapian
fix: xapian compilation flags
2025-06-30 13:46:02 +02:00
imperosol 6cf8910626 fix: xapian compilation flags 2025-06-30 13:09:24 +02:00
Bartuccio Antoine eb4fbcbda4 Merge pull request #1140 from Juknum/feature/update-footer-on-mobile
Màj du footer sur mobile
2025-06-26 16:01:20 +02:00
thomas girod 570510f18d Merge pull request #1135 from ae-utbm/group
Small group tweak
2025-06-25 22:04:56 +02:00
thomas girod 7f371984d8 Merge pull request #1143 from ae-utbm/fix/mail-enumeration
fix: enumeration attack vector on login form
2025-06-25 17:53:53 +02:00
imperosol abf7bf6bfa rename location_admin to campus_admin 2025-06-25 17:13:24 +02:00
imperosol 02ef8fdb88 fix: enumeration attack vector on login form 2025-06-25 17:03:53 +02:00
thomas girod a7f4630d13 Merge pull request #1138 from ae-utbm/counter-admin
improve counter admin pages
2025-06-25 17:03:03 +02:00
thomas girod c7087c6e7e Merge pull request #1137 from ae-utbm/fix-user-pictures
fix: user pictures ordering
2025-06-25 16:40:23 +02:00
imperosol f38926c4a3 fix: user pictures ordering 2025-06-25 16:25:51 +02:00
thomas girod 9a19f34ea2 Merge pull request #1141 from ae-utbm/fix-permanences
Fix permanences
2025-06-25 14:55:36 +02:00
imperosol 67884017f8 fix old permanences having end replaced by activity 2025-06-25 01:22:13 +02:00
klmp200 f474edc84f Style adjustment on the new footer 2025-06-24 17:04:52 +02:00
Julien Constant f5a8228358 Rework footer's UX on small devices 2025-06-22 20:01:22 +02:00
Bartuccio Antoine 59a714af9f Merge pull request #1134 from ae-utbm/family
Add zoom controls to family graph
2025-06-21 15:20:47 +02:00
imperosol 9049d8779c improve counter admin pages 2025-06-21 15:06:08 +02:00
klmp200 d111023363 Apply review comments 2025-06-21 12:37:01 +02:00
imperosol cdfa76ad57 add missing "Respo site" group 2025-06-18 18:01:37 +02:00
imperosol 88b70bf51f rename main groups to their real production version 2025-06-18 18:01:37 +02:00
klmp200 ca593c7d81 Avoid click on graph when zooming 2025-06-18 16:24:53 +02:00
klmp200 94bdc5e615 Remove useless closures 2025-06-18 14:13:06 +02:00
klmp200 7d454749e0 Add style to zoom controls on family graph 2025-06-18 14:10:26 +02:00
thomas girod 06090e0cd9 Merge pull request #1133 from ae-utbm/api-fixes
fix: api title typo (again)
2025-06-18 12:25:31 +02:00
thomas girod a1ae67da7d Merge pull request #1132 from ae-utbm/missing-perm
Missing SAS permission
2025-06-18 12:25:15 +02:00
klmp200 10d5b9d63f Add zoom control of family graph 2025-06-18 12:22:30 +02:00
klmp200 cc96c93d23 Convert family tree to typescript 2025-06-18 11:59:46 +02:00
imperosol 8cc0b01e9c fix: api title typo (again) 2025-06-17 21:01:51 +02:00
imperosol 88755358a6 fix: add missing sas permission 2025-06-17 21:00:38 +02:00
thomas girod 0e850e5486 Merge pull request #1131 from ae-utbm/api-fixes
Api fixes
2025-06-17 15:57:33 +02:00
Bartuccio Antoine af67c5fc27 Merge pull request #1130 from ae-utbm/navbar-keyboard-navigation
Fix click on navbar
2025-06-17 15:41:42 +02:00
klmp200 30809a69c9 Move navbar script to dedicated file 2025-06-17 15:39:35 +02:00
imperosol 0c442a8f03 fix: select only active club members on GET /club/{club_id} 2025-06-17 15:35:49 +02:00
imperosol f1b69dd47d fix: typo in API name 2025-06-17 15:35:49 +02:00
klmp200 b5ebf09fcb Fix click on navbar 2025-06-17 15:31:51 +02:00
thomas girod 9d9ce5b30a Merge pull request #1129 from ae-utbm/fix-docs
fix: documentation CI/CD
2025-06-17 15:09:06 +02:00
imperosol a87460fa3e fix: documentation CI/CD 2025-06-17 14:45:51 +02:00
thomas girod 81d1d1caca Merge pull request #1128 from ae-utbm/taiste
Api keys, better tabs, navbar and accordions, better notifications, fixes and dependencies updates
2025-06-17 14:08:05 +02:00
thomas girod 48fae33651 Merge pull request #1119 from ae-utbm/notifs
Improve notification on picture identification
2025-06-17 11:22:06 +02:00
imperosol 6fec250658 display album name on picture identification notif 2025-06-16 18:36:08 +02:00
imperosol 75b37cd6e3 fix album grouping on user pictures page 2025-06-16 18:36:08 +02:00
thomas girod 9c3820f986 Merge pull request #1127 from ae-utbm/deps
Update dependencies
2025-06-16 18:35:50 +02:00
thomas girod 28b60c7bae Merge pull request #1097 from ae-utbm/api-key
Basic api key management
2025-06-16 18:21:19 +02:00
imperosol efbbfcda76 update js deps 2025-06-16 15:51:11 +02:00
imperosol 9e1fe7a296 update python deps 2025-06-16 15:51:04 +02:00
imperosol 50d7b7e731 Move api urls to api app 2025-06-16 15:00:30 +02:00
imperosol ae7784a973 rename apikey to api 2025-06-16 14:54:42 +02:00
imperosol a23604383b doc: incompatibility between api keys and csrf 2025-06-16 13:44:43 +02:00
imperosol 80866086a8 Forbid authentication with revoked keys 2025-06-16 13:44:43 +02:00
imperosol 2c7eb99f31 use 54 bytes keys and sha512 hashing 2025-06-16 13:44:43 +02:00
imperosol 189081f5a8 api key doc for developers 2025-06-16 13:44:43 +02:00
imperosol 52e53da9ef adapt CanAccessLookup to api key auth 2025-06-16 13:44:43 +02:00
imperosol b5d65133f3 add doc for external API consumers 2025-06-16 13:44:43 +02:00
imperosol 44e1902693 Add GET /api/club/{club_id} to fetch details about a club 2025-06-16 13:44:43 +02:00
imperosol 1d55a5c2da Make HasPerm work with ApiKeyAuth 2025-06-16 13:44:43 +02:00
imperosol 853aa34c18 adapt pedagogy api to api key auth 2025-06-16 13:44:43 +02:00
imperosol dc72789c14 feat: basic api key management 2025-06-16 13:44:41 +02:00
Bartuccio Antoine 2f0454355f Merge pull request #1126 from ae-utbm/hey-api
Upgrade hey-api
2025-06-16 12:25:50 +02:00
Bartuccio Antoine 1c14bb22a0 Merge pull request #1125 from ae-utbm/navbar-keyboard-navigation
Disable mouse click on navbar for desktop
2025-06-16 12:25:33 +02:00
Bartuccio Antoine d1f11216c7 Merge pull request #1124 from ae-utbm/tabs
Add tab widget and remove jquery-ui
2025-06-16 12:25:14 +02:00
klmp200 2299e3f966 Upgrade hey-api 2025-06-16 11:20:41 +02:00
klmp200 0f55bcc513 Disable mouse click on navbar for desktop 2025-06-16 09:17:40 +02:00
klmp200 b19973ec9c Move ts files at the wrong place in com module 2025-06-16 09:05:19 +02:00
klmp200 17129af1bb Remove unused popup system and jquery-ui 2025-06-16 09:05:19 +02:00
klmp200 42434d10ca Remove jquery-ui tabs from counter 2025-06-16 09:05:19 +02:00
klmp200 c904e41ea3 Replace tab macro with new tab web component 2025-06-16 09:05:19 +02:00
klmp200 2dd4fd5c71 Initial tab concept 2025-06-16 09:05:18 +02:00
thomas girod dad09deab7 Merge pull request #1123 from ae-utbm/fix-com-dates
fix: datetime format in main page news list
2025-06-15 20:20:16 +02:00
thomas girod 6782638a5d Merge pull request #1122 from ae-utbm/fix-election-css
Fix election css
2025-06-15 20:20:01 +02:00
imperosol c7e4de7df2 fix: datetime format in main page news list 2025-06-14 11:54:58 +02:00
imperosol dcc84894e5 fix: bad role title alignment in election.scss 2025-06-14 10:43:02 +02:00
thomas girod 9d841cd606 Merge pull request #1121 from ae-utbm/fix-sales
Fix counter selection performance on SellingForm
2025-06-13 13:58:38 +02:00
Bartuccio Antoine 9f54e8362d Merge pull request #1117 from ae-utbm/lit-html
Add lit-html and use it for ics-calendar popups
2025-06-13 13:25:15 +02:00
imperosol c62c09f603 fix: counter selection queryset performance on SellingForm 2025-06-12 14:35:39 +02:00
thomas girod 9c8e3b7cac Merge pull request #1118 from ae-utbm/notifs
Notification improvements
2025-06-11 17:58:42 +02:00
imperosol c07f0c33cb fix permanent notification callback 2025-06-11 17:38:21 +02:00
Bartuccio Antoine 7b778d3e6b Merge pull request #1114 from ae-utbm/accordions
Improve accordion animation
2025-06-11 14:00:46 +02:00
klmp200 4c67bb1e2a Support animation with calc-size and detect browser features 2025-06-11 13:43:00 +02:00
klmp200 96f91138dd Fix accordion transition on chrome 2025-06-11 00:20:46 +02:00
klmp200 7b8102c242 Add lit-html and use it for ics-calendar popups 2025-06-10 23:08:04 +02:00
klmp200 36d4a02a45 Remove js size animation and only use the opacity one 2025-06-10 15:06:59 +02:00
klmp200 4774a7b741 Improve accordion animation 2025-06-05 20:38:32 +02:00
Bartuccio Antoine d58c713fc5 Merge pull request #1113 from ae-utbm/accordions
Fix bad css scoping on accordions
2025-06-05 20:37:23 +02:00
klmp200 6f48a9a151 Fix bad css scoping on accordions 2025-06-05 19:57:25 +02:00
thomas girod 1cc2378476 Merge pull request #1112 from ae-utbm/taiste
Accordions, navbar and fixes
2025-06-05 19:51:13 +02:00
thomas girod 99be8a56f3 Merge pull request #1109 from ae-utbm/remove-laundry
Remove remaining laundry code
2025-06-05 18:28:16 +02:00
Bartuccio Antoine e04a99cabd Merge pull request #1111 from ae-utbm/calendar-cache
Disable calendar cache on API
2025-06-05 18:27:51 +02:00
klmp200 bfea0989fb Disable cache on ics calendar on API response headers 2025-06-05 18:20:25 +02:00
Bartuccio Antoine be32486115 Merge pull request #1106 from ae-utbm/navbar-keyboard-navigation
Refactor navbar css and use details instead of div for better semantics
2025-06-05 18:17:58 +02:00
Bartuccio Antoine 861447ae36 Merge pull request #1105 from ae-utbm/accordions
Remove jquery-ui accordions
2025-06-05 18:09:45 +02:00
klmp200 5f701d1a17 Fix centering of detail elements 2025-06-05 18:04:45 +02:00
klmp200 64fd123a85 Remove shadow and disable hovering on mobile view 2025-06-05 17:49:47 +02:00
klmp200 7090254658 Refactor navbar css and use details instead of div for better semantics 2025-06-05 17:49:47 +02:00
thomas girod d80f2e73e8 Merge pull request #1110 from ae-utbm/fix-old-promo
fix promo logo older than promo 10
2025-06-05 16:38:10 +02:00
imperosol ee3646594b fix promo logo older than promo 10 2025-06-05 16:31:36 +02:00
imperosol b0d9063153 remove remaining laundry code 2025-06-04 12:53:22 +02:00
klmp200 0980fccf93 Add accordion animation with js 2025-06-03 20:48:45 +02:00
klmp200 fb3fd9536e Improve accordion icon 2025-06-03 20:48:45 +02:00
klmp200 3892e1cee2 Add fade animation 2025-06-03 20:48:45 +02:00
klmp200 c10b488080 Remove jquery-ui accordions 2025-06-03 20:48:45 +02:00
thomas girod ad91c8ed4f Merge pull request #1108 from ae-utbm/revert-python
Revert "bump python to 3.13"
2025-06-03 17:15:07 +02:00
imperosol 3b90bd54fc Revert "bump python to 3.13"
This reverts commit f0fa27a8b5.
2025-06-03 10:37:04 +02:00
thomas girod 61e370cf73 Merge pull request #1107 from ae-utbm/taiste
Eboutic refactor, Celery, better tooltips, Python 3.13, bugfixes and other
2025-06-03 00:03:33 +02:00
thomas girod 350a92bc44 Merge pull request #1102 from ae-utbm/update-deps
Update dependencies
2025-06-02 18:26:51 +02:00
thomas girod 95b4b0ba03 Merge pull request #1087 from ae-utbm/remove-laundry
remove laundry
2025-05-26 13:01:01 +02:00
thomas girod bab44b31b1 Merge pull request #1100 from ae-utbm/filter-counter
Filter counters in ClubSellingView
2025-05-26 12:59:47 +02:00
imperosol f0fa27a8b5 bump python to 3.13 2025-05-26 12:56:35 +02:00
imperosol 6d16e35624 update dependencies 2025-05-26 12:35:24 +02:00
thomas girod 13b892cd01 Merge pull request #1101 from ae-utbm/redirect-me
redirect `/user/me/*`
2025-05-26 10:30:07 +02:00
Thomas Girod 54be8addeb remove laundry 2025-05-26 09:10:35 +02:00
imperosol 9256aff944 redirect /user/me/* 2025-05-26 08:48:18 +02:00
imperosol 7c989cd749 filter selectable counters in ClubSellingView 2025-05-24 10:25:55 +02:00
thomas girod 2fc51e9901 Merge pull request #1099 from ae-utbm/hide-cash-register
hide cash register views to barmen
2025-05-22 11:20:52 +02:00
thomas girod 943fb5979d Merge pull request #1098 from ae-utbm/cached-groups
simplify `User.cached_groups`
2025-05-22 10:58:00 +02:00
imperosol ff1f1040b6 simplify User.cached_groups 2025-05-22 10:43:49 +02:00
imperosol fa90477de5 hide cash register views to barmen 2025-05-22 10:06:22 +02:00
Bartuccio Antoine af613c4cca Merge pull request #1094 from ae-utbm/tooltips
Create a js tooltip library
2025-05-17 07:01:15 +02:00
klmp200 13f8b5db61 Fix bug where help button moves as if possessed 2025-05-14 15:04:20 +02:00
klmp200 e63a09ee7e Synchronize tooltip-id and don't append tooltip to body twice 2025-05-14 15:02:48 +02:00
klmp200 6bb6be011c Fix tooltip fading transitions and synchronize additional attributes 2025-05-14 15:02:46 +02:00
klmp200 3a5bff8810 Fix tooltip not appearing/disapearing when attribute is removed 2025-05-14 15:01:19 +02:00
klmp200 d1e5c93a08 Improve tooltips by using mutation observers 2025-05-14 15:01:19 +02:00
klmp200 19aac8f302 Fix tooltip size 2025-05-14 15:01:19 +02:00
klmp200 9bd3c618a4 Add doc, tooltip offset and css cleanup 2025-05-14 15:01:19 +02:00
klmp200 68b1a96270 Allow popup customization 2025-05-14 15:01:18 +02:00
klmp200 48bf72f623 Improve tooltips performance 2025-05-14 15:00:51 +02:00
klmp200 1872e4abe5 Adapt calendar to new tooltip library 2025-05-14 15:00:51 +02:00
klmp200 35e96fb875 Create basic tooltip library 2025-05-14 14:58:59 +02:00
Kenneth Soares 5e953d04fe Merge pull request #1086 from ae-utbm/calendar_link_help
Calendar link help button
2025-05-14 13:14:22 +02:00
Kenneth SOARES cab2adb45d fixed translations 2025-05-12 16:02:39 +02:00
Kenneth SOARES 2ed0fad51a remove unwanted focus behavior 2025-05-11 16:06:22 +02:00
Kenneth SOARES 39422a0cb8 added tooltip translations 2025-05-11 16:05:47 +02:00
Kenneth SOARES 33ba1e8bbb added button to layout 2025-05-11 16:05:21 +02:00
Kenneth SOARES 5ca1f03d9d ics help button 2025-05-11 15:23:11 +02:00
thomas girod ac0c2c9880 Merge pull request #979 from ae-utbm/celery
Use celery for task queue
2025-05-07 11:53:39 +02:00
imperosol 1a81911cd6 adapt celery to honcho setup 2025-05-07 11:49:38 +02:00
imperosol 934d17d9d2 celery 2025-04-28 12:15:38 +02:00
imperosol f647feb8c8 use .env for project configuration 2025-04-28 12:15:38 +02:00
Bartuccio Antoine 73e9c3132b Merge pull request #1093 from ae-utbm/calendar
Remove cache workaround on news calendar moderation
2025-04-25 12:23:57 +02:00
klmp200 5da417c1a0 Remove cache workaround on news calendar moderation 2025-04-25 10:20:32 +02:00
Bartuccio Antoine df26ab4d50 Merge pull request #1085 from ae-utbm/eboutic
Don't use cookies for processing eboutic baskets
2025-04-23 15:56:44 +02:00
klmp200 5dc9e24cd0 Apply review comments 2025-04-23 15:00:51 +02:00
klmp200 7c9a966e54 Fix eboutic display bug 2025-04-23 14:04:08 +02:00
klmp200 a31dc8254a Test pay with card 2025-04-23 00:53:39 +02:00
klmp200 2a7c1a6438 Test pay with sith 2025-04-23 00:11:50 +02:00
klmp200 8af6af1303 Test basket creation 2025-04-22 23:03:06 +02:00
Bartuccio Antoine 4f5a69c353 Merge pull request #1091 from ae-utbm/docs-install
Update installation istructions
2025-04-21 13:09:24 +02:00
thomas girod 7296640a8d Merge pull request #1090 from ae-utbm/fix-album-upload
fix sas album creation rights
2025-04-21 01:01:36 +02:00
klmp200 e556305062 Update dev install docs 2025-04-20 18:04:56 +02:00
imperosol e9c956e08c fix sas album creation rights 2025-04-19 17:05:15 +02:00
Bartuccio Antoine da56a7f651 Merge pull request #1089 from ae-utbm/login-register
Fix overflow issue on login/register page
2025-04-17 15:20:43 +02:00
klmp200 0654dfb05d Fix overflow issue on login/register page 2025-04-17 13:02:40 +02:00
thomas girod 2a381101ac Merge pull request #1088 from ae-utbm/fix-anonymous-sas
fix 500 on SAS main page for anonymous users
2025-04-17 11:14:36 +02:00
imperosol ccd4275b02 fix 500 on SAS main page for anonymous users 2025-04-17 09:00:22 +02:00
klmp200 f64409c612 Add more error messages on main view 2025-04-15 23:41:58 +02:00
klmp200 f352b89fc0 Add auto basket invalidation 2025-04-15 23:33:57 +02:00
klmp200 2ae9baa82f Fix etransaction_data endpoint 2025-04-15 18:50:25 +02:00
klmp200 bc99390b25 Rename makecommand to checkout 2025-04-15 18:42:17 +02:00
klmp200 262ed7eb4c Don't use cookies for processing eboutic baskets 2025-04-15 00:07:07 +02:00
thomas girod 6377acfffa Merge pull request #1084 from ae-utbm/taiste
Django 5.2, HTMX for billing infos form, eurocks widget consent message and new promo 24 logo
2025-04-14 12:42:19 +02:00
thomas girod 4fa83d0667 Merge pull request #1083 from ae-utbm/promo-24-logo
new promo 24 logo
2025-04-14 12:17:40 +02:00
Thomas Girod 6b55b981ca new promo 24 logo 2025-04-14 11:02:41 +02:00
Bartuccio Antoine e6668728f2 Merge pull request #1082 from ae-utbm/eurok-consent
Add consent form for eurok partnership
2025-04-14 10:53:05 +02:00
klmp200 3431fbf2d1 Add consent form for eurok partnership 2025-04-14 01:25:50 +02:00
thomas girod 77853b808a Merge pull request #1081 from ae-utbm/remove-accounting
remove remaining accounting code
2025-04-13 22:10:02 +02:00
Thomas Girod 05756520a3 remove remaining accounting code 2025-04-13 14:14:26 +02:00
Bartuccio Antoine b3eb6a945f Merge pull request #1076 from ae-utbm/eboutic-billing
Use htmx to fill up billing info
2025-04-13 09:52:49 +02:00
thomas girod 169faec479 Merge pull request #1080 from ae-utbm/fix-sas-order
Fix sas order
2025-04-13 01:06:31 +02:00
klmp200 42317bfecc Use django messages for billing info ux 2025-04-13 00:20:57 +02:00
klmp200 d6e858e0e3 Apply review comments 2025-04-12 22:59:25 +02:00
klmp200 d8be9a62b5 Use assertRedirects for test_not_authorized 2025-04-12 22:46:23 +02:00
Thomas Girod 2658244671 fix album ordering on SAS 2025-04-12 18:09:39 +02:00
klmp200 31575d0b64 Add tests 2025-04-11 17:12:23 +02:00
klmp200 4ce885ac6b Default France value and cleaner handling of BillingInfo creation 2025-04-11 17:12:23 +02:00
klmp200 5c2f324e13 Use htmx to fill up billing info 2025-04-11 17:12:22 +02:00
thomas girod ed52a4f828 Merge pull request #1079 from ae-utbm/update-django
Update django
2025-04-11 17:11:58 +02:00
Thomas Girod ff220e67c1 use new django.url.reverse query kwarg 2025-04-11 14:54:06 +02:00
Thomas Girod 805ffc498f response.content.decode() => response.text 2025-04-11 14:54:06 +02:00
Thomas Girod ad4afce67f fix club members tests 2025-04-11 14:54:06 +02:00
Thomas Girod f4276d6be5 fix account creation view tests 2025-04-11 14:54:06 +02:00
Thomas Girod 64085ac2a4 bump django to 5.2 2025-04-11 14:54:06 +02:00
Thomas Girod f301365ebb update dependencies 2025-04-11 14:54:06 +02:00
thomas girod 3c8933461a Merge pull request #1075 from ae-utbm/taiste
SAS and markdown pictures upload improval, google calendar removal, calendar export link, css fixes and more
2025-04-10 13:15:02 +02:00
Bartuccio Antoine 53038a365f Merge pull request #1074 from ae-utbm/import-error
Fix cyclic import error on core/views/user.py
2025-04-10 11:57:42 +02:00
klmp200 d2fe0f1fab Fix cyclic import error on core/views/user.py 2025-04-10 11:49:59 +02:00
Bartuccio Antoine e96d224a8d Merge pull request #1035 from ae-utbm/picture-upload
Picture upload from markdown editor
2025-04-10 11:41:54 +02:00
klmp200 6128b6564c Ensure quickupload image field uniqueness 2025-04-10 11:38:33 +02:00
klmp200 0f961c71e0 Auto delete image files when object has been deleted 2025-04-10 11:22:47 +02:00
Bartuccio Antoine 59b275ef43 Merge pull request #1073 from ae-utbm/header-fix
Fix unaligned tool link
2025-04-10 11:17:24 +02:00
klmp200 6362fcdf2d Fix unaligned tool link 2025-04-10 11:04:03 +02:00
klmp200 3e61560875 Use group permissions 2025-04-10 01:01:40 +02:00
klmp200 744223b76f Auto rescale quick upload image sizes 2025-04-09 22:50:51 +02:00
klmp200 6e39b59dd5 Use UploadedImage to check image correctness and better error responses 2025-04-09 22:15:12 +02:00
klmp200 67bc49fb21 Serve upload files directly from nginx 2025-04-09 20:55:24 +02:00
klmp200 91b30e7550 Add quick upload tests 2025-04-09 20:55:24 +02:00
klmp200 c236092c4f Create dedicated image upload model 2025-04-09 20:53:23 +02:00
klmp200 7b23196071 Add image upload to easymde widget 2025-04-09 20:52:38 +02:00
klmp200 10367d21ab Add API endpoint to upload images 2025-04-09 20:52:38 +02:00
thomas girod 60fd72917d Merge pull request #1053 from ae-utbm/sas-upload
Improve SAS upload
2025-04-09 19:32:55 +02:00
Thomas Girod 2c7b94547c improve upload error display 2025-04-09 12:33:40 +02:00
Thomas Girod 376af35bfb Check that uploaded images are actually images 2025-04-08 17:21:30 +02:00
imperosol 13f417ba30 Use Alpine and the API for SAS picture upload 2025-04-08 15:59:30 +02:00
imperosol b83fbf91e1 extract album creation form into its own fragment 2025-04-08 15:59:30 +02:00
imperosol 156305a16a add api endpoint to upload a sas picture 2025-04-08 15:59:30 +02:00
Bartuccio Antoine 11efa4fca2 Merge pull request #1070 from ae-utbm/calendar-link
Remote calendar link for external sync
2025-04-08 15:50:38 +02:00
Bartuccio Antoine 26456e3a7f Merge pull request #1071 from ae-utbm/news-overflow
Fix news x overflow on mobile
2025-04-08 15:35:17 +02:00
klmp200 fab0d19eeb Fix news x overflow on mobile 2025-04-08 15:12:19 +02:00
klmp200 8a381aed38 Smooth animation 2025-04-08 11:54:19 +02:00
klmp200 5de05c0360 Introduce position attributes for tooltips 2025-04-08 10:27:08 +02:00
Kenneth SOARES 2e1a849aff modification du style du tooltip 2025-04-07 19:15:16 +02:00
klmp200 b09d5e5ffd Remote calendar link for external sync 2025-04-07 13:58:08 +02:00
thomas girod 811c83552f Merge pull request #1051 from ae-utbm/fragment-mixin
Fragment mixins
2025-04-07 11:31:50 +02:00
Bartuccio Antoine b6511d5b84 Merge pull request #1069 from ae-utbm/upgrade-ical
Bump ical to 9.1.0 version
2025-04-06 23:34:55 +02:00
klmp200 e52b2eadbe Bump ical to 9.1.0 version 2025-04-06 23:31:15 +02:00
Bartuccio Antoine 86b8745665 Merge pull request #1068 from ae-utbm/dependabot/npm_and_yarn/vite-6.2.5
Bump vite from 6.2.3 to 6.2.5
2025-04-06 23:27:22 +02:00
dependabot[bot] 597339749a Bump vite from 6.2.3 to 6.2.5
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.3 to 6.2.5.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.5/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.2.5
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-06 21:17:09 +00:00
thomas girod d94d90357e Merge pull request #1067 from ae-utbm/taiste
bug fixing, external calendar removal and eurockéennes partnership
2025-04-06 23:16:04 +02:00
thomas girod 59e8272c7f Merge pull request #1064 from ae-utbm/makecommand
refactor eboutic command page
2025-04-06 22:36:56 +02:00
Thomas Girod d98718f7ba fix makecommand jinja indentation 2025-04-06 22:29:43 +02:00
Thomas Girod d03c425a17 refactor eboutic command page 2025-04-06 22:29:39 +02:00
Thomas Girod e35c1d1928 move eboutic/makecommand.js to bundled directory 2025-04-06 22:29:26 +02:00
Bartuccio Antoine 3b9c8d7b03 Merge pull request #1049 from ae-utbm/dependabot/npm_and_yarn/vite-6.2.3
Bump vite from 6.0.7 to 6.2.3
2025-04-06 21:36:52 +02:00
Bartuccio Antoine 322cb74635 Merge pull request #1058 from ae-utbm/dependabot/npm_and_yarn/babel/runtime-7.27.0
Bump @babel/runtime from 7.26.0 to 7.27.0
2025-04-06 21:35:40 +02:00
thomas girod 62c394eec4 Merge pull request #1065 from ae-utbm/eurocks
Eurockéennes 2025
2025-04-06 21:29:01 +02:00
thomas girod f254490790 Merge pull request #1063 from ae-utbm/fixes
Fixes
2025-04-06 21:28:45 +02:00
thomas girod a78ccbd2cc Merge pull request #1066 from ae-utbm/remove-gcalendar
Remove external calendar
2025-04-06 17:21:33 +02:00
Thomas Girod 77537a84c2 remove external calendar 2025-04-06 17:14:39 +02:00
Thomas Girod 65c06dda8b partnership eurockéennes 2025 2025-04-06 17:01:00 +02:00
Thomas Girod 7623474124 add fragments documentation 2025-04-06 14:36:00 +02:00
imperosol 6a5da0302d add FragmentMixin and UseFragmentsMixin classes 2025-04-06 14:34:22 +02:00
Thomas Girod 9e0cb7647b fix counter stats page access 2025-04-06 14:18:20 +02:00
Thomas Girod fe5c685204 fix displayed user tabs 2025-04-06 14:17:12 +02:00
Thomas Girod b0e24350e2 fix com admin pages 2025-04-06 14:17:12 +02:00
thomas girod 98e470fa2a Merge pull request #1060 from ae-utbm/master
Merge Back
2025-04-04 15:11:31 +02:00
thomas girod 49cca67eba Merge pull request #1062 from ae-utbm/fix-doc-ci
fix doc deployment (again)
2025-04-04 15:08:36 +02:00
Thomas Girod a6e23b0b4c fix doc deployment (v2) 2025-04-04 15:05:08 +02:00
thomas girod 5c48924387 Merge pull request #1061 from ae-utbm/fix-doc-ci
fix doc deployment
2025-04-04 15:01:44 +02:00
Thomas Girod e4264d400a fix doc deployment 2025-04-04 14:46:38 +02:00
thomas girod b541e7c1fc Merge pull request #1059 from ae-utbm/fix-club-detail
Fix club detail
2025-04-04 14:37:56 +02:00
Thomas Girod 89efda6e26 fix club detail on ClubView 2025-04-04 14:27:07 +02:00
Thomas Girod 056b3a1702 split club/tests.py 2025-04-04 14:27:07 +02:00
dependabot[bot] df5838034e Bump @babel/runtime from 7.26.0 to 7.27.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.26.0 to 7.27.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.27.0/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-version: 7.27.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-04 10:09:43 +00:00
thomas girod 29c1142537 Merge pull request #1057 from ae-utbm/taiste
Honcho, more product filters, sas improvements, club refactor, accounting removal, dcons and more
2025-04-04 12:08:36 +02:00
thomas girod 3d40e92958 Merge pull request #1056 from ae-utbm/fixes
Fixes
2025-04-04 11:25:18 +02:00
Thomas Girod b8a40027b8 remove data migration in migration 0030 of counter 2025-04-04 11:00:31 +02:00
Thomas Girod c527e87fd1 fix club edition page 2025-04-04 11:00:31 +02:00
thomas girod 8699750c72 Merge pull request #1045 from ae-utbm/accounting
Remove accounting appp
2025-04-04 10:38:28 +02:00
imperosol 24f6a2b1cc remove unused translations 2025-04-04 10:35:47 +02:00
imperosol cdd32c9a82 remove accounting models 2025-04-04 10:35:17 +02:00
imperosol a6ac10e60c clean populate.py 2025-04-04 10:35:17 +02:00
imperosol 26d4c4b811 move accound refound view to counter 2025-04-04 10:35:17 +02:00
imperosol 002554b802 move CurrencyField to counter 2025-04-04 10:35:17 +02:00
imperosol 6dfd4e16e2 remove accounting views 2025-04-04 10:27:51 +02:00
thomas girod 635bc79dd6 Merge pull request #1041 from ae-utbm/dcons
Returnable products management
2025-04-04 09:36:54 +02:00
imperosol eee78008b1 add pages to manage returnable products 2025-04-04 09:33:02 +02:00
imperosol e7bb08448c feat: generic returnable products 2025-04-04 09:29:54 +02:00
thomas girod 7515e739b6 Merge pull request #1037 from ae-utbm/unix-name
Refactor Club
2025-04-04 09:27:33 +02:00
thomas girod c7d02d4c77 Merge pull request #1055 from ae-utbm/april
April fool
2025-04-01 15:45:59 +02:00
imperosol 9a691b5b0a Revert "April fool day"
This reverts commit 6e0e633660.
2025-04-01 12:01:20 +02:00
imperosol 6e0e633660 April fool day
Définitivement une des blagues de tous les temps
2025-04-01 12:01:17 +02:00
thomas girod b9a8b46049 Merge pull request #1052 from ae-utbm/remove-galaxy
Remove galaxy from production
2025-03-28 19:41:44 +01:00
imperosol 812e0f5f4c remove galaxy from production 2025-03-28 18:34:16 +01:00
imperosol 3d3c6adfa5 test club edit view 2025-03-28 17:42:56 +01:00
imperosol b14b498eb1 fix generate_galaxy_test_data 2025-03-28 17:42:56 +01:00
imperosol fb4909fc36 merge ClubEditView and ClubEditPropView 2025-03-28 17:42:56 +01:00
imperosol 805b146f17 change Club.unix_name to Club.slug_name and remove it from forms 2025-03-28 17:42:53 +01:00
imperosol f764ce1585 remove ClubStatView 2025-03-28 17:40:52 +01:00
Kenneth Soares 15d541b596 Merge pull request #1050 from ae-utbm/merge_same_users
Check that a user cannot be merged into itself
2025-03-28 15:01:26 +01:00
Kenneth SOARES df2d0d4d4c methode clean dans MergeForm
fixed formatting

Update rootplace/forms.py

Co-authored-by: thomas girod <56346771+imperosol@users.noreply.github.com>

Check that a user cannot be merged into itself

ajout des traductions

changed test language to french

Check that a user cannot be merged into itself
2025-03-28 14:44:55 +01:00
thomas girod ac1e40038e Merge pull request #1048 from ae-utbm/sas-visibility
Make SAS pictures visible for their owner
2025-03-27 12:11:13 +01:00
dependabot[bot] 146c14fc86 Bump vite from 6.0.7 to 6.2.3
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.0.7 to 6.2.3.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.3/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.3/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-25 15:20:25 +00:00
imperosol e1eb634c62 Make SAS pictures visible for their owner 2025-03-24 15:38:00 +01:00
thomas girod bb3dfb7e8a Merge pull request #1044 from ae-utbm/fix-deprecations
Fix some deprecations
2025-03-14 12:37:11 +01:00
imperosol 93d11bb439 refactor RefoundAccountView permission checking 2025-03-13 18:50:19 +01:00
imperosol 99e1318071 increase max pagination size from 199 to 200 2025-03-13 18:50:16 +01:00
imperosol d16237d015 make PageCreateView a PermissionRequiredMixin 2025-03-13 18:49:42 +01:00
imperosol 8a38ebb09d skip useless checks when creating a subscription for a new member 2025-03-13 18:49:42 +01:00
imperosol 7f2ee24cb9 deps: add BeautifulSoup as test dependency 2025-03-13 18:49:42 +01:00
imperosol 9ac8728d30 fix deprecated ninja_extra context import 2025-03-13 18:49:42 +01:00
imperosol 4b0cd04355 add missing ordering 2025-03-13 18:49:42 +01:00
imperosol 5c5755d4a6 make logout a POST operation 2025-03-13 18:49:42 +01:00
thomas girod aaa8c4ba67 Merge pull request #1031 from ae-utbm/ts-album
ajaxify album loading
2025-03-12 18:09:11 +01:00
imperosol 04c7df8ac8 fix typescript types 2025-03-12 17:37:37 +01:00
imperosol 0f6cda377c Fix paginated TS interfaces 2025-03-12 17:35:22 +01:00
imperosol 60db7e2516 ajaxify album loading in the SAS 2025-03-12 17:35:22 +01:00
imperosol 218aab1af3 api to fetch albums 2025-03-12 17:35:22 +01:00
imperosol 650227b6e2 typescriptify album-index.js 2025-03-12 17:35:22 +01:00
thomas girod 598ff3ffdf Merge pull request #1043 from ae-utbm/upgrade
Update dependencies
2025-03-11 15:17:34 +01:00
Bartuccio Antoine 76fc55b125 Merge pull request #1039 from ae-utbm/openapi
Compile openapi client in background when django runserver is reloading
2025-03-10 20:14:32 +01:00
imperosol 7c3186da79 apply ruff rule A005 2025-03-10 10:33:05 +01:00
klmp200 106dc32a3d Fix schema.json being auto deleted and remove formating and linting of generated openapi client 2025-03-09 16:30:21 +01:00
klmp200 05edf33062 Compile openapi client in background when django runserver is reloading 2025-03-09 15:55:37 +01:00
imperosol bba5339407 apply ruff rule DJ012 2025-03-09 15:05:10 +01:00
imperosol d10393ea37 update dependencies 2025-03-09 15:04:53 +01:00
Kenneth Soares 98175e397c Merge pull request #1040 from ae-utbm/country_flags
made country flags apply to windows in chrome browsers
2025-03-05 20:24:41 +01:00
Kenneth SOARES 62246f342d removed unnecessary event listener 2025-03-05 20:19:11 +01:00
Kenneth SOARES bff6513192 renamed polyfill-index.ts to country-flags-index.ts 2025-03-05 20:13:20 +01:00
Kenneth SOARES bf0779a096 fix formatting 2025-03-05 20:04:20 +01:00
Kenneth SOARES 9991507297 made country flags apply to windows in chrome browsers 2025-03-05 19:59:28 +01:00
Bartuccio Antoine 222ff762da Merge pull request #1022 from ae-utbm/poors-man-docker
Poor mans docker compose
2025-03-04 23:38:57 +01:00
klmp200 6b27a97e7b Launch multiple honcho files depending on the context 2025-03-04 14:48:44 +01:00
imperosol 87f790a044 Don't minify statics in debug mode 2025-03-04 12:00:00 +01:00
klmp200 75c4c55a32 Only run full procfile on runserver 2025-03-04 11:59:35 +01:00
klmp200 728ad157e9 Apply review comments 2025-03-04 10:30:36 +01:00
klmp200 e542fe11b9 Add a pid file to avoid running honcho multiple times 2025-03-04 10:30:36 +01:00
klmp200 aa66fc61ab Apply review comments 2025-03-04 10:30:36 +01:00
klmp200 7f8304e407 Add redis to test pipeline 2025-03-04 10:30:36 +01:00
klmp200 3b80b36ed6 Update doc 2025-03-04 10:30:36 +01:00
klmp200 ba6e2a6402 Integrate automatic redis startup with the project 2025-03-04 10:30:36 +01:00
klmp200 6841d96455 Enable honcho on non debug 2025-03-04 10:30:36 +01:00
klmp200 8528820d89 Run bundler through honcho 2025-03-04 10:30:36 +01:00
Bartuccio Antoine 2c9b72fe1d Merge pull request #1038 from ae-utbm/ninja-csrf
Enable csrf tokens on API routes
2025-03-03 13:39:47 +01:00
klmp200 fe417b0c29 Enable csrf tokens on API routes
* Upgrade openapi-ts
* Migrate openapi-ts settings to new version
* Add csrf token to headers of all API calls
* Force csrf token authentication on API routes
2025-03-03 13:33:58 +01:00
NaNoMelo b3f67657d7 Merge pull request #1036 from ae-utbm/fix-com-poster
fix com poster
2025-02-28 19:33:48 +01:00
NaNoMelo 602c57c001 fix com poster 2025-02-28 19:20:19 +01:00
thomas girod 6a17e4480e Merge pull request #1029 from ae-utbm/product-filter
add club and counter filters on product list page
2025-02-26 16:20:03 +01:00
thomas girod 2b99da5a37 Merge pull request #1034 from ae-utbm/taiste
Great news improvements, .env for configuration, full uv guide update command and more
2025-02-25 19:00:35 +01:00
Bartuccio Antoine 1f1cd2ce0f Merge pull request #1027 from ae-utbm/calendar-moderation
Moderation of news through calendar and rename moderation to publish
2025-02-25 18:32:15 +01:00
klmp200 a653f98fc1 Apply review comments 2025-02-25 18:28:16 +01:00
klmp200 a01ea13f5b Fix crash when no news is available 2025-02-25 18:09:11 +01:00
klmp200 10701ccdfa Synchronize calendar moderation and news list moderation 2025-02-25 18:09:11 +01:00
klmp200 07028c8dd8 Harmonize news date display 2025-02-25 18:09:11 +01:00
klmp200 4890fcf0e1 Rename news moderate to publish 2025-02-25 18:09:08 +01:00
klmp200 2e71275f5b Connect calendar moderation with outside moderation 2025-02-25 15:35:01 +01:00
thomas girod be87af5e06 Merge pull request #1033 from ae-utbm/fixed
Fix sales display
2025-02-25 14:41:14 +01:00
klmp200 f9c36c8f99 Apply review comments 2025-02-25 14:38:58 +01:00
klmp200 92d282f4ba Add possibility to de-moderate news through api and calendar widget 2025-02-25 14:38:58 +01:00
klmp200 a1bf86dabf Add moderation through calendar widget 2025-02-25 14:37:18 +01:00
Kenneth Soares 21284546c4 Merge pull request #1032 from ae-utbm/check_cashreg
is_check attribute refactor
2025-02-25 14:36:12 +01:00
thomas girod e936f0d285 Merge pull request #1024 from ae-utbm/news-list
Allow displaying more news
2025-02-25 14:07:51 +01:00
imperosol 6af03240a1 fix Selling.__str__ 2025-02-25 12:59:49 +01:00
imperosol 01c92feb40 fix warning message display on subsequently loaded news 2025-02-25 11:53:02 +01:00
imperosol 94d2c5660a move hybrid translation to full front translation 2025-02-25 11:10:05 +01:00
imperosol 71b3588577 Add a "see more" button on news dates list 2025-02-25 08:56:45 +01:00
imperosol 2def57d82c Close alerts related to a moderated event 2025-02-25 08:55:35 +01:00
imperosol 0e88260c31 fix news dates timestamp in populate.py 2025-02-25 08:55:35 +01:00
imperosol 86c2ea7fd9 API route to fetch news dates 2025-02-25 08:55:35 +01:00
imperosol fc3b82c35c Make upcoming nws scrollable on y-overflow 2025-02-25 08:55:35 +01:00
imperosol 1d177412c3 change upcoming news selection on main page 2025-02-25 08:55:35 +01:00
thomas girod c272cad2ea Merge pull request #1030 from ae-utbm/subscription-student-status
Give the student role when creating a new user subscription
2025-02-25 08:36:23 +01:00
Kenneth SOARES e757fb43a1 replaced check with valid attribute is_check 2025-02-24 19:38:00 +01:00
Bartuccio Antoine 8705fbe4b2 Merge pull request #1025 from ae-utbm/dl_pictures
download button for user pictures and albums
2025-02-24 07:39:00 +01:00
Bartuccio Antoine aa60462653 Merge pull request #1028 from ae-utbm/counters
Allow transactions on counter when an user has recorded too many products
2025-02-24 07:38:34 +01:00
imperosol 9c0d89de83 Give the student role when creating a new user subscription 2025-02-24 07:13:19 +01:00
imperosol 809febc353 add club and counter filters on product list page 2025-02-24 06:34:38 +01:00
klmp200 f4ff247862 Remove call from removed loadCounter function 2025-02-23 18:05:37 +01:00
klmp200 1978658b9c Allow transactions on counter when an user has recorded too many products as long as he doesn't record more 2025-02-21 14:50:07 +01:00
klmp200 219700f0bc Add redirect for user picture url 2025-02-20 18:54:50 +01:00
klmp200 2918048b16 Improve download user album button 2025-02-20 18:51:08 +01:00
klmp200 a87016a23f Apply some review comments 2025-02-20 18:13:40 +01:00
klmp200 f7ff77b88f Use real images with lazy loading in sas albums and user pictures 2025-02-19 00:12:30 +01:00
klmp200 e8db68b960 Add missing translations 2025-02-18 20:10:54 +01:00
klmp200 93a5c3a02a Separate album downloading logic from user display. Allow downloading individual user albums. 2025-02-18 20:10:54 +01:00
klmp200 e46cba7a06 Move all user picture logic to sas 2025-02-18 20:10:51 +01:00
Kenneth SOARES ba21738bd9 biome reformat 2025-02-18 14:56:08 +01:00
Kenneth SOARES b1db52d2b6 clean typescript 2025-02-18 14:56:08 +01:00
Kenneth SOARES 2bed89aaba typescriptification de picture-index et bonne instantiation alpine-data 2025-02-18 14:56:08 +01:00
Kenneth SOARES 86c68eeb32 fix indenting 2025-02-18 14:56:08 +01:00
Kenneth SOARES 8cb53ceba2 download button for user pictures and albums 2025-02-18 14:56:08 +01:00
Bartuccio Antoine a96b374ad7 Merge pull request #971 from ae-utbm/environ
Use .env for project configuration
2025-02-17 13:37:01 +01:00
imperosol 9945993f0b simplify .env.example
La plupart des variables du `.env.example` n'ont pas besoin d'être modifiées régulièrement et ont déjà des valeurs par défaut dans le `settings.py` qui sont adaptées à un environnement local.
En gardant uniquement les variables qui seront régulièrement modifiées, on rend le fichier plus compréhensible et plus simple à maintenir.
2025-02-17 11:33:15 +01:00
imperosol 59e90ec754 add CSRF_TRUSTED_ORIGINS to settings 2025-02-16 12:47:46 +01:00
imperosol 41bff53853 use .env for project configuration 2025-02-16 12:47:38 +01:00
thomas girod 88b3f7c322 Merge pull request #1009 from ae-utbm/news-list
News list improvements
2025-02-15 18:29:16 +01:00
thomas girod b31445fefb Merge pull request #1010 from ae-utbm/populate-all-uvs
Management command to populate all uvs
2025-02-15 18:28:42 +01:00
thomas girod 2dc32f8b20 Merge pull request #1021 from ae-utbm/master
merge back
2025-02-15 18:13:19 +01:00
imperosol b43b531c3b Add a disclaimer when moderating weekly news 2025-02-15 14:06:01 +01:00
imperosol bf388e68f0 remove Alpine import in moderation-alert-index.ts 2025-02-15 14:04:57 +01:00
imperosol 5252d450a9 remove alpine instructions for moderated news 2025-02-15 14:04:57 +01:00
imperosol 8f17c3d830 Set the moderator when moderating news 2025-02-15 14:04:57 +01:00
imperosol 6627ea417c News moderation buttons directly on the home page 2025-02-15 14:04:43 +01:00
imperosol 92b2befd55 Improve news list display 2025-02-15 14:04:32 +01:00
imperosol 43207455b8 API to moderate and delete news 2025-02-15 14:04:32 +01:00
imperosol 5fa431e29b Visually differentiate closed UVs from the others 2025-02-15 13:51:51 +01:00
imperosol 78f3caa455 management command to update the whole uv guide 2025-02-15 13:51:39 +01:00
imperosol 6d519e3a07 Custom client for UTBM UV API calls 2025-02-15 13:51:39 +01:00
imperosol 85c8b7d11c Use requests for external requests
L'API de requests est beaucoup plus claire que celle d'urllib et urllib3.
2025-02-15 13:51:39 +01:00
thomas girod fa02f4b5f0 Merge pull request #1020 from ae-utbm/taiste
RSS feed, subscription creation permisssion, pedagogy permissions and bugfixes
2025-02-15 13:00:21 +01:00
thomas girod 3df33261ce Merge pull request #1017 from ae-utbm/subscription-perms
Subscription perms
2025-02-15 12:18:40 +01:00
imperosol ee1bcf2011 add forgotten input field label 2025-02-15 12:05:54 +01:00
imperosol 571b3a4e02 fix perms in user_tools.jinja 2025-02-15 12:05:54 +01:00
imperosol 6bf02cecd9 Allow some customisation in core/edit.jinja 2025-02-15 12:05:54 +01:00
imperosol 05d4a09f8c Add a page to manage the groups that can create permissions 2025-02-15 12:05:54 +01:00
Bartuccio Antoine 169e9ea55a Merge pull request #1019 from ae-utbm/calendar-fix
Fix wrong overflow on chrome for calendar
2025-02-14 13:20:04 +01:00
klmp200 9b916f6204 Fix wrong overflow on chrome for calendar 2025-02-14 13:09:05 +01:00
imperosol 2123e83010 fix user_tools.jinja indentation 2025-02-13 13:36:46 +01:00
imperosol 294b59b4d6 use django auth for subscription creation page 2025-02-13 13:36:46 +01:00
Bartuccio Antoine 820ceb48dd Merge pull request #1018 from ae-utbm/fix-upload-artifact
fix upload artifact step of CI
2025-02-13 13:35:29 +01:00
imperosol 73ce681307 fix upload artifact step of CI 2025-02-13 13:30:34 +01:00
thomas girod faa757b54f Merge pull request #1016 from ae-utbm/fix-groups
Fix user groups update view
2025-02-07 15:15:09 +01:00
imperosol 36076aefcc fix user groups update view
Le formulaire remplaçait la totalité des groupes de l'utilisateur, c'est-à-dire également les groupes pas affichés dans le formulaire. Ça fait que la soumission du formulaire retirait l'utilisateur de tous ses groupes de groupes et des autres groupes non-gérables manuellement (comme Publique et Anciens Cotisants).

Jusqu'ici, les groupes non-manuels étaient gérés bizarrement, en regardant dynamiquement à chaque fois si l'utilisateur est dans le groupe, donc le bug ne se voyait pas. Maintenant que tous les groupes sont gérés presque de la même manière, ça se voit.
2025-02-07 13:28:47 +01:00
Bartuccio Antoine b9482a6f08 Merge pull request #1014 from ae-utbm/github
Update upload-artifacts to v4
2025-01-25 16:14:34 +01:00
klmp200 d573182f4b Update upload-artifacts to v4 2025-01-23 15:34:12 +01:00
Bartuccio Antoine 75be6454eb Merge pull request #1013 from ae-utbm/fix-balance-updat
fix `CustomerQuerySet.update_balance`
2025-01-23 15:19:45 +01:00
imperosol 428fe68cdb fix CustomerQuerySet.update_amount 2025-01-23 14:55:10 +01:00
thomas girod 18967cf3d6 Merge pull request #1012 from ae-utbm/fix-counter-access
Fix office counter access
2025-01-23 14:37:32 +01:00
imperosol 14ed43aaa5 fix office counter click access 2025-01-23 13:32:13 +01:00
Bartuccio Antoine c555d5c78c Merge pull request #1008 from ae-utbm/feed
Add atom/rss news feed
2025-01-21 00:38:35 +01:00
klmp200 5db9819560 Address review comments 2025-01-21 00:28:35 +01:00
klmp200 dd2cd0a18d Add atom/rss news feed 2025-01-19 18:22:02 +01:00
thomas girod c7ae70972f Merge pull request #1007 from ae-utbm/calendar
Force ics cache invalidation on ics calendar
2025-01-17 18:09:41 +01:00
thomas girod 17cf0c67b3 Merge pull request #1006 from ae-utbm/pedagogy-perms
Improve pedagogy permissions
2025-01-17 18:08:31 +01:00
klmp200 7d40387f43 Force ics cache invalidation on ics calendar 2025-01-17 17:45:21 +01:00
imperosol 20a535429c pedagogy api permissions 2025-01-17 17:31:22 +01:00
imperosol 5ff7bb3259 Add has_perm api permission 2025-01-17 17:31:08 +01:00
imperosol 0d95c3b9c9 Improve pedagogy permissions 2025-01-17 09:42:16 +01:00
thomas girod 170f9dde61 Merge pull request #1005 from ae-utbm/taiste
More group rework, ajax input style, news creation form rework and counter fixes
2025-01-14 22:06:52 +01:00
Bartuccio Antoine 61170c0918 Merge pull request #1000 from ae-utbm/imghdr
Remove call to deprecated `imghdr` module
2025-01-14 18:00:19 +01:00
Bartuccio Antoine 80940765fe Merge pull request #1002 from ae-utbm/perms
Permissions refactor
2025-01-14 17:58:22 +01:00
Bartuccio Antoine 9d98a20e40 Merge pull request #1004 from ae-utbm/js-upgrade
Upgrade js dependencies
2025-01-14 17:57:48 +01:00
klmp200 6f9f1ac1e7 Upgrade js dependencies
* biomejs
 * hey-api
 * vite
 * threejs
 * other minor upgrades
2025-01-14 17:17:41 +01:00
imperosol 71b096f9ef Apply review comment 2025-01-14 17:17:31 +01:00
imperosol 9272f53bea fix doc display 2025-01-14 17:14:59 +01:00
imperosol 9b5f08e13c Improve permission documentation 2025-01-13 18:20:29 +01:00
imperosol d0b1a49300 deprecate CanCreateMixin
Les motifs de cette déprécation sont indiqués dans la documentation.
Le mixin a été remplacé par `PermissionRequiredMixin` dans les endroits où ce remplacement était aisé.
2025-01-13 18:20:29 +01:00
imperosol e500cf92ee Remove SubscriberMixin 2025-01-13 15:57:01 +01:00
imperosol 551091f650 add PermissionOrAuthorRequiredMixin 2025-01-13 15:45:58 +01:00
imperosol 0c01ad1770 Move core auth mixins to their own file 2025-01-13 15:45:55 +01:00
imperosol cba915c34d Move core views mixins to their own file 2025-01-13 15:45:27 +01:00
imperosol 7ac41ac5cb remove UserIsRootMixin 2025-01-13 15:45:23 +01:00
imperosol c6bb509fc3 remove call to deprecated imghdr module 2025-01-12 15:00:17 +01:00
thomas girod 4d0d7adce1 Merge pull request #998 from ae-utbm/simpler-com
Rework news creation form
2025-01-11 20:47:21 +01:00
thomas girod 6bcc420af1 Merge pull request #969 from ae-utbm/default-groups
Give default groups to users
2025-01-11 20:44:39 +01:00
imperosol 9f35f5356b fix NewsQuerySet.viewable_by 2025-01-10 22:08:28 +01:00
imperosol 8d73ec797b remove unwanted translation
Django ne traduit pas ses permissions. Si on traduit les nôtres, ça devient inconsistant
2025-01-10 22:08:28 +01:00
imperosol c3fc8538cc rework news form 2025-01-10 22:08:24 +01:00
imperosol 600657b1a8 get_end_of_semester util function 2025-01-10 22:08:10 +01:00
imperosol d3f21c8f16 remove news event type 2025-01-10 22:08:10 +01:00
imperosol 895d51586e put com forms in their own file 2025-01-10 22:08:10 +01:00
Bartuccio Antoine e200f28267 Merge pull request #1001 from ae-utbm/counter
Fix selling ordering bug that created "not enough money" errors
2025-01-10 16:39:44 +01:00
klmp200 a4c6439981 Fix selling ordering bug that created "not enough money" errors
* Add tests
* Add tests for cons/dcons
2025-01-10 16:35:42 +01:00
Bartuccio Antoine 6ee2e8c5da Merge pull request #996 from ae-utbm/elections
Remove shorten dependency and use clip instead
2025-01-10 15:41:31 +01:00
klmp200 f4af29acb4 Fix missing translation 2025-01-10 15:34:46 +01:00
imperosol a8810816f0 Give the public group to newly created users 2025-01-10 02:23:07 +01:00
imperosol b7bf3fd375 Give the old_subscribers group when subscribing 2025-01-10 02:12:17 +01:00
thomas girod b26e85ebb2 Merge pull request #999 from ae-utbm/fix-perms
fix ban page access
2025-01-10 01:41:19 +01:00
imperosol 8b8a295e16 fix ban page access 2025-01-10 01:29:24 +01:00
Bartuccio Antoine 894690a97f Merge pull request #997 from ae-utbm/counter
Fix inconsistent search behavior on counter click codes
2025-01-09 22:32:59 +01:00
Bartuccio Antoine 843ce2e3a7 Merge pull request #990 from ae-utbm/jquery
Remove some jquery
2025-01-09 22:32:39 +01:00
klmp200 9f33ddd883 Fix inconsistent search behavior on counter click codes 2025-01-09 01:04:11 +01:00
klmp200 a2dc4f1964 Create a new better script for showing more/less 2025-01-08 14:51:14 +01:00
thomas girod cca486f2b9 Merge pull request #995 from ae-utbm/elections
Fix election display on mobile and add missing signal for news deletion
2025-01-08 09:42:18 +01:00
thomas girod b9e27ef191 Merge pull request #976 from ae-utbm/tom-select-style
make ajax select appearance consistant with other inputs
2025-01-08 09:40:31 +01:00
klmp200 29e875bcde Fix election display on mobile and add missing signal for news deletion 2025-01-08 09:32:24 +01:00
thomas girod 686d67410a Merge pull request #994 from ae-utbm/taiste
UV as package manager and election style fix
2025-01-08 09:12:06 +01:00
thomas girod 4226ba88ae Merge pull request #993 from ae-utbm/elections
Quick fix for election display
2025-01-08 08:55:22 +01:00
klmp200 672bc91e36 Quick fix for election display 2025-01-08 03:17:18 +01:00
Bartuccio Antoine bc9cb9b36c Merge pull request #992 from ae-utbm/uv
Fix install documentation
2025-01-06 22:30:32 +01:00
klmp200 edafc06c3f Fix install documentation 2025-01-06 22:26:46 +01:00
Bartuccio Antoine 134f8a7989 Merge pull request #991 from ae-utbm/uv
Switch from poetry to uv
2025-01-06 22:19:19 +01:00
klmp200 771cbdbd77 More explicit uv install steps 2025-01-06 21:59:36 +01:00
klmp200 a491baddb9 Apply review comments 2025-01-06 20:13:41 +01:00
klmp200 8d10a5e0ab Update deploy scripts to uv 2025-01-06 16:17:56 +01:00
klmp200 cbe42d3a60 Add caching for virtualenv 2025-01-06 16:17:56 +01:00
klmp200 0c4d72e17a Switch from poetry to uv 2025-01-06 16:17:54 +01:00
klmp200 2db3290bed Remove some jquery 2025-01-05 20:17:30 +01:00
Bartuccio Antoine 429df81ec9 Merge pull request #989 from ae-utbm/counter
Make code matching rank first in counter click
2025-01-05 19:05:10 +01:00
klmp200 bb24516474 Make code matching rank first in counter click 2025-01-05 18:54:54 +01:00
thomas girod 16de128fdb Merge pull request #987 from ae-utbm/taiste
Better group management, unified calendar and fixes
2025-01-05 17:52:36 +01:00
thomas girod 8e339c3d4b Merge pull request #988 from ae-utbm/news
fix: wrong link for ae dev discord
2025-01-05 17:29:57 +01:00
klmp200 25298518bc fix: wrong link for ae dev discord 2025-01-05 17:25:23 +01:00
thomas girod 2e26ff2cde Merge pull request #986 from ae-utbm/news
Improve welcome page
2025-01-05 17:18:55 +01:00
klmp200 a8702d4f5e Improve welcome page
* Improve code readability of calendar details
* Add link to AE Dev discord in useful links
* Add link to github at the bottom
2025-01-05 16:42:26 +01:00
thomas girod 7f4cc5fb0f Merge pull request #980 from ae-utbm/ban-groups
Ban groups
2025-01-05 15:54:19 +01:00
imperosol e7215be00e translations 2025-01-05 15:49:30 +01:00
imperosol 4f35cc00bc Add UserBan management views 2025-01-05 15:49:08 +01:00
imperosol af47587116 Split groups and ban groups 2025-01-05 15:49:08 +01:00
Bartuccio Antoine 3c4daeadb0 Merge pull request #985 from ae-utbm/form-fixes
small form fixes
2025-01-05 15:47:44 +01:00
imperosol 348ab19ac6 small form fixes
le `display:block` avait disparu des helptext, ce qui rendait leur affichage bizarre. Et il manquait quelques détails sur le `ProductForm`
2025-01-05 15:40:41 +01:00
thomas girod ada74a3e42 Merge pull request #984 from ae-utbm/lock-poetry
Pin poetry version
2025-01-05 15:02:45 +01:00
imperosol 785ac9bdab pin poetry version 2025-01-05 14:48:40 +01:00
Bartuccio Antoine d1e604e7a5 Merge pull request #975 from ae-utbm/unified-calendar
Unified calendar widget on main com page with external and internal events
2025-01-05 01:46:38 +01:00
klmp200 2749a88704 Basic test for internal calendar 2025-01-05 01:36:41 +01:00
klmp200 eb3db134f8 Test external calendar caching 2025-01-05 01:32:54 +01:00
klmp200 fa7f5d24b0 Test external calendar api 2025-01-05 01:04:11 +01:00
klmp200 ba76015c71 Use a newer ical library 2025-01-04 23:12:34 +01:00
klmp200 1887a2790f Move IcsCalendar to it's own file 2025-01-04 23:08:09 +01:00
klmp200 5d0fc38107 Make social icons links pretty 2025-01-04 23:08:09 +01:00
klmp200 65df55a635 Use signals to update internal ics 2025-01-04 23:08:09 +01:00
klmp200 a60e1f1fdc Create dedicated class to manage ics calendar files 2025-01-04 23:08:09 +01:00
klmp200 0a0f44607e Return calendars as real files 2025-01-04 23:08:09 +01:00
klmp200 007080ee48 Extract send_file response creation logic to a dedicated function 2025-01-04 23:08:09 +01:00
klmp200 a13e3e95b7 Harmonize titles on front page 2025-01-04 23:08:09 +01:00
klmp200 169938e1da Replace old agenda of event with links to services and change permission to see birthdays 2025-01-04 23:08:09 +01:00
klmp200 e5fb875968 Add support for event location and more detail link 2025-01-04 22:52:17 +01:00
klmp200 9bd14f1b4e Refactor popup creation 2025-01-04 22:51:45 +01:00
klmp200 fd2295119d nice looking popup with well aligned icon 2025-01-04 22:51:45 +01:00
klmp200 eac2709e86 Create basic (ugly) event detail popup 2025-01-04 22:51:45 +01:00
klmp200 48f6d134bf Fix news page layout 2025-01-04 22:51:45 +01:00
klmp200 6d7467e746 Make new calendar look like the iframe one 2025-01-04 22:51:44 +01:00
klmp200 0d1629495b Refactor com scss and add basic unified event calendar 2025-01-04 22:51:44 +01:00
klmp200 63839dc22b Fix poster edition and display bug 2025-01-04 22:51:44 +01:00
Bartuccio Antoine c627944bd1 Merge pull request #983 from ae-utbm/gettext
Remove line numbers from locale files
2025-01-04 22:50:10 +01:00
imperosol f0be4b270b remove line numbers from locale files 2025-01-04 22:03:37 +01:00
thomas girod 728065e771 Merge pull request #982 from ae-utbm/groups
fix get_or_create in club group migration
2025-01-04 19:01:16 +01:00
imperosol 849fac490d fix get_or_create in club group migration 2025-01-04 18:49:00 +01:00
thomas girod 5752229312 Merge pull request #981 from ae-utbm/groups
split migrations
2025-01-04 18:14:09 +01:00
imperosol 6eb860579a split migrations 2025-01-04 18:05:02 +01:00
thomas girod d08d54b4c9 Merge pull request #935 from ae-utbm/groups
Remove `RealGroup` and `MetaGroup`
2025-01-04 17:13:48 +01:00
imperosol bb210f8d47 change club group names when the club name changes 2025-01-04 16:43:38 +01:00
imperosol efca10e252 remove Club.view_groups, Club.edit_groups and Club.owner_group 2025-01-03 17:30:24 +01:00
imperosol b8f851b009 translations 2025-01-03 01:18:28 +01:00
imperosol 1e29ae4171 fixes on club group attribution 2025-01-03 01:18:28 +01:00
imperosol 0ae1e850f4 improve admin 2025-01-03 01:18:28 +01:00
imperosol d380668c0f Move users to the club groups in the migration 2025-01-03 01:18:28 +01:00
imperosol 9a72c5eb72 fix galaxy tests 2025-01-03 01:18:28 +01:00
imperosol 407cfbe02b update docs 2025-01-03 01:18:28 +01:00
imperosol 6400b2c2c2 replace MetaGroups by proper group management 2025-01-03 01:18:28 +01:00
imperosol 0d3fd954a3 make ajax select appearance consistant with other inputs 2024-12-29 18:16:52 +01:00
thomas girod cce7ecbe73 Merge pull request #974 from ae-utbm/fix-page
fix 500 error when accessing history of non-existing page
2024-12-29 15:47:38 +01:00
imperosol d200c1e381 fix 500 error when accessing history of non-existing page 2024-12-28 13:25:42 +01:00
thomas girod 673c427485 Merge pull request #973 from ae-utbm/taiste
Better counter, product management improvement, better form style and custom auth backend
2024-12-27 22:42:52 +01:00
thomas girod 2f9e5bfee1 Merge pull request #965 from ae-utbm/form-style
rework form style
2024-12-27 22:24:09 +01:00
Bartuccio Antoine 11702d3d7c Merge pull request #959 from ae-utbm/counter-click-step-4
Make counter click client side first
2024-12-27 22:06:35 +01:00
klmp200 43f47e2087 Improve product card display on counter click 2024-12-27 01:59:54 +01:00
thomas girod 4b881903f0 Merge pull request #972 from ae-utbm/fix-product-fetch
Fix product fetch
2024-12-26 23:43:41 +01:00
imperosol 761e37ade6 fix product fetch 2024-12-26 17:26:06 +01:00
thomas girod 10ed2f7404 Merge pull request #963 from ae-utbm/fix-group-edit
Fix error when submitting group form without any group checked
2024-12-26 17:02:02 +01:00
klmp200 43768f1691 Refactor counter-click css 2024-12-26 11:52:30 +01:00
klmp200 280d27343d Put error popup inside the basket 2024-12-25 20:44:52 +01:00
klmp200 138e1662c7 Add popup css class and display basket error messages with it on counter click 2024-12-24 00:29:23 +01:00
klmp200 c80fe094a2 Remove useless form elements in counters and improve alignment 2024-12-23 20:44:49 +01:00
klmp200 139221dd22 Apply review comments 2024-12-23 15:15:24 +01:00
imperosol 72c2981d66 rework form style 2024-12-23 15:11:15 +01:00
klmp200 6f003ffa53 Add translations 2024-12-23 02:41:41 +01:00
klmp200 7f6fd7dc47 Fix wrong tests/permissions 2024-12-23 02:37:41 +01:00
klmp200 ccf5118c9d Add invalid form tests 2024-12-23 02:26:39 +01:00
klmp200 022c19c020 Fix counter permissions issues 2024-12-23 02:17:28 +01:00
klmp200 2e5e217842 Disable eboutic in counter click/main 2024-12-23 01:35:44 +01:00
klmp200 9c93c004ec Add more counter click tests 2024-12-23 01:18:01 +01:00
klmp200 472800eff6 Add nice snackbar message on counter interface and fix not enough money protection on frontend 2024-12-23 00:56:57 +01:00
klmp200 b8d43a629b Increase selling label size and add more counter click tests 2024-12-23 00:00:40 +01:00
klmp200 f6693e12cf Basic counter click tests 2024-12-22 19:24:07 +01:00
klmp200 38f491cf57 Properly test annotations in counter click 2024-12-22 16:43:07 +01:00
klmp200 3464d5d860 Add proper tests for refilling view 2024-12-22 16:16:28 +01:00
thomas girod 81773dc800 Merge pull request #964 from ae-utbm/fix-backend
Fix custom auth backend
2024-12-22 15:07:46 +01:00
imperosol da400155eb fix SithModelBackend._get_group_permissions 2024-12-22 15:01:58 +01:00
klmp200 5079938a5b Fix get_operator on non bar counters and better display of counter with no products 2024-12-22 13:36:50 +01:00
klmp200 b8430adc50 Split counter-click-index.ts 2024-12-22 13:01:37 +01:00
klmp200 eed434aeb2 Improve age management for getting products and make get_product a part of counter model 2024-12-22 12:27:58 +01:00
klmp200 372470b44b Improve empty basket and tray price management 2024-12-22 12:06:15 +01:00
klmp200 7071553c3b Optimize product id validation on counter click 2024-12-22 12:06:15 +01:00
klmp200 eea237b813 Pre-filter allowed products in backend for counter click 2024-12-22 12:06:15 +01:00
klmp200 c37288c285 Display nice product cards on counter click interface 2024-12-22 12:06:15 +01:00
klmp200 ccf5767a01 Fix customerBalance not init and submit/cancel buttons visuals 2024-12-22 12:06:15 +01:00
klmp200 ffe6fc8c2a Redirect when cancelling instead of submitting a form 2024-12-22 12:06:15 +01:00
klmp200 5f0b4d2050 Properly display form errors in counter 2024-12-22 12:06:15 +01:00
klmp200 f9d7dc7d3a Restore form when form submit fails due to error 2024-12-22 12:06:15 +01:00
klmp200 8ebea00896 Fix crash during validation 2024-12-22 12:06:15 +01:00
klmp200 a548f4744e Fix counter main
* Fix crash when submitting nothing
* Fix code field not being autofocus
2024-12-22 12:06:15 +01:00
klmp200 a383f3e717 Don't use codes as a primary key in counter click 2024-12-22 12:06:15 +01:00
klmp200 60f18669c8 Make counter click client side first 2024-12-22 12:06:14 +01:00
klmp200 a36946529b Fix error when submitting group form without any group checked 2024-12-22 12:04:51 +01:00
thomas girod eaac0c728f Merge pull request #961 from ae-utbm/auth-backend
Custom auth backend
2024-12-22 06:38:34 +01:00
thomas girod 9ca95774a3 Merge pull request #962 from ae-utbm/query-news
Fix N+1 queries on birthdays
2024-12-22 06:32:58 +01:00
imperosol fa66851889 fix n+1 queries on birthdays 2024-12-21 21:09:08 +01:00
imperosol ab81f11199 Manage subscribers group permissions 2024-12-21 18:52:16 +01:00
imperosol bea7741d35 populate group permissions 2024-12-21 18:48:30 +01:00
imperosol 81e163812e custom auth backend 2024-12-21 17:34:20 +01:00
Bartuccio Antoine 4f233538e0 Merge pull request #955 from ae-utbm/counter-click-step-3
Use TomSelect for product selection on counter
2024-12-21 16:00:06 +01:00
klmp200 4ac09ac08b Use tomselect instead of jquery autoselect for counter clicks 2024-12-21 15:56:18 +01:00
thomas girod 6d02970676 Merge pull request #946 from ae-utbm/product-csv
Rework the product admin page
2024-12-21 15:50:34 +01:00
thomas girod b773a05bb5 Merge pull request #960 from ae-utbm/taiste
User model migration, better product types ordering and subscription page fix
2024-12-21 02:40:20 +01:00
imperosol accf1befce Make products filterable by product type 2024-12-21 02:15:51 +01:00
imperosol 6953eaa9d0 fix sanitization of the csv content 2024-12-21 02:14:38 +01:00
imperosol 180bae59c8 Add translations 2024-12-21 02:14:38 +01:00
imperosol 9cafc163e8 fix frontend archived products filter 2024-12-21 02:14:38 +01:00
imperosol 8f8eef4107 display products as cards 2024-12-21 02:14:38 +01:00
imperosol 7af745087e create a card css component 2024-12-21 02:14:38 +01:00
imperosol aab093200b slightly improve style 2024-12-21 02:14:38 +01:00
imperosol 1a9556f811 add a button to download products as csv 2024-12-21 02:14:38 +01:00
imperosol 39b36aa509 ajaxify the product admin page 2024-12-21 02:14:38 +01:00
imperosol 3fc260a12c add csv converter 2024-12-21 02:14:38 +01:00
imperosol 1696a2f579 Add NestedKeyOf Type 2024-12-21 02:14:38 +01:00
thomas girod baebc0b690 Merge pull request #958 from ae-utbm/fix-group-form
fix user groups form
2024-12-20 11:07:13 +01:00
imperosol 9f3a10ca71 fix user groups form 2024-12-20 11:00:57 +01:00
thomas girod 38ceaf3106 Merge pull request #957 from ae-utbm/user-model
Fix groups displayed on user profile group edition
2024-12-19 20:32:39 +01:00
klmp200 87b619794d Fix groups displayed on user profile group edition 2024-12-19 18:57:50 +01:00
thomas girod 29c4a36479 Merge pull request #956 from ae-utbm/query-page-hist
Fix N+1 queries on page history
2024-12-19 15:09:11 +01:00
Bartuccio Antoine ddeb12f08c Merge pull request #929 from ae-utbm/user-model
Migrate User parent class from AbstractBaseUser to AbstractUser
2024-12-19 14:27:16 +01:00
imperosol a7b1406e06 post-rebase fix 2024-12-19 10:53:11 +01:00
imperosol 871ef60cf6 remove obsolete RunPython operations 2024-12-19 10:39:07 +01:00
imperosol 7e9071a533 optimize User.is_subscribed and User.was_subscribed 2024-12-19 10:39:07 +01:00
imperosol 8c660e9856 Make core.User inherit from AbstractUser instead of AbstractBaseUser 2024-12-19 10:39:04 +01:00
imperosol 6ca641ab7f fix: N+1 queries on page version list page 2024-12-19 10:32:02 +01:00
thomas girod 8d6609566f Merge pull request #951 from ae-utbm/refactor-news
refactor news model and creation form
2024-12-18 16:09:41 +01:00
imperosol 17e4c63737 refactor news model and creation form 2024-12-18 15:54:10 +01:00
thomas girod fad470b670 Merge pull request #952 from ae-utbm/sort-producttypes
Sort product types
2024-12-18 15:45:50 +01:00
thomas girod c5646b1e59 Merge pull request #954 from ae-utbm/fix-subscription
fix access to the subscription page
2024-12-18 15:45:17 +01:00
imperosol 5da27bb266 rename producttype to product_type 2024-12-18 14:48:59 +01:00
imperosol be6a077c8e fix access to the subscription page 2024-12-18 14:13:39 +01:00
imperosol 8d643fc6b4 Apply review comments 2024-12-17 17:23:13 +01:00
imperosol 47876e3971 Make product types dynamically orderable. 2024-12-17 13:35:29 +01:00
imperosol c79c251ba7 Add ProductTypeController 2024-12-17 13:35:29 +01:00
imperosol 483670e798 Make ProductType an OrderedModel 2024-12-17 13:35:29 +01:00
imperosol 6c8a6008d5 api route to search products with detailed infos. 2024-12-17 12:38:59 +01:00
imperosol e680124d7b fix makemessages command in docs 2024-12-17 12:38:59 +01:00
imperosol b06a06f50c feat: add restore on backspace plugin for tom select 2024-12-17 12:38:59 +01:00
thomas girod c1be55a719 Merge pull request #953 from ae-utbm/taiste
Counter views split, unique student cards, student cards and reloads HTMXification, refactors and fixes
2024-12-17 11:43:32 +01:00
Bartuccio Antoine 6416de237f Merge pull request #923 from ae-utbm/counter-click-step-2
Casser counter click step 2 : separate refilling from counter clicks with fragments
2024-12-17 10:58:34 +01:00
klmp200 ad44fd52a4 Apply review comments 2024-12-17 10:54:41 +01:00
klmp200 03c27b10e5 Fix refill permissions
* Remove ability to refill from counters
* Fix bug where you could refill without any board member on a BAR
* Add a warning message explaining why refilling are disabled
2024-12-17 02:42:07 +01:00
klmp200 fc0ef29738 Remove GetCustomer API endpoint 2024-12-17 01:42:10 +01:00
klmp200 a0eb53a607 Apply review comments 2024-12-17 01:41:45 +01:00
klmp200 66e5ef64fd Don't use API to update amount after a refilling query 2024-12-17 00:47:43 +01:00
thomas girod f5d5cc18a8 Merge pull request #949 from ae-utbm/trombi
Fix crash when admin gets to preferences of an user subscribed to a trombinoscope
2024-12-16 10:06:17 +01:00
klmp200 4c65939bbe Fix crash when admin gets to preferences of an user subscribed to a trombinoscope 2024-12-16 09:31:43 +01:00
klmp200 379527cd58 Add a nice animation on successful refilling 2024-12-16 00:58:23 +01:00
klmp200 f63fb59cbf Allow filtering of refilling options
* Move settings.SITH_COUNTER_PAYMENT_METHOD to counter.apps.PAYMENT_METHOD
* Move student cards to an accordion on counter click
* Make cash default refilling option
* Disable bank selection option in refilling if CHECK are not allowed
* Disable refilling with CHECK from the frontend
2024-12-16 00:15:21 +01:00
klmp200 cde864fdc7 Apply review comments 2024-12-15 22:47:59 +01:00
klmp200 e9361697f7 Convert customer refill to a fragment view 2024-12-15 21:33:19 +01:00
thomas girod 830c752971 Merge pull request #948 from ae-utbm/sentry
Enable sentry workflow again
2024-12-15 18:36:46 +01:00
klmp200 6bdc1b73ae Enable sentry workflow again 2024-12-15 17:31:41 +01:00
NaNoMelo 0f003870bb Merge pull request #924 from ae-utbm/unique-student-card
Make student card unique per user
2024-12-15 17:06:35 +01:00
klmp200 0631c77a1c Apply review comments 2024-12-15 17:02:44 +01:00
klmp200 2cc4308a58 Fix tooltip shadow and position and improve unittests 2024-12-15 16:49:24 +01:00
klmp200 4975475e85 Add tooltip on current registered card, allow barmen to delete cards and make card deletion a fragment 2024-12-15 16:49:24 +01:00
imperosol 466fe58763 feat: make student card unique per user 2024-12-15 16:49:24 +01:00
imperosol 3b7e338808 fix 500 when accessing preferences
Quand on tente d'accéder aux préférences d'un utilisateur relié à un trombi, sans être soi-même dans un trombi, on a une erreur.
2024-12-15 16:49:24 +01:00
Bartuccio Antoine 53b13e7aef Merge pull request #947 from ae-utbm/dependencies
Upgrade dependencies
2024-12-15 13:53:28 +01:00
klmp200 fa60ecb25a Upgrade dependencies 2024-12-15 00:59:55 +01:00
thomas girod a975824481 Merge pull request #945 from ae-utbm/refactor-product
Remove `Product.parent_product`
2024-12-09 20:20:11 +01:00
imperosol c51e5eb6cb remove parent_product column in the Product table 2024-12-09 12:59:33 +01:00
imperosol f0bc502ec9 fix translation in subscription creation success fragment 2024-12-09 12:31:58 +01:00
Bartuccio Antoine 902cafc5e4 Merge pull request #921 from ae-utbm/counter-click
Casser counter click étape 1 : introduire des fragments
2024-12-08 13:49:08 +01:00
thomas girod b2f54aa23e Merge pull request #943 from ae-utbm/update-deps
Update deps
2024-12-08 13:46:53 +01:00
klmp200 29a5425259 Add spinner to student card form 2024-12-08 13:17:56 +01:00
imperosol e2a34c75ea deps: update dependencies 2024-12-08 11:54:58 +01:00
klmp200 de7aa6f6a6 Create a generic form fragment renderer 2024-12-08 11:45:16 +01:00
imperosol 9acb421b2e deps: update ruff 2024-12-08 11:17:27 +01:00
klmp200 66d2dc74e7 Pre-fetch forms for student card 2024-12-08 00:32:28 +01:00
klmp200 2f613607af Update number of queries in test_num_queries 2024-12-07 23:35:35 +01:00
klmp200 d4b9c3afb1 Make StudentCardFormView fragment only 2024-12-07 22:36:15 +01:00
klmp200 b81cf49d0a Remove student card creation from CounterClick view and use fragment instead
Intercept htmx on submit requests, this allows auto submit from nfc fields

Fix super call with parameters

Add loading wheel on student card form for counter_click.jinja
2024-12-07 12:57:10 +01:00
thomas girod 1da45fdffc Merge pull request #934 from ae-utbm/split-counter
Split counter views into multiple files
2024-12-07 11:53:14 +01:00
imperosol 10dde3f002 fix imports 2024-12-07 00:18:17 +01:00
imperosol c2d6af12ab Merge branches 'split-home' and 'split-studentcard' into split-counter 2024-12-07 00:13:50 +01:00
imperosol 6e48f88c06 extract counter auth views 2024-12-07 00:12:10 +01:00
imperosol 7a91a71565 extract counter auth views 2024-12-07 00:11:18 +01:00
imperosol c4764110d8 extract counter home views 2024-12-07 00:10:46 +01:00
imperosol ff68e65250 extract counter home views 2024-12-07 00:07:37 +01:00
imperosol c9d83e5916 extract student card views 2024-12-07 00:06:33 +01:00
imperosol 5dc99dbfcb extract student card views 2024-12-07 00:05:45 +01:00
thomas girod 8dbec85c8e Merge pull request #941 from ae-utbm/optimize-search
Optimize search
2024-12-06 21:00:06 +01:00
imperosol 84d7e40e66 feat: client-side cache for ajax-select inputs 2024-12-06 18:38:30 +01:00
imperosol 0b509f2200 fix N+1 queries on user search 2024-12-06 18:38:30 +01:00
thomas girod 9591162cc9 Merge pull request #940 from ae-utbm/fix-dump
Fix the account dump command.
2024-12-05 19:52:07 +01:00
imperosol 007e17fd8b Fix the account dump command.
- a missing `fail_silently` flag made the whole command fail if an invalid recipient is used (like closed utbm mail address)
- Not specifying the seller make the account detail pages crash.
2024-12-05 12:50:40 +01:00
thomas girod 35c5f96672 Merge pull request #939 from ae-utbm/taiste
`dump_account`, HTMX, Subscriptions and more
2024-12-04 00:10:19 +01:00
thomas girod 95f8e7517c Merge pull request #932 from ae-utbm/fix-subscriptions
Rework the subscription page
2024-12-03 19:45:26 +01:00
imperosol 9667c79162 remove htmx-ext-response-targets 2024-12-03 19:41:10 +01:00
imperosol 1c79c25262 better tab style 2024-12-03 19:41:09 +01:00
imperosol 04b4b34bfe add back user profiles on subscription form 2024-12-03 19:41:09 +01:00
imperosol fc0e689d4e add initial values to forms 2024-12-03 19:41:09 +01:00
imperosol 83bb4b3b12 add translation 2024-12-03 19:41:09 +01:00
imperosol 8dcfc604a0 write tests 2024-12-03 19:41:09 +01:00
imperosol d2d639e5f6 Split SubscriptionForm into SubscriptionNewUserForm and SubscriptionExistingUserForm 2024-12-03 19:41:09 +01:00
thomas girod b3eb7693e3 Merge pull request #933 from ae-utbm/remove-stock
delete stock application
2024-11-28 23:20:35 +01:00
imperosol 10f42b1522 fix imports 2024-11-27 19:03:34 +01:00
imperosol 76e9f3b1dc Merge branches 'split-cash', 'split-click', 'split-main', 'split-admin', 'split-mixins', 'split-eticket' and 'split-invoices' into split-clean 2024-11-27 18:49:40 +01:00
imperosol d0ff9bc16c extract mixins views 2024-11-27 18:48:06 +01:00
imperosol 5e4ebd16f9 extract mixins views 2024-11-27 18:47:55 +01:00
imperosol d2b19424ff extract eticket views 2024-11-27 18:47:18 +01:00
imperosol 08286254cd extract eticket views 2024-11-27 18:47:03 +01:00
imperosol 4805c39b45 extract cash views 2024-11-27 18:46:24 +01:00
imperosol f845bbf20a extract cash views 2024-11-27 18:45:27 +01:00
imperosol 71c7158124 extract invoice views 2024-11-27 18:43:26 +01:00
imperosol c4643ee52c extract invoice views 2024-11-27 18:42:50 +01:00
imperosol b46b0882f3 extract admin views 2024-11-27 18:42:26 +01:00
imperosol 1c4efc9431 extract admin views 2024-11-27 18:41:47 +01:00
imperosol 4133e0ccdd extract click views 2024-11-27 18:41:12 +01:00
imperosol de415e7e75 split click views 2024-11-27 18:40:38 +01:00
imperosol 9d17524f45 extract main views 2024-11-27 18:00:48 +01:00
imperosol 68ad9650af extract main views 2024-11-27 17:56:44 +01:00
imperosol 8d4d8a3abc create views package 2024-11-27 17:07:08 +01:00
imperosol 9617e29ed5 delete stock application 2024-11-26 17:35:10 +01:00
imperosol 75406f7b58 Tabs jinja component 2024-11-26 16:17:44 +01:00
imperosol 70f5ae4f9c Move subscription forms to subscription/forms.py 2024-11-26 16:17:44 +01:00
Bartuccio Antoine ff307f1d65 Merge pull request #928 from ae-utbm/vite
Integrate vite manifests in django
2024-11-22 18:34:49 +01:00
Bartuccio Antoine d7ae601c52 Merge pull request #911 from ae-utbm/skia/fix_user_profile_picture
core: fix user profile picture size
2024-11-21 19:13:36 +01:00
thomas girod 33b9ff78bb Merge pull request #913 from ae-utbm/dump-accounts
Dump accounts
2024-11-21 18:39:49 +01:00
klmp200 0739ce2fb4 Improve readability and usability 2024-11-21 00:33:40 +01:00
klmp200 8fc1a754de Integrates vite manifests to django 2024-11-20 18:24:28 +01:00
klmp200 ca8c1c9d92 Mirror -index.css generation with their import location in -index.js/ts files 2024-11-19 21:22:14 +01:00
klmp200 0485ab1120 Remove defer from script where type=module is used 2024-11-19 21:22:14 +01:00
klmp200 8a8851847c Passage de webpack à vite.dev 2024-11-19 21:22:14 +01:00
klmp200 7b41051d0d Go for a more generic js bundling architecture
* Don't tie the output name to webpack itself
* Don't call js bundling webpack in python code
* Make the doc more generic about js bundling
2024-11-19 21:22:14 +01:00
thomas girod 3db1f592e2 Merge pull request #927 from ae-utbm/password-and-username
Improve password and username generation
2024-11-19 17:39:54 +01:00
imperosol 6853ec0b69 make random password generation safe 2024-11-19 13:21:08 +01:00
imperosol 3b39049c20 Make User.generate_username less stupid 2024-11-19 13:07:59 +01:00
thomas girod 37d1669a72 typo in docstrings
Co-authored-by: NaNoMelo <56289688+NaNoMelo@users.noreply.github.com>
2024-11-19 00:48:35 +01:00
imperosol ee9f36d883 implement the dump_accounts command 2024-11-19 00:48:35 +01:00
imperosol e712f9fdb8 improve counter dump admin 2024-11-19 00:43:17 +01:00
klmp200 9991f5dc64 Create nice animation when scanning nfc cards 2024-11-15 14:51:45 +01:00
klmp200 fce6c3d29c Convert nfc input to a web component 2024-11-15 14:51:45 +01:00
Bartuccio Antoine 346439076e Merge pull request #922 from ae-utbm/ci
Fix CI
2024-11-15 14:46:05 +01:00
klmp200 5e8d8b8d5d Revert back curl install of poetry in pipelines 2024-11-15 14:41:25 +01:00
thomas girod db9f86c41e Merge pull request #919 from ae-utbm/ts-eboutic
Migrate eboutic to Typescript
2024-11-14 11:07:37 +01:00
imperosol c7adde62eb reset poetry cache in github CI 2024-11-13 23:50:43 +01:00
imperosol 34559dda08 migrate eboutic to typescript 2024-11-13 23:26:05 +01:00
thomas girod 37c4621e9e Merge pull request #912 from ae-utbm/refactor_populate
Refactor populate
2024-11-13 15:43:18 +01:00
Bartuccio Antoine dd7ed290f5 Merge pull request #883 from ae-utbm/htmx
Introduce htmx in sith files
2024-11-13 15:35:24 +01:00
klmp200 dc1e1fc897 Fix typos 2024-11-12 21:38:38 +01:00
thomas girod 0a5ddcea68 Merge pull request #918 from ae-utbm/taiste
Ajax search input enhancement, promo 25 logo and small improvements
2024-11-12 13:20:53 +01:00
klmp200 37abde04d7 Improve fragment doc 2024-11-11 13:56:34 +01:00
klmp200 40f2f7033e Add test for AllowFragment mixin 2024-11-11 13:49:38 +01:00
klmp200 aebf909dc6 Apply review comments 2024-11-11 13:49:38 +01:00
klmp200 ec7d45fd91 Add documentation for htmx 2024-11-11 13:49:38 +01:00
klmp200 3af5d96bf5 Introduce htmx in sith files
* Convert FileModerationView into ListView and add pagination with htmx
* Don't allow sas moderation in file moderation view
* Split up base.jinja and introduce base_fragment.jinja
* Improve FileModerationView performances and make it root only
* Add permissions tests for file modération
2024-11-11 13:49:38 +01:00
imperosol c7a8a1a91c refactor CI 2024-11-11 13:28:44 +01:00
thomas girod 2dd434d987 Merge pull request #917 from ae-utbm/doc
Fix some doc typos
2024-11-11 12:47:51 +01:00
klmp200 5e954bae6a Fix some doc typos 2024-11-11 00:32:04 +01:00
imperosol a97dba18c2 Reduce width of non-multiple ajax selects 2024-11-11 00:26:16 +01:00
imperosol 26770de40e Make selected option more visible 2024-11-11 00:26:16 +01:00
imperosol 583d4ddfb8 Use less requests in GetUserForm.clean 2024-11-11 00:26:16 +01:00
imperosol 486047b929 remove the honeypot from the login page
Des utilisateurs humains se font régulièrement "éclairer" par le honeypot. Les mesures anti-bot ne devraient pas bloquer des humains.
2024-11-11 00:22:07 +01:00
imperosol b65ec6463b fix picture display in profile page 2024-11-10 16:18:56 +01:00
thomas girod 7cc13ea669 Merge pull request #899 from ae-utbm/ajax-select
Improve ajax select
2024-11-10 13:37:57 +01:00
imperosol c2efc969d0 refactor populate.py 2024-11-10 02:59:43 +01:00
imperosol b091fee035 custom queryset method to bulk update customer balance 2024-11-10 02:59:43 +01:00
Skia 2a0f2454f4 core: fix user profile picture size
Since 28f397574f and the removal of the
`flex-basis: 50px` property from `user_profile_pictures_thumbnails`,
the main picture was always displayed small-ish, at least on Firefox.
Setting back a flex-basis helps getting more consistent behavior once
again.
2024-11-07 15:51:43 +01:00
thomas girod 97ea1763f1 Merge pull request #910 from ae-utbm/logo-25
Add promo 25 logo
2024-11-07 15:25:06 +01:00
NaNoMelo b9f51596e9 Add promo 25 logo 2024-11-07 13:39:24 +01:00
klmp200 0610794dbe Fix ajax-select visual 2024-10-28 18:18:56 +01:00
klmp200 a6b32fcad1 Fix readability and avoid instantiating too many TypeAdapter 2024-10-28 18:08:13 +01:00
klmp200 e583e78a4e Convert the whole request to json at once on select widget 2024-10-21 17:11:07 +02:00
klmp200 3eb3feea49 Fix deprecated usage of schema json method and avoid multiple inheritance on select widgets 2024-10-21 16:14:00 +02:00
klmp200 935914428b Remove ajax_select completely 2024-10-21 13:30:12 +02:00
klmp200 ab63ba1c54 Remove ajax_select from accounting 2024-10-21 13:26:11 +02:00
klmp200 afdc6b69df Remove ajax_select from sas 2024-10-21 10:30:35 +02:00
klmp200 8b419dcee6 Remove ajax_select from core 2024-10-20 23:25:56 +02:00
klmp200 e7181257e3 Remove ajax_select from core/views/forms.py 2024-10-20 23:04:54 +02:00
klmp200 8e7c09332f Remove ajax_select from core/views/group.py 2024-10-20 22:58:39 +02:00
klmp200 d9ea5e5538 Remove ajax_select from trombi 2024-10-20 22:41:35 +02:00
klmp200 a21460a1b8 Remove ajax_select from subscriptions 2024-10-20 22:36:55 +02:00
klmp200 b6a480ff61 Remove ajax_select from forum 2024-10-20 22:29:07 +02:00
klmp200 84ee6dd2f5 Remove ajax_select from clubs 2024-10-20 21:28:25 +02:00
klmp200 a950585a02 Remove ajax_select from rootplace 2024-10-20 20:55:07 +02:00
klmp200 7f8a2c1eaf Remove ajax_select from counters 2024-10-20 20:55:05 +02:00
klmp200 125157fdf4 Move gettext to the top 2024-10-20 18:35:55 +02:00
klmp200 517263dd58 Automatically move inner html in created node when inheriting from HTMLElement 2024-10-20 18:29:48 +02:00
klmp200 301fc73687 Fix markdown input initial value and crash when alpine is not loaded 2024-10-20 18:13:48 +02:00
klmp200 45441c351d Improve ajax-select style 2024-10-20 17:37:51 +02:00
klmp200 be5ce414ba Add proper delete button and fix item ordering 2024-10-20 16:57:38 +02:00
klmp200 bb3f277ba5 Extract js and css from select widgets to editable class attributes 2024-10-20 13:40:59 +02:00
thomas girod 23049a8ae2 Merge pull request #901 from ae-utbm/improve-warning-dump
Improve warning dump
2024-10-20 13:35:08 +02:00
klmp200 8bbebfdb13 Add AutoCompleteSelectGroup 2024-10-20 13:33:44 +02:00
imperosol 662b4b5c53 precise that dumped users can still subscribe 2024-10-20 12:45:37 +02:00
imperosol 9675b6372c add flags to the dump warning mail command 2024-10-20 12:32:28 +02:00
imperosol 03afd49115 make the mail text only 2024-10-20 12:32:28 +02:00
klmp200 0af3505c2a Make a generic AjaxSelect abstract class 2024-10-20 02:26:32 +02:00
klmp200 f78b968075 Move markdown input and select widgets to a widget folder 2024-10-20 01:05:34 +02:00
thomas girod 7d40316044 Merge pull request #900 from ae-utbm/optimize-again
optimize product pages again
2024-10-20 00:55:27 +02:00
klmp200 e3dcad62cc Migrates lookups
* products
* files
* Groups
* Clubs
* Accounting
2024-10-20 00:47:31 +02:00
imperosol db6a871854 optimize product pages again 2024-10-20 00:27:25 +02:00
klmp200 ce4f57bd8f Add ajax user widget and remove ajax_select from elections 2024-10-19 22:06:34 +02:00
klmp200 8be8328830 Create select widget based on tomselect on django backend
Replace make_ajax in elections by the new widget
2024-10-19 21:32:58 +02:00
klmp200 0a0092e189 Add link-once and script-once web components 2024-10-19 18:55:32 +02:00
klmp200 c50f0a2ac5 Simplify ajax-select inheritance and make simple auto complete 2024-10-19 16:02:54 +02:00
klmp200 6b3012d21c Fix broken sas ui in webkit based browsers 2024-10-18 23:50:04 +02:00
klmp200 729f848c14 Add min-characters-for-search attribute for user-ajax-select 2024-10-18 23:34:37 +02:00
klmp200 56cc4776a6 Create base class for ajax-select 2024-10-18 23:26:04 +02:00
thomas girod e6f25fb707 Merge pull request #898 from ae-utbm/taiste
Complete webpack migration, introduction of tom select, better SAS moderation workflow, more ruff and bugfixes
2024-10-18 11:11:39 +02:00
Bartuccio Antoine b9cbba2309 Merge pull request #896 from ae-utbm/relpace-select2
Replace selec2 with tom-select
2024-10-18 00:24:09 +02:00
klmp200 4165f8d4af Add register decorator for web components and a better inheriting system for html elements 2024-10-17 23:14:54 +02:00
klmp200 cac185634d Avoid keeping text after selecting item 2024-10-17 18:21:51 +02:00
klmp200 66dceefcf0 Fix bad constructor when adding attrs that are not part of the parent and fix tom-select on safari 2024-10-17 18:15:55 +02:00
klmp200 677ff51ea5 Create web component util 2024-10-17 18:15:55 +02:00
klmp200 645b8a543e Make easymde compatible with safari 2024-10-17 18:15:55 +02:00
klmp200 74a506c48b Add missing features
* Fix display
* Add internationalization
* Avoid querying under a certain amount of characters
* Update docs for translations with typescript
* Add interpolate to typescript globals
2024-10-17 18:15:55 +02:00
klmp200 deda2b4055 Replace selec2 with tom-select 2024-10-17 18:15:55 +02:00
thomas girod 67ebb90ffa Merge pull request #897 from ae-utbm/fix-xss
Fix xss on select2 results
2024-10-17 12:10:08 +02:00
imperosol 5d16ba135a fix: xss on select2 results 2024-10-17 08:15:34 +02:00
thomas girod 150d08dc45 Merge pull request #894 from ae-utbm/sentry
Test sentry-debug endpoint
2024-10-15 20:48:01 +02:00
klmp200 c1a85486cc Add test for sentry-debug endpoint 2024-10-15 14:09:51 +02:00
thomas girod d16a207a83 Add more Ruff rules (#891)
* ruff: apply rule F

* ruff: apply rule E

* ruff: apply rule SIM

* ruff: apply rule TCH

* ruff: apply rule ERA

* ruff: apply rule PLW

* ruff: apply rule FLY

* ruff: apply rule PERF

* ruff: apply rules FURB & RUF
2024-10-15 11:36:26 +02:00
klmp200 d114b01bcc Make sure Alpine is always loaded when using markdown-input component 2024-10-15 00:28:43 +02:00
klmp200 dee54c3b41 Use manifest storage and correct webpack conversion on easymde form 2024-10-15 00:28:43 +02:00
klmp200 670d2fa12e Use a web component for easymde
* Bump tsconfig output to es6
* Fix wrong import behavior on typescript according to webpack's doc
* Create an easymde component
2024-10-15 00:28:43 +02:00
thomas girod a68e47ce8c Merge pull request #890 from ae-utbm/update-python-deps
Upgrade python dependencies
2024-10-14 15:45:18 +02:00
klmp200 0314aa6733 Upgrade python dependencies
* Upgrade pre-commit
* Upgrade model-bakery
* Uprgade mkdocstrings
* Upgrade mkdocstrings-python
* Upgrade mkdocs-material
2024-10-14 15:16:07 +02:00
thomas girod 496ad7ce9b Merge pull request #868 from ae-utbm/delete-picture-confirm-button
Delete picture confirm button
2024-10-14 14:12:50 +02:00
NaNoMelo efdd4a6b16 fix ruff breakpoint 2024-10-14 01:59:24 +02:00
klmp200 0b31b215f6 Remove check_front command 2024-10-14 00:55:48 +02:00
klmp200 7e1734aed5 Migrate chartjs to npm 2024-10-14 00:55:48 +02:00
imperosol 19cd51043a feat: display moderation requests to moderators 2024-10-14 00:47:07 +02:00
imperosol 5348a451e9 feat: picture moderation requests 2024-10-14 00:45:52 +02:00
imperosol 83ae21140d move SAS forms to their own file 2024-10-14 00:45:52 +02:00
klmp200 cdf9519a9f Port galaxy to webpack 2024-10-13 20:09:55 +02:00
thomas girod d77358eaac Merge pull request #879 from ae-utbm/optimize-products-page
optimize: product list views
2024-10-13 19:20:01 +02:00
klmp200 9609a7615b Don't apply js minification to webpack generated files 2024-10-13 17:14:21 +02:00
klmp200 361a06e5b3 Migrate sentry to webpack 2024-10-13 17:14:21 +02:00
klmp200 1720307c21 Add biome for typescript in vscode config 2024-10-13 17:00:09 +02:00
imperosol 15ae24f0bd optimize: product list views 2024-10-13 12:32:50 +02:00
thomas girod 143713fac1 Merge pull request #878 from ae-utbm/fix-invoices
fix: InvoiceQuerySet.annotate_total() (but this time good)
2024-10-13 11:57:59 +02:00
imperosol e4845b580b fix: invoices month grouping 2024-10-13 11:47:22 +02:00
klmp200 40c623b202 Optimize select2 import 2024-10-13 10:55:15 +02:00
klmp200 092ace8432 Add commands to easily analyze webpack outputs 2024-10-13 10:55:15 +02:00
klmp200 00cf619c68 Remove hand crafted urls on viewer-index.ts 2024-10-13 10:55:15 +02:00
klmp200 b6e1c3bc88 Add helper function to export ts functions to html 2024-10-13 10:55:15 +02:00
klmp200 3b1d06a71d Update select2 documentation 2024-10-13 10:55:15 +02:00
klmp200 a5d8c96bab Remove select2 from vendored
* Make core/utils/select2.ts
* Convert viewer-index.js to typescript
2024-10-13 10:55:15 +02:00
imperosol 564d95f701 fix: InvoiceQuerySet.annotate_total() (but for real this time) 2024-10-13 10:37:48 +02:00
thomas girod 19e21c80df Merge pull request #875 from ae-utbm/taiste
Send mail to inactive users, fix user accounts and webpack sas
2024-10-12 20:04:47 +02:00
klmp200 768e2867b5 Fix wrong formatter doc on vscode 2024-10-12 19:43:07 +02:00
klmp200 f07a855e7e Remove history management from script.js and migrate sas albums to webpack 2024-10-12 19:19:23 +02:00
thomas girod 2fa9daf627 Merge pull request #872 from ae-utbm/invoices-bug
fix: InvoiceQuerySet.annotate_total()
2024-10-12 19:18:37 +02:00
NaNoMelo a1bae7ced3 fix empty options in paginated with typescript 2024-10-12 18:59:06 +02:00
imperosol 7312580a8d fix: InvoiceQuerySet.annotate_total() 2024-10-12 15:52:40 +02:00
thomas girod 1c774aa4a0 Merge pull request #861 from ae-utbm/mail-inactives
Send mail to inactive users
2024-10-12 15:33:23 +02:00
thomas girod cbcdc6171f Merge pull request #871 from ae-utbm/fix-doc-generation
delete stocks remaining docs
2024-10-12 13:02:52 +02:00
NaNoMelo 444a2936e2 delete stocks remaining docs 2024-10-12 12:45:40 +02:00
thomas girod 6a31f38ceb Merge pull request #870 from ae-utbm/taiste
Counter state improvement, Stock app removal, lot of work on Webpack and more
2024-10-11 15:18:12 +02:00
imperosol 29b32f6cbf Tell the customer balance in the warning mail 2024-10-11 09:59:03 +02:00
imperosol 465e0f31d9 write command test 2024-10-11 09:57:46 +02:00
imperosol 5a8052ae47 send mail to inactive users 2024-10-11 09:57:41 +02:00
imperosol 6a64e05247 select inactive users 2024-10-11 09:45:54 +02:00
thomas girod 81a64eed08 Merge pull request #867 from ae-utbm/barmen-link
Better UX and performance for counter state display
2024-10-11 09:31:12 +02:00
Bartuccio Antoine 29b27dc626 Merge pull request #866 from ae-utbm/openapi
Typescript support and auto generated typescript client API
2024-10-11 09:30:35 +02:00
imperosol ca25a12be0 Increase the barmen timeout limit
La limite actuelle est trop faible. En soirée, on s'en fout. Mais en journée, c'est terriblement chiant. Certains barmens passent leur temps à rafraichir la la page, certains mettent un rechargement auto à intervalles réguliers (ce qui tue le concept du timeout), et d'autres encore ont juste arrêté d'y prêter attention (mais le comptoir apparait alors comme fermé, et des étudiants qui auraient pu venir au Foyer ne viennent finalement pas)
2024-10-10 19:38:49 +02:00
imperosol c0a6f5eb30 Optimize barmen timeout and counter state fetch
Le timeout se fait en une seule requête et la récupération de l'état des comptoirs en une seule requête aussi. Grâce à ça, on peut en grande partie retirer le cache pour l'affichage de l'état des comptoirs, ce qui a des implications excellentes en termes d'UX (comme le fait que la redirection vers la page de comptoir ou d'activité aura plus une apparence de truc aléatoire)
2024-10-10 19:38:49 +02:00
imperosol 4bc4d266c2 Remove the question mark from the counter state
En raison de la manière dont le timeout marche et de l'activité des comptoirs, la notion de "comptoir inactif" n'est pas intuitive. Un comptoir est ouvert ou fermé. Point.
2024-10-10 19:37:00 +02:00
thomas girod 8f0ee4df6d Merge pull request #828 from ae-utbm/remove-stocks
remove stock application
2024-10-10 19:00:38 +02:00
klmp200 579d077b35 Fix docstring 2024-10-10 15:45:43 +02:00
klmp200 32444fac90 Apply review comments 2024-10-10 15:42:11 +02:00
klmp200 849177562d Add a way to get the base url of an endpoint 2024-10-10 02:57:54 +02:00
klmp200 86bbc4cf6e Migrate uv guide to webpack 2024-10-10 02:04:49 +02:00
klmp200 46e58bb49e Remove fetchPaginated and migrate viewer.js to viewer-index.js in webpack 2024-10-09 21:46:56 +02:00
klmp200 9199f91151 Use typescript api for user pictures and allow imports across js files
* Add imports paths for js files in node
* Add a ts version of fetchPaginated
* Update documentation
2024-10-09 20:59:12 +02:00
klmp200 9247696c1c Don't collect .ts files in statics 2024-10-09 17:30:44 +02:00
klmp200 37f62e15cf Use new typescript api for user graphs 2024-10-09 17:21:05 +02:00
klmp200 a98c924b24 Use auto generated api for markdown input 2024-10-09 16:56:53 +02:00
klmp200 a71ca60270 Add typescript support and automatic openapi client generation from ninja 2024-10-09 16:28:54 +02:00
thomas girod 76cc730d8f Merge pull request #865 from ae-utbm/deps
Update Deps
2024-10-09 15:54:09 +02:00
thomas girod 12bb7e9294 remove stock application 2024-10-09 14:50:41 +02:00
imperosol 1dca0ea003 update ruff 2024-10-09 14:28:13 +02:00
imperosol b340a6568f update dependencies 2024-10-09 14:26:39 +02:00
klmp200 6f4e93bb76 Use configuration object for load builders 2024-10-09 12:14:10 +02:00
klmp200 93eb09887e Fix translations 2024-10-09 12:14:10 +02:00
klmp200 09081b03b6 Move family_graph.js to webpack
* Remove cytoscape dependencies
2024-10-09 12:14:10 +02:00
klmp200 ceee393bd8 Move user_picture.js to webpack
* Fix relative path generation in webpack
* remove vendored/native-file-system-adapter
* remove vendored/zip.js
2024-10-09 12:14:10 +02:00
thomas girod b969513d94 Merge pull request #858 from ae-utbm/jsstandard
Add biome to format js files
2024-10-08 23:45:20 +02:00
thomas girod 2111a2c67e Merge pull request #859 from ae-utbm/account-pages
Optimize user account pages
2024-10-08 19:55:45 +02:00
klmp200 7405241b82 Apply all biomejs fixes 2024-10-08 17:14:22 +02:00
imperosol b0884c6b04 return 404 when accessing not existing account 2024-10-08 15:30:35 +02:00
imperosol 20bea62542 use spaces for indentation 2024-10-08 13:54:44 +02:00
klmp200 24925f7726 Add Biome to documentation 2024-10-08 01:49:29 +02:00
klmp200 d0c18d4538 Format with biome instead of standard 2024-10-08 01:49:15 +02:00
klmp200 37eaa4b912 Add Standard to documentation 2024-10-07 01:36:13 +02:00
klmp200 a3cca056ae Apply standard to easymde 2024-10-07 00:10:24 +02:00
klmp200 ee965008d1 Properly fix no-unused-vars warning 2024-10-07 00:04:48 +02:00
klmp200 c57d2ece9c Apply standard formater and linter on js files 2024-10-07 00:04:48 +02:00
klmp200 e5aa7aa866 Move easymde widget to easymde-index.js 2024-10-07 00:04:05 +02:00
thomas girod cacdf600f4 Merge pull request #860 from ae-utbm/fix-sas-owner
Fix sas owner
2024-10-05 21:44:21 +02:00
NaNoMelo 5ee0ee8efb tests for picture ownership 2024-10-05 21:02:19 +02:00
NaNoMelo 08f20796a7 access rights fix 2024-10-05 20:53:52 +02:00
imperosol 58d3a7ee2c Optimize user account pages 2024-10-04 13:41:39 +02:00
thomas girod f6be360eab Merge pull request #857 from ae-utbm/fix-slideshow
Fix slideshow
2024-10-03 22:51:25 +02:00
thomas girod 543a48b4ab reminder to use wsl when cloning the project 2024-10-03 18:32:27 +02:00
klmp200 0f657b934d Fix makemessage doc 2024-10-03 18:32:27 +02:00
thomas girod c4e42212aa Better install doc 2024-10-03 18:32:27 +02:00
thomas girod a4fe4996aa Merge pull request #834 from ae-utbm/real-name
Restore real name
2024-10-03 10:12:23 +02:00
klmp200 fbcacb24f8 Fix broken screen slideshow 2024-10-03 01:05:56 +02:00
thomas girod 0eaa20e09d fix localdate issues 2024-10-03 00:25:22 +02:00
klmp200 271d57051e Upgrade to fontawesome 6
* Adapt fontawesome usage when needed
* Fix uv guide not importing css
* Remove utf8 usage for fontawesome
2024-10-03 00:06:03 +02:00
thomas girod 3d6c260e53 Merge pull request #854 from ae-utbm/img-resizing
faster image resizing and smaller results
2024-10-02 23:50:33 +02:00
thomas girod d0f17bd41a faster image resizing and smaller results 2024-10-02 23:16:47 +02:00
thomas girod 819cd257a8 Merge pull request #853 from ae-utbm/taiste
Webpack, Forum style and faster counter operations page
2024-10-02 18:03:00 +02:00
klmp200 655d72a2b1 Completely integrate wepack in django
* Migrate alpine
* Migrate jquery and jquery-ui
* Migrate shorten
* Add babel for javascript
* Introduce staticfiles django app
* Only bundle -index.js files in static/webpack
* Unify scss and webpack generated files
* Convert scss calls to static
* Add --clear-generated option to collectstatic
* Fix docs warnings
2024-10-02 16:11:02 +02:00
thomas girod 71c96fdf62 Merge pull request #852 from ae-utbm/master
Merge back
2024-10-01 10:39:42 +02:00
thomas girod 3f2327dee4 Merge pull request #851 from ae-utbm/841-sales-selection-performance
841 sales selection performance
2024-09-30 16:07:19 +02:00
NaNoMelo 06eecfce40 Optimized last operations on counters 2024-09-30 16:02:17 +02:00
thomas girod 67af1485b3 Merge pull request #850 from ae-utbm/sas-history
Fix history navigation bug in picture viewer in sas
2024-09-30 15:06:10 +02:00
klmp200 a00a85a56a Fix recursive link history updates for picture viewer 2024-09-30 15:02:11 +02:00
thomas girod bb953a6139 Merge pull request #831 from ae-utbm/forum-css-rework
Forum css rework
2024-09-30 12:13:52 +02:00
thomas girod 140dc26dc6 Merge pull request #846 from ae-utbm/fix-select2-img
fix profile pictures layout in Select2 results
2024-09-30 12:13:21 +02:00
thomas girod 3548deebf6 Merge pull request #849 from ae-utbm/taiste
New 3DSv2 fields and Bugfixes
2024-09-30 11:33:32 +02:00
thomas girod c67155f02c Merge pull request #845 from ae-utbm/fix-search
Fix 500 whean searching users
2024-09-30 10:51:14 +02:00
thomas girod c10e1e8cbf fix profile pictures layout in Select2 results 2024-09-29 23:31:33 +02:00
thomas girod c5f5ad3f75 fix 500 when searching users 2024-09-29 23:01:55 +02:00
thomas girod 8ec3074488 Merge pull request #842 from ae-utbm/3dsv2-again
Add the new 3DSv2 fields
2024-09-28 17:59:37 +02:00
thomas girod 1b1284d3d0 Better validation for phone number in billing info 2024-09-28 17:25:34 +02:00
thomas girod f71518ed6f Move deprecated paginate macro to a lower scope 2024-09-27 11:21:33 +02:00
thomas girod 1800785b80 generalize usage of the paginate_jinja macro 2024-09-27 11:21:33 +02:00
thomas girod 6449724ed5 fix pagination macro and add ellision 2024-09-27 11:21:33 +02:00
thomas girod 6179c3e7d4 Better style for forum messages 2024-09-27 11:21:33 +02:00
thomas girod 3e5d4c5fbb add fixtures for the forum 2024-09-27 11:21:33 +02:00
thomas girod 3f2b63aaa5 move forum style into its own file 2024-09-27 11:21:33 +02:00
thomas girod d29a5cdb44 Add the new 3DSv2 fields 2024-09-27 11:10:38 +02:00
thomas girod bbcc7ffeaa Merge pull request #839 from ae-utbm/user-ordering
User ordering
2024-09-25 17:51:25 +02:00
thomas girod 93f4dede3e Put users that never logged in at the end 2024-09-25 14:36:22 +02:00
thomas girod 683f8235b1 Merge pull request #840 from ae-utbm/faster-album-rights
Optimize SithFile recursive rights
2024-09-25 14:35:45 +02:00
thomas girod 43917317b4 optimize file recursive rights 2024-09-25 12:31:51 +02:00
thomas girod f182de5929 restore user ordering 2024-09-24 12:52:40 +02:00
thomas girod c6657bffd2 fix: profile picture deletion by board members 2024-09-23 23:35:14 +02:00
thomas girod 3d138d404f move webcam JS to its own file 2024-09-23 23:35:14 +02:00
klmp200 9c93162741 Add missing files 2024-09-23 10:25:27 +02:00
klmp200 6068c6048a Use real name of the website once again 2024-09-23 01:37:25 +02:00
thomas girod d47461ba40 Merge pull request #830 from ae-utbm/repair-pagination
fix: `fetch_paginated`
2024-09-20 00:03:34 +02:00
thomas girod 66e88ac6fb Merge pull request #832 from ae-utbm/image-deletion-fix
Fixes after last deployment
2024-09-19 23:57:12 +02:00
thomas girod d3cada4c95 fix family graph image exension 2024-09-19 20:52:10 +02:00
thomas girod 27443bcd21 fix image deletion. again. 2024-09-19 20:35:08 +02:00
thomas girod b246e171b7 fix: fetch_paginated 2024-09-18 22:03:39 +02:00
thomas girod ec434bec56 Merge pull request #829 from ae-utbm/taiste
Family tree and blazingly fast SAS
2024-09-18 16:06:01 +02:00
thomas girod 7458f622f5 Merge pull request #809 from ae-utbm/ajax-image-sas
Ajax image sas
2024-09-18 15:03:54 +02:00
thomas girod ab72e01707 lower the number of characters to trigger a fulltext search 2024-09-17 17:52:39 +02:00
thomas girod acad74528d fix: sale creation in populate_more 2024-09-17 16:05:42 +02:00
thomas girod 813bbbb94a preload images and identifications 2024-09-17 12:23:13 +02:00
thomas girod a2a858262a apply review comments 2024-09-17 12:23:13 +02:00
klmp200 727e5cb199 Dummy data on default current_picture to avoid javascript errors 2024-09-17 12:23:13 +02:00
klmp200 71602b43bd implement back feature on sas ajax view 2024-09-17 12:23:13 +02:00
thomas girod bc40b92744 completely ajaxify the picture page 2024-09-17 12:23:13 +02:00
thomas girod d545becf24 add spinner during loading 2024-09-17 12:17:21 +02:00
thomas girod 48f605dbe0 Use select2 for user picture identification 2024-09-17 12:17:17 +02:00
thomas girod b0d7bbbb79 select 2 builder 2024-09-17 12:14:20 +02:00
Bartuccio Antoine f624b7c66d Graph de famille en frontend (#820)
* Remove graphviz and use cytoscape.js instead

* Frontend generated graphs
* Make installation easier and faster
* Better user experience
* Family api and improved interface
* Fix url history when using 0, improve button selection and reset reverse with reset button
* Use klay layout
* Add js translations and apply review comments
2024-09-17 12:10:06 +02:00
thomas girod bf96d8a10c Merge pull request #824 from ae-utbm/compress-product-images
auto compress product icons
2024-09-15 18:26:56 +02:00
thomas girod e8b496cfdc test: Product and ProductType icon resizing 2024-09-15 16:38:58 +02:00
thomas girod 79ef151ad3 auto compress product icons 2024-09-15 14:12:41 +02:00
thomas girod 8e48103fd2 Merge pull request #823 from ae-utbm/fix-image-extension
fix image extension
2024-09-14 19:48:30 +02:00
thomas girod ed4c65600c fix image extension 2024-09-14 18:45:12 +02:00
thomas girod ae16a1bd89 Merge pull request #821 from ae-utbm/taiste
Python upgrade and bugfixes
2024-09-12 11:37:27 +02:00
thomas girod e2b42145e1 Merge pull request #819 from ae-utbm/fix-delete-picture
fix undeletable SAS pictures
2024-09-10 23:12:59 +02:00
thomas girod 55ad1f99fd fix undeletable SAS pictures 2024-09-10 21:38:13 +02:00
thomas girod 5b427bee35 Merge pull request #817 from ae-utbm/skia/faster_install_xapian
Faster install xapian
2024-09-09 15:37:12 +02:00
Skia d1c88a5cef core: commands: make 'install_xapian' way faster 2024-09-09 15:17:09 +02:00
thomas girod 99a25d5e9b Merge pull request #811 from ae-utbm/sas-form-length
unify album name length
2024-09-08 14:32:26 +02:00
thomas girod d148d6b3a5 unify album name length 2024-09-08 13:30:23 +02:00
thomas girod 66189d3ab2 Merge pull request #810 from ae-utbm/fix-membership-end
fix memberships ending today
2024-09-04 16:27:00 +02:00
thomas girod f1afa3b436 fix memberships ending today 2024-09-04 16:21:42 +02:00
thomas girod 6380fb193c Merge pull request #808 from ae-utbm/update
Update Python and dependencies
2024-09-02 13:59:23 +02:00
thomas girod 341ffc9a55 update CI 2024-09-02 12:49:11 +02:00
thomas girod 6962b39fc9 use typing.Self for custom queryset methods 2024-09-02 01:03:46 +02:00
thomas girod d04b4c77c6 update dependencies 2024-09-02 01:03:46 +02:00
thomas girod 453b7df0be bump Python to 3.12 2024-09-02 01:03:46 +02:00
thomas girod 878ee99fe4 Merge pull request #806 from ae-utbm/taiste
Bugfixes
2024-09-02 00:03:40 +02:00
thomas girod 6918e3044f Merge pull request #801 from ae-utbm/remove-version
remove sith version from the footer
2024-09-01 23:50:53 +02:00
thomas girod cf46c3800f remove sith version from the footer 2024-09-01 23:47:25 +02:00
thomas girod 7c0c132f40 Merge pull request #804 from ae-utbm/repair-subscription-translation
fix subscription form translation
2024-09-01 23:42:18 +02:00
thomas girod e0bf797876 Merge pull request #805 from ae-utbm/images-format
Better images format
2024-09-01 23:33:57 +02:00
thomas girod dd07c374d7 convert uploaded images to webp 2024-09-01 19:05:54 +02:00
thomas girod b3e59b3829 remove unused view GET user/<user_id>/profile_upload 2024-09-01 18:49:50 +02:00
thomas girod 352b09d9cd fix subscription form translation 2024-09-01 15:20:07 +02:00
thomas girod 93cc6d99f8 Merge pull request #803 from ae-utbm/fix-promo-image
fix promo img on clicks
2024-09-01 12:49:38 +02:00
thomas girod 85a99fc8fa fix promo img on clicks 2024-09-01 12:33:49 +02:00
thomas girod a4d801bed4 Merge pull request #798 from ae-utbm/fix-content-disposition
repair name of protected files
2024-08-30 10:44:49 +02:00
thomas girod fbff38c5c3 repair name of protected files
Depuis l'implémentation de l'envoi des fichiers par le reverse-proxy, le nom des fichiers n'était plus envoyé.
2024-08-30 10:27:03 +02:00
thomas girod 14402f7537 Merge pull request #800 from ae-utbm/forgotten-migrations
add forgotten migration
2024-08-29 12:53:21 +02:00
thomas girod 88d24f8067 Merge pull request #799 from ae-utbm/remove-sentry-ci
remove sentry deployment CI (until Sentry is repaired)
2024-08-29 12:53:06 +02:00
thomas girod cc1d700f7d add forgotten migration 2024-08-29 11:57:09 +02:00
thomas girod e82acdabb0 remove sentry deployment CI (until Sentry is repaired) 2024-08-29 11:48:26 +02:00
thomas girod ea42c98571 Merge pull request #797 from ae-utbm/fix-image-injection
Better form for user submiting images
2024-08-27 22:46:01 +02:00
klmp200 cc5df9b171 Better form for user submiting images, fix potential attack vector on bad file being resized and treated as an image 2024-08-27 17:05:37 +02:00
thomas girod b4749f297b Merge pull request #795 from ae-utbm/taiste
Last update before Inté
2024-08-27 14:16:40 +02:00
thomas girod e564c6604c Merge pull request #788 from ae-utbm/manifest-static-files
Manifest static files
2024-08-27 11:08:49 +02:00
thomas girod 712615a312 Merge pull request #794 from ae-utbm/user-pictures-ajax
Better browser compatibility for user picture page
2024-08-27 11:08:27 +02:00
klmp200 d95d4901d2 Use reduce instead of groupBy for user picture sorting to support more browsers 2024-08-27 10:35:38 +02:00
thomas girod 9373654306 use rjsmin for js minification
Ca minifie moins bien le JS que Uglify, mais c'est intégrable directement dans les dépendances du projet
2024-08-26 23:16:13 +02:00
thomas girod 4a9d9f03a8 fix test workflow 2024-08-26 22:59:40 +02:00
thomas girod b7261ec629 custom manifest static files storage that also minify scss and js files 2024-08-26 22:34:32 +02:00
thomas girod 2e1f16fa04 slim jquery-ui 2024-08-26 22:34:32 +02:00
thomas girod d295cc5223 move vendored files into their own folder 2024-08-26 22:34:32 +02:00
thomas girod ff088009d9 move static files in their respective application 2024-08-26 22:34:31 +02:00
thomas girod 52c19e9962 simplify scss management 2024-08-26 22:34:31 +02:00
thomas girod 68d0a16d1c Merge pull request #782 from ae-utbm/ajax-navigation-history
Ajax navigation history in uv guide
2024-08-26 22:29:19 +02:00
klmp200 a422e8d39a Improve rendering of file input 2024-08-26 22:21:16 +02:00
klmp200 ef80c1be61 Make camera error gray to be less aggressive on the eyes 2024-08-26 22:21:16 +02:00
klmp200 85d9816aaa Improve delete button behavior 2024-08-26 22:21:16 +02:00
klmp200 93b66d980d Directly display selected img of form on screen and convert to webp 2024-08-26 22:21:16 +02:00
klmp200 07d617da91 Get video resolution from the camera settings for a better image quality 2024-08-26 22:21:16 +02:00
klmp200 34aac40e65 Add translations 2024-08-26 22:21:16 +02:00
klmp200 f54bf2b8af Adjust css 2024-08-26 22:21:16 +02:00
klmp200 e7d04d9817 Unify user profile display with a nice macro and handle camera errors 2024-08-26 22:21:16 +02:00
klmp200 ef1537ac2c Basic webcam setup with modern web api 2024-08-26 22:21:16 +02:00
thomas girod d1f86fe3d9 Merge pull request #791 from ae-utbm/remove-bbcode
Remove to_markdown.jinja forgotten during bbcode convertion removal
2024-08-24 20:40:04 +02:00
klmp200 d13b79552b Remove to_markdown.jinja forgotten during bbcode convertion removal 2024-08-21 15:35:43 +02:00
thomas girod 4036bfd703 Merge pull request #775 from ae-utbm/user-pictures-ajax
Render user picture page with ajax to improve performances
2024-08-18 12:40:07 +02:00
klmp200 759e360a1d Don't use unnecessary promises 2024-08-17 10:15:13 +02:00
klmp200 8865529b39 Use native alpine debounce 2024-08-17 02:58:53 +02:00
klmp200 cdb73ee49c Don't rely on waiting for pedagogy history 2024-08-17 02:57:00 +02:00
klmp200 9188c28ee7 Remove intersect 2024-08-16 22:52:20 +02:00
klmp200 2a6c1f050d Create a paginate_alpine macro 2024-08-11 15:11:51 +02:00
klmp200 2ec1f8cdc0 Fix back action in uv guide 2024-08-11 14:58:05 +02:00
thomas girod 121b388d85 Merge pull request #781 from ae-utbm/ajax-navigation-history
Fix back function in album pagination
2024-08-11 00:34:21 +02:00
klmp200 589119c9ee Improve update_query_string with enum action 2024-08-10 23:32:50 +02:00
klmp200 b35e1a476e Fix back function in album pagination 2024-08-10 18:38:04 +02:00
thomas girod 8174bce720 Merge pull request #780 from ae-utbm/remove-bbcode
remove doku/bbcode to markdown
2024-08-10 16:04:10 +02:00
thomas girod d8a7d62b23 Merge pull request #779 from ae-utbm/fix-queryset
fix crash on album fetch & test
2024-08-10 16:03:56 +02:00
klmp200 a75730d91f Fix unbalanced html 2024-08-10 15:16:37 +02:00
klmp200 a2b5f929dd Apply review comments
* Add alpine intersect
* Move alpine and it's plugins to a folder
* Fix spinning wheel position
* Improve album title position
2024-08-10 14:49:02 +02:00
thomas girod 7a0fa9f1a0 remove doku/bbcode to markdown 2024-08-10 14:23:01 +02:00
thomas girod 28ff7f24c5 Merge pull request #774 from ae-utbm/fix-operation-logs
Fix operation logs
2024-08-10 10:33:39 +02:00
thomas girod e6db25357b Merge pull request #778 from ae-utbm/user-search-privacy
User search privacy
2024-08-10 09:38:29 +02:00
thomas girod 72ea6b6fdd fix crash on album fetch & test 2024-08-10 00:46:40 +02:00
klmp200 bf5f72fd9d Fix user search displaying results that shouldn't be viewed 2024-08-10 00:43:03 +02:00
thomas girod af724a1e0e Merge pull request #777 from ae-utbm/taiste
SAS Hotfixes
2024-08-09 18:20:22 +02:00
klmp200 0eeaf1ce21 Render user picture page with ajax to improve performances 2024-08-09 18:09:58 +02:00
thomas girod 57a8215c6b Merge pull request #776 from ae-utbm/fix-album-navigation
SAS fixes
2024-08-09 18:09:06 +02:00
thomas girod 9163e4dee6 fix SAS album display 2024-08-09 18:08:36 +02:00
thomas girod c56d6e3f6b fix wrong page size when fetching pictures. 2024-08-09 17:35:33 +02:00
klmp200 20e8854467 Fix operation logs 2024-08-09 17:35:26 +02:00
thomas girod 3ef38fabdb fix picture navigation 2024-08-09 17:34:35 +02:00
thomas girod f5cee10761 Merge pull request #773 from ae-utbm/taiste
SAS, Eboutic, Antispam, psycopg
2024-08-09 13:35:26 +02:00
thomas girod d1cbb765c0 Merge pull request #769 from ae-utbm/query-sas
Sas picture selection
2024-08-09 12:11:16 +02:00
thomas girod 7ea9a5ca2d improved feedback when loading ajax content 2024-08-09 11:58:26 +02:00
thomas girod 20c015c312 improved UX 2024-08-09 11:58:26 +02:00
thomas girod ecb48ce663 fix error when uploading image with an alpha channel 2024-08-09 11:58:26 +02:00
thomas girod 00dc03a235 fix rights on albums and next/previous pictures 2024-08-08 13:35:48 +02:00
thomas girod d3b203a4a1 change cache on picture download 2024-08-08 11:50:45 +02:00
thomas girod 4506440a62 add PictureQuerySet.viewable_by(user) method 2024-08-08 11:50:45 +02:00
thomas girod da6bd84cdf restify album view 2024-08-08 11:50:45 +02:00
thomas girod 0b9ccf6a57 paginate GET /api/sas/picture 2024-08-08 11:50:45 +02:00
thomas girod a056bd177f Merge pull request #772 from ae-utbm/master
Merge-back
2024-08-08 11:47:26 +02:00
thomas girod d2ea8f2898 Merge pull request #742 from ae-utbm/refactor-eboutic
Eboutic big refactor
2024-08-07 20:36:50 +02:00
thomas girod 5cce4269bb remove fuzzy from translations 2024-08-07 20:33:26 +02:00
thomas girod 0a2ed6dd94 fix crash when basket contains not existing product 2024-08-07 20:15:46 +02:00
thomas girod 417f328206 fix billing infos not sending 2024-08-07 14:29:51 +02:00
thomas girod cca9732925 eboutic big refactor 2024-08-06 16:49:20 +02:00
thomas girod f02864b752 Merge pull request #768 from ae-utbm/ruff-print
T2 ruff rule
2024-08-06 16:45:20 +02:00
thomas girod 62bb15317c T2 ruff rule 2024-08-06 11:42:10 +02:00
thomas girod b35751126f Merge pull request #762 from ae-utbm/dependabot/pip/taiste/sentry-sdk-2.12.0
[UPDATE] Bump sentry-sdk from 2.11.0 to 2.12.0
2024-08-06 11:14:47 +02:00
thomas girod 28d6d8ba96 Merge pull request #766 from ae-utbm/alpine
Alpine
2024-08-06 10:43:08 +02:00
dependabot[bot] 6bdb16e293 [UPDATE] Bump sentry-sdk from 2.11.0 to 2.12.0
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 2.11.0 to 2.12.0.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/2.11.0...2.12.0)

---
updated-dependencies:
- dependency-name: sentry-sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-05 21:41:48 +00:00
thomas girod eb45cf6175 Merge pull request #761 from ae-utbm/dependabot/pip/taiste/django-honeypot-1.2.1
[UPDATE] Bump django-honeypot from 1.2.0 to 1.2.1
2024-08-05 23:39:42 +02:00
dependabot[bot] d6d8f56570 [UPDATE] Bump django-honeypot from 1.2.0 to 1.2.1
Bumps [django-honeypot](https://github.com/jamesturk/django-honeypot) from 1.2.0 to 1.2.1.
- [Changelog](https://github.com/jamesturk/django-honeypot/blob/main/CHANGELOG)
- [Commits](https://github.com/jamesturk/django-honeypot/commits)

---
updated-dependencies:
- dependency-name: django-honeypot
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-05 21:31:09 +00:00
thomas girod 5322dc1de8 Merge pull request #764 from ae-utbm/dependabot/pip/taiste/faker-26.1.0
[UPDATE] Bump faker from 26.0.0 to 26.1.0
2024-08-05 23:28:58 +02:00
thomas girod 51bb1a5c9d Merge pull request #765 from ae-utbm/fix-referer
fix-referer
2024-08-05 23:28:25 +02:00
thomas girod 996dadf6f5 update alpineJS to 3.14 2024-08-05 17:16:24 +02:00
thomas girod 29bb0f6712 promote AlpineJS to global dependency 2024-08-05 17:08:30 +02:00
thomas girod f6fbad8403 fix missing HTTP_REFERER 2024-08-05 15:53:41 +02:00
thomas girod e37ce4172e Merge pull request #759 from ae-utbm/accel-redirect
Accel redirect
2024-08-05 15:15:39 +02:00
thomas girod 1dfd871169 add doc for nginx configuration 2024-08-05 13:32:47 +02:00
thomas girod a637742bb0 apply review comment 2024-08-05 10:52:15 +02:00
thomas girod a5e4db99fb Use X-Accel-Redirect to send files in prod 2024-08-05 10:52:15 +02:00
thomas girod a9f66e2cd9 extract sent_from_logged_counter(request) 2024-08-05 10:52:15 +02:00
dependabot[bot] 7bc7af8245 [UPDATE] Bump faker from 26.0.0 to 26.1.0
Bumps [faker](https://github.com/joke2k/faker) from 26.0.0 to 26.1.0.
- [Release notes](https://github.com/joke2k/faker/releases)
- [Changelog](https://github.com/joke2k/faker/blob/master/CHANGELOG.md)
- [Commits](https://github.com/joke2k/faker/compare/v26.0.0...v26.1.0)

---
updated-dependencies:
- dependency-name: faker
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-05 08:51:26 +00:00
thomas girod e5dfe1e638 Merge pull request #763 from ae-utbm/dependabot/pip/taiste/phonenumbers-8.13.42
[UPDATE] Bump phonenumbers from 8.13.40 to 8.13.42
2024-08-05 10:49:13 +02:00
dependabot[bot] 284f064cbf [UPDATE] Bump phonenumbers from 8.13.40 to 8.13.42
Bumps [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) from 8.13.40 to 8.13.42.
- [Commits](https://github.com/daviddrysdale/python-phonenumbers/compare/v8.13.40...v8.13.42)

---
updated-dependencies:
- dependency-name: phonenumbers
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-05 08:34:32 +00:00
thomas girod e5c6f00283 Merge pull request #758 from ae-utbm/psycopg
update psycopg v2 to psycopg v3
2024-08-04 23:19:56 +02:00
thomas girod 12d316ebe4 doc: advanced install 2024-08-04 23:12:24 +02:00
thomas girod cbd8932075 update psycopg v2 to psycopg v3 2024-08-04 23:12:24 +02:00
thomas girod feb6dcbc94 Merge pull request #756 from ae-utbm/antispam
Filter blocked emails
2024-08-04 22:36:03 +02:00
klmp200 181e74b1d1 Add antispam app
* update_spam_database command to update suspicious domains from an
   external provider
* Add a AntiSpamEmailField that deny emails from suspicious domains
* Update documentation
2024-08-04 22:34:40 +02:00
thomas girod eb04e26b22 Merge pull request #757 from ae-utbm/taiste
Taiste
2024-08-04 16:51:36 +02:00
dependabot[bot] 7b97f0bf47 [UPDATE] Bump pre-commit from 3.7.1 to 3.8.0
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 3.7.1 to 3.8.0.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v3.7.1...v3.8.0)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-01 17:51:19 +02:00
thomas girod 19fdaf4c89 fix club counter click 2024-08-01 17:50:43 +02:00
thomas girod 7ca9c8dc42 Merge pull request #749 from ae-utbm/redis
Redis
2024-08-01 13:01:42 +02:00
thomas girod 946f35c601 Merge pull request #752 from ae-utbm/autocomplete-admin
use autocomplete_fields in admin
2024-08-01 13:01:27 +02:00
thomas girod c7b47bdd02 use redis for the cache 2024-08-01 12:26:23 +02:00
thomas girod eef15e05f4 use autocomplete_fields in admin 2024-08-01 11:27:54 +02:00
klmp200 f265346a10 Sort pictures by album in zip file 2024-07-31 12:01:08 +02:00
thomas girod a321bd79ed Merge pull request #745 from ae-utbm/picture-zip
Add image download progress bar and fix output name of pictures
2024-07-31 10:19:50 +02:00
thomas girod 819e2b5f9f better download button style 2024-07-30 19:58:58 +02:00
thomas girod 91344741a5 add some alpine to picture download 2024-07-30 19:23:48 +02:00
thomas girod 4d2b82235c downgrade ajax-select 2024-07-30 14:15:46 +02:00
klmp200 ffa3936878 Improve zip download
* Remove jszip for zip.js which is better maintained
* Pictures keep their creation date
2024-07-30 11:11:31 +02:00
thomas girod 26c70aa071 Merge pull request #746 from ae-utbm/pedagogy
Use full text search in pedagogy uv search api
2024-07-29 18:12:43 +02:00
klmp200 1bd887567e Use full text search in pedagogy uv search api 2024-07-29 13:01:20 +02:00
klmp200 3304f32ef0 Add image download progress bar and fix output name of pictures 2024-07-28 23:53:18 +02:00
thomas girod 0790ae2298 Merge pull request #743 from ae-utbm/taiste
Taiste
2024-07-28 21:37:38 +02:00
thomas girod 39151b61e7 Merge pull request #741 from ae-utbm/better-pagination
improve pagination
2024-07-28 16:46:00 +02:00
thomas girod 3f49d70745 remove pedagogy style from style.scss 2024-07-28 16:39:15 +02:00
thomas girod e5434961de Merge pull request #736 from ae-utbm/better-scss
Better scss
2024-07-28 16:35:12 +02:00
thomas girod aab2d3a03f Merge pull request #740 from ae-utbm/deps
Update dependencies
2024-07-28 16:34:53 +02:00
thomas girod b022ebb80e improve pagination 2024-07-27 10:46:57 +02:00
thomas girod 2737cae4ab update django-phonenumber-field 2024-07-26 21:45:18 +02:00
thomas girod c4e6272535 various deps updates 2024-07-26 21:45:18 +02:00
thomas girod aa0c98bf34 increase delay between dependabot alerts 2024-07-26 18:24:04 +02:00
thomas girod 63b6b262c6 repair BASE_DIR 2024-07-26 18:21:57 +02:00
thomas girod 424639ea80 better scss 2024-07-26 15:55:15 +02:00
thomas girod 594776f3a6 better scss compilation 2024-07-26 15:55:15 +02:00
thomas girod 918e93d211 Merge pull request #735 from ae-utbm/more-fixtures
Add a command to create more fixtures
2024-07-26 15:28:47 +02:00
thomas girod b82f98c87f reorganize pyproject.toml 2024-07-26 15:16:54 +02:00
thomas girod 6c4251a91f populate more 2024-07-26 15:15:50 +02:00
thomas girod 2261782920 Merge pull request #738 from ae-utbm/fix-remove-from-picture
Fix button to remove a user from picture
2024-07-26 14:48:28 +02:00
thomas girod 043dcfb283 add tests 2024-07-26 14:25:26 +02:00
thomas girod 3c76c5e0f1 fix grouping 2024-07-26 00:39:29 +02:00
thomas girod d348e6314a fix the pictures order (not just the album) 2024-07-26 00:39:29 +02:00
thomas girod b3fa6f352b fix album order for user pictures 2024-07-26 00:39:29 +02:00
thomas girod 191b05c305 Fix button to remove a user from picture 2024-07-25 23:31:54 +02:00
thomas girod 215fdce411 Fix button to remove a user from picture 2024-07-25 23:29:12 +02:00
thomas girod b25805e0a1 introduce djhtml as jinja+scss formater 2024-07-25 16:46:45 +02:00
thomas girod 13d0d2a300 Merge pull request #733 from ae-utbm/nfc
Add nfc widget
2024-07-25 15:56:51 +02:00
klmp200 15f51fb03f Create an NFC button for browser supporting NFC API 2024-07-25 07:18:39 +02:00
thomas girod a24b1f5c2a Merge pull request #730 from ae-utbm/picture-zip
Téléchargement des images dans un zip
2024-07-25 01:21:02 +02:00
thomas girod 04e7f65e8e Merge pull request #725 from ae-utbm/drop-jquery-calendar
Remove jquery datetimepicker
2024-07-25 01:20:41 +02:00
klmp200 41b9318028 Download user pictures as a zip 2024-07-24 23:51:15 +02:00
thomas girod 378e8b53f2 Merge pull request #731 from ae-utbm/taiste
MkDocs, Ninja API, logo promo 24 et refactors
2024-07-24 17:56:57 +02:00
thomas girod c832e8b1a7 Merge pull request #729 from ae-utbm/test-name-refactoring
Harmonize test names
2024-07-24 01:17:39 +02:00
klmp200 fee7ade1a5 Harmonize test names 2024-07-24 00:50:48 +02:00
thomas girod d51dbf8a53 Merge pull request #724 from ae-utbm/ninja
Use django-ninja for the API
2024-07-24 00:48:08 +02:00
thomas girod c03a1b57c5 update doc 2024-07-24 00:44:09 +02:00
klmp200 0c566cfbde Add picture size in sas api 2024-07-24 00:44:09 +02:00
thomas girod 9295325d21 remove jquery datetime picker 2024-07-23 23:26:48 +02:00
thomas girod cb1aa8bef0 add tests 2024-07-23 20:36:57 +02:00
klmp200 b9d19be183 Fix markdown api and add test for user picture page 2024-07-23 20:36:46 +02:00
klmp200 293369f165 Pagination on UV guide 2024-07-23 19:58:11 +02:00
thomas girod 3046438cb1 replace drf by django-ninja 2024-07-23 19:57:33 +02:00
thomas girod 811e5a5ad1 Merge pull request #726 from ae-utbm/honeypot
better honeypot logging
2024-07-22 12:45:45 +02:00
klmp200 2c8f18d7fc Add honeypot on forum 2024-07-22 11:40:11 +02:00
klmp200 c7f8cdd098 Support field_name argument in honeypot jinja extension 2024-07-22 11:34:22 +02:00
klmp200 58ff5b934a add get_client_ip util function 2024-07-22 09:49:08 +02:00
thomas girod 03d15ddded better honeypot logging 2024-07-21 22:31:05 +02:00
thomas girod 002d8f80a6 Merge pull request #720 from ae-utbm/counter-refactor
Refactor on counters
2024-07-21 15:39:07 +02:00
thomas girod 82d3791859 refactor counter 2024-07-21 10:51:08 +02:00
thomas girod d9531838f2 Merge pull request #716 from ae-utbm/docs
Use MkDocs for documentation
2024-07-21 01:05:32 +02:00
klmp200 c7b5c77395 Improve perms doc 2024-07-21 01:01:49 +02:00
klmp200 223aa37161 move old pdf to the repo github wiki 2024-07-21 01:00:37 +02:00
thomas girod c1acadbf3d add content to howto/querysets.md 2024-07-21 00:57:15 +02:00
klmp200 54af894b82 Improve documentation 2024-07-21 00:57:12 +02:00
klmp200 e1ac75f394 Rework readme and remove readthedocs config 2024-07-21 00:57:06 +02:00
thomas girod 8c69a94488 use google convention for docstrings 2024-07-21 00:57:04 +02:00
thomas girod 07b625d4aa Rewrite documentation with MkDocs 2024-07-21 00:56:58 +02:00
thomas girod a1296dc7af Merge pull request #721 from ae-utbm/remove-pytz
Remove pytz from deps
2024-07-20 11:36:30 +02:00
thomas girod e5a2236d72 remove pytz 2024-07-18 17:33:14 +02:00
thomas girod 588a82426e Merge pull request #719 from ae-utbm/page-fix
Fix markdown style for code
2024-07-18 15:08:21 +02:00
thomas girod 8245ddf2a6 fix font for code blocks in markdown 2024-07-18 14:51:50 +02:00
thomas girod 775a0c6478 Merge pull request #717 from ae-utbm/logo-24
Add promo 24 logo
2024-07-16 00:35:43 +02:00
klmp200 bad67a8b65 Add promo 24 logo 2024-07-16 00:25:50 +02:00
klmp200 7e98e184a0 Improve tests 2024-07-11 13:23:24 +02:00
klmp200 6240eff160 Apply review suggestions 2024-07-11 13:23:24 +02:00
klmp200 a8918ebe86 Fix forum topic creation 2024-07-11 13:23:24 +02:00
thomas girod b852176958 Merge pull request #714 from ae-utbm/taiste
More ruff rules, mistune update and more bot-blocking features
2024-07-11 11:47:45 +02:00
thomas girod c9e398b7ec Merge pull request #715 from ae-utbm/master 2024-07-11 11:33:28 +02:00
thomas girod e84d5626df Merge pull request #711 from ae-utbm/bot-filtering
Implement mechanisms to block bots on authentication views
2024-07-11 11:00:10 +02:00
klmp200 0fb61938ce Reorganize honeypot settings 2024-07-11 10:49:08 +02:00
klmp200 d6b27f2f21 Make honeypot errors less suspicious 2024-07-10 19:30:01 +02:00
thomas girod e15bcfae07 Send an email when creating an account via POST /register 2024-07-10 17:21:07 +02:00
klmp200 72cf5a3d5e Introduce honeypot for login/registering/password changing 2024-07-10 14:51:39 +02:00
thomas girod 7de2e00c94 Merge pull request #701 from ae-utbm/dependabot/pip/taiste/ruff-0.5.1
[UPDATE] Bump ruff from 0.4.10 to 0.5.1
2024-07-10 14:15:38 +02:00
thomas girod efe5d75798 update ruff config
Co-authored-by: Bartuccio Antoine <klmp200@users.noreply.github.com>
2024-07-10 10:52:30 +02:00
dependabot[bot] 9f1eedbe1b [UPDATE] Bump ruff from 0.4.10 to 0.5.1
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.4.10 to 0.5.1.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.4.10...0.5.1)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-08 15:30:54 +00:00
thomas girod 7fe495179f Merge pull request #707 from ae-utbm/update-mistune
Update mistune (0.8 => 3.0)
2024-07-08 17:29:13 +02:00
thomas girod 7f6c4f6236 change sup and sub in mde editor 2024-07-08 17:04:18 +02:00
thomas girod 30948f1701 better style for rendered markdown 2024-07-08 15:56:38 +02:00
thomas girod 02ec3607b2 fix install_xapian.sh 2024-07-08 15:56:37 +02:00
thomas girod 3c2dcfbfa2 update mistune 2024-07-08 15:56:37 +02:00
thomas girod 8bcf59aaf0 Merge pull request #706 from ae-utbm/ruff-rules
Add more ruff rules
2024-07-08 15:42:22 +02:00
thomas girod c6d2ac9100 ruff rule B 2024-07-08 15:37:10 +02:00
thomas girod 2ac578c3ad ruff rule DJ
Co-authored-by: Bartuccio Antoine <klmp200@users.noreply.github.com>
2024-07-08 15:37:10 +02:00
thomas girod f941435232 ruff rule C4 2024-07-08 15:37:10 +02:00
thomas girod 171a1cb876 ruff rule FBT 2024-07-08 15:37:09 +02:00
thomas girod cfc19434d0 ruff rules UP008 and UP009 2024-07-08 15:37:09 +02:00
thomas girod 688871a680 ruff rule A 2024-07-08 15:37:08 +02:00
thomas girod 44c8558aa3 Merge pull request #704 from ae-utbm/taiste
Mises à jour (django 4.2, Pillow 10, cryptography 42), changement de la CI et enlèvement de l'offre Eurockéennes
2024-07-08 11:16:39 +02:00
thomas girod 6b923d2310 Merge pull request #700 from ae-utbm/remove-eurocks
Remove eurocks
2024-07-08 10:11:09 +02:00
thomas girod 09e0b31bc9 remove Eurockéennes link 2024-07-08 10:03:27 +02:00
thomas girod eb2454eded Merge branch 'master' into taiste
# Conflicts:
#	eboutic/templates/eboutic/eboutic_main.jinja
#	locale/fr/LC_MESSAGES/django.po
2024-07-08 10:01:37 +02:00
thomas girod 3014d8cead Merge pull request #698 from ae-utbm/update-cryptography
update cryptography
2024-07-05 15:21:42 +02:00
thomas girod 70fdc2edf2 update cryptography 2024-07-05 14:02:01 +02:00
thomas girod e47f29aa38 Merge pull request #697 from ae-utbm/update-pillow
update pillow (9.5 => 10.4)
2024-07-05 13:53:47 +02:00
thomas girod d811896e21 update pillow 2024-07-05 13:14:58 +02:00
thomas girod 5c999b6ef1 Merge pull request #696 from ae-utbm/fix-xapian-deploy
Fix missing xapian install step in deploy workflows
2024-07-05 10:28:41 +02:00
thomas girod 79a6d9e771 Merge pull request #693 from ae-utbm/faster-tests
faster tests
2024-07-05 10:27:30 +02:00
klmp200 e1cf1c786d Fix missing xapian install step in deploy workflows 2024-07-04 19:44:22 +02:00
thomas girod 71fe9559b1 parallelize the CI 2024-07-04 14:44:28 +02:00
thomas girod f1fa8d34bf fix family relations in generate_galaxy_test_data.py 2024-07-04 14:39:12 +02:00
thomas girod aa07fa9207 faster tests 2024-07-04 14:03:19 +02:00
thomas girod 47fec973bc Merge pull request #691 from ae-utbm/update-django
Update django (3.2 => 4.2)
2024-07-04 12:40:23 +02:00
thomas girod ea8247aa16 fix broken translations 2024-07-04 11:31:36 +02:00
thomas girod bf18284450 apply forgotten migrations 2024-07-04 11:31:36 +02:00
thomas girod cd58d5a357 resolve warnings 2024-07-04 11:31:35 +02:00
thomas girod 75bb3f992c fix: wrong logic in Club.delete() 2024-07-04 11:31:35 +02:00
thomas girod ae1fcdb8c0 fix: CashRegisterSummaryItem.check overriding a django method 2024-07-04 11:20:24 +02:00
thomas girod 507080f75e update django to 4.2 2024-07-03 15:11:06 +02:00
thomas girod 5bcf043d97 Merge pull request #683 from ae-utbm/pre-commits
Use pre-commits hooks instead of ruff directly
2024-07-03 10:04:53 +02:00
klmp200 99605b98d4 Two steps pre-commit and better workflow output 2024-07-02 20:16:02 +02:00
dependabot[bot] 6dfd43a8da [UPDATE] Bump reportlab from 4.2.0 to 4.2.2
Bumps [reportlab](https://www.reportlab.com/) from 4.2.0 to 4.2.2.

---
updated-dependencies:
- dependency-name: reportlab
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-02 11:26:16 +02:00
klmp200 c7135875b8 Use pre-commits hooks instead of ruff directly 2024-07-01 17:36:19 +02:00
dependabot[bot] e29e1101cd [UPDATE] Bump ipython from 7.34.0 to 8.26.0
Bumps [ipython](https://github.com/ipython/ipython) from 7.34.0 to 8.26.0.
- [Release notes](https://github.com/ipython/ipython/releases)
- [Commits](https://github.com/ipython/ipython/compare/7.34.0...8.26.0)

---
updated-dependencies:
- dependency-name: ipython
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-01 14:00:43 +02:00
thomas girod d97602e60b Use pytest for tests (#681)
* use pytest for tests

Eh ouais, il y a que la config qui change. Pytest est implémentable par étapes. Et ça c'est beau.

* rework tests with pytest

* remove unittest custom TestRunner

* Edit doc and CI
2024-06-26 19:10:24 +02:00
thomas girod a5cbac1f97 Merge pull request #680 from ae-utbm/ruff
Introduct Ruff as formater and linter
2024-06-26 14:11:26 +02:00
thomas girod 3143d3d91a reorganize imports with ruff 2024-06-26 12:35:38 +02:00
thomas girod 9bdf3fc4ac use ruff for formating
Co-authored-by: Bartuccio Antoine <klmp200@users.noreply.github.com>
2024-06-26 12:35:14 +02:00
thomas girod e06bc7dba3 reorganize pyproject.toml 2024-06-26 12:33:35 +02:00
Bartuccio Antoine a8b9f38000 Merge pull request #679 from ae-utbm/xapian-from-sources
Xapian from sources and fix CVE
2024-06-26 11:48:31 +02:00
klmp200 ca27b89a8b Apply shellcheck on install_xapian.sh 2024-06-26 11:31:39 +02:00
klmp200 e1bf7caa9a Fix CVE-2023-31047 2024-06-24 13:27:22 +02:00
klmp200 e681c17a0f Adapt CI to new xapian install process 2024-06-24 13:26:58 +02:00
klmp200 5416d88c97 Upgrade dependencies and install xapian from sources 2024-06-24 13:26:58 +02:00
Mathis 0dca152436 Hotfix (typo) 2024-05-28 21:25:30 +02:00
Mathis 9ce7abd31d Partnership Eurockéennes 2024 2024-05-28 19:10:17 +02:00
Julien Constant f41ff281fb Remove eurocks tickets from eboutic (event is finished) 2023-10-10 15:50:35 +02:00
Julien Constant ee437649f0 Revert "Merge branch 'master' into taiste"
This reverts commit 4303d51c0a, reversing
changes made to d16bf12611.
2023-10-10 15:47:02 +02:00
Julien Constant 321cb72ca8 October 2023 update (#672)
* integration of 3D secure v2 for eboutic bank payment

* edit yml to avoid git conflict when deploying on test

* escape html characters on xml (#505)

* Change country id to ISO 3166 1 numeric for 3DSV2 (#510)

* remove useless tests

* Fix le panier de l'Eboutic pour Safari (#518)

Co-authored-by: Théo DURR <git@theodurr.fr>
Co-authored-by: thomas girod <56346771+imperosol@users.noreply.github.com>

* update some dependencies (#523)

* [Eboutic] Fix double quote issue & improved user experience on small screen (#522)

* Fix #511 Regex issue with escaped double quotes

* Fix basket being when reloading the page (when cookie != "")

+ Added JSDoc
+ Cleaned some code

* Fix #509 Improved user experience on small screens

* Fix css class not being added back when reloading page

* CSS Fixes (see description)

+ Fixed overlaping item title with the cart emoji on small screen
+ Fixed minimal size of the basket on small screen (full width)

* Added darkened background circle to items with no image

* Fix issue were the basket could be None


* Edited CSS to have bette img ratio & the 🛒 icon

Adapt, Improve, Overcome

* Moved basket down on small screen size

* enhance admin pages

* update documentation

* Update doc/about/tech.rst

Co-authored-by: Julien Constant <49886317+Juknum@users.noreply.github.com>

* remove csrf_token

* Fix 3DSv2 implementation (#542)

* Fixed wrong HMAC signature generation

* Fix xml du panier

Co-authored-by: Julien Constant <julienconstant190@gmail.com>

* [FIX] 3DSv2 - Echappement du XML et modif tables (#543)

* Fixed wrong HMAC signature generation
* Updated migration files

Co-authored-by: Julien Constant <julienconstant190@gmail.com>

* Update doc/about/tech.rst

* Update doc/start/install.rst

* Updated lock file according to pyproject

* unify account_id creation

* upgrade re_path to path (#533)

* redirect directly on counter if user is barman

* Passage de vue à Alpine pour les comptoirs (#561)

Vue, c'est cool, mais avec Django c'est un peu chiant à utiliser. Alpine a l'avantage d'être plus léger et d'avoir une syntaxe qui ne ressemble pas à celle de Jinja (ce qui évite d'avoir à mettre des {% raw %} partout).

* resolved importError (#565)

* Add galaxy (#562)

* style.scss: lint

* style.scss: add 'th' padding

* core: populate: add much more data for development

* Add galaxy

* repair user merging tool (#498)

* Disabled galaxy feature (only visually)

* Disabled Galaxy button & Removed 404 exception display

* Update 404.jinja

* Fixed broken test

* Added eurocks links to eboutic

* fix typo

* fix wording

Co-authored-by: Théo DURR <git@theodurr.fr>

* Edited unit tests

This test caused a breach in security due to the alert block displaying sensitive data.

* Repair NaN bug for autocomplete on counter click

* remove-useless-queries-counter-stats (#519)

* Amélioration des pages utilisateurs pour les petits écrans (#578, #520)

- Refonte de l'organisation des pages utilisateurs (principalement du front)
  - Page des parrains/fillots
  - Page d'édition du profil
  - Page du profil
  - Page des outils
  - Page des préférences
  - Page des stats utilisateurs

- Refonte du CSS / organisation de la navbar principale (en haut de l'écran)
- Refonte du CSS de la navbar bleu clair (le menu)
- Refonte du CSS du SAS :
  - Page de photo
  - Page d'albums

* Added GA/Clubs Google Calendar to main page (#585)

* Added GA/Clubs google calendar to main page

* Made tables full width

* Create dependabot.yml (#587)

* Bump django from 3.2.16 to 3.2.18 (#574)

* [CSS] Follow up of #578 (#589)

* [FIX] Broken link in readme and license fix (& update) (#591)

* Fixes pour la mise à jour de mars (#598)

* Fix problème de cache dans le SAS & améliore le CSS du SAS

Co-authored-by: Bartuccio Antoine <klmp200@users.noreply.github.com>

* Fixes & améliorations du nouveau CSS (#616)

* [UPDATE] Bump sentry-sdk from 1.12.1 to 1.19.1 (#620)

* [FIX] Fixes supplémentaires pour la màj de mars (#622)

- Les photos de l'onglet de la page utilisateur utilise désormais leur version thumbnail au lieu de leur version HD
- Une des classes du CSS du SAS a été renommée car elle empiétait sur une class de la navbar
- Le profil utilisateur a été revu pour ajouter plus d'espacement entre le tableau des cotisations et le numéro de cotisants
- Les images de forum & blouse sont de nouveau cliquable pour les afficher en grands
- Sur mobile, lorsqu'on cliquait sur le premier élément de la navbar, ce dernier avait un overlay avec des angles arrondis
- Sur mobile, les utilisateurs avec des images de profils non carrées dépassait dans l'onglet Famille

* [UPDATE] Bump dict2xml from 1.7.2 to 1.7.3 (#592)

Bumps [dict2xml](https://github.com/delfick/python-dict2xml) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/delfick/python-dict2xml/releases)
- [Commits](https://github.com/delfick/python-dict2xml/compare/release-1.7.2...release-1.7.3)

---
updated-dependencies:
- dependency-name: dict2xml
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

* [UPDATE] Bump django-debug-toolbar from 3.8.1 to 4.0.0 (#593)

Bumps [django-debug-toolbar](https://github.com/jazzband/django-debug-toolbar) from 3.8.1 to 4.0.0.
- [Release notes](https://github.com/jazzband/django-debug-toolbar/releases)
- [Changelog](https://github.com/jazzband/django-debug-toolbar/blob/main/docs/changes.rst)
- [Commits](https://github.com/jazzband/django-debug-toolbar/compare/3.8.1...4.0.0)

---
updated-dependencies:
- dependency-name: django-debug-toolbar
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [UPDATE] Bump cryptography from 37.0.4 to 40.0.1 (#594)

* [UPDATE] Bump cryptography from 37.0.4 to 40.0.1

Bumps [cryptography](https://github.com/pyca/cryptography) from 37.0.4 to 40.0.1.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/37.0.4...40.0.1)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Updated pyOpenSSL to match cryptography requirements

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Julien Constant <julienconstant190@gmail.com>

* Mise à jour de Black vers la version 23.3 (#629)

* update link for poetry install

* [UPDATE] Bump django-countries from 7.5 to 7.5.1 (#624)

Bumps [django-countries](https://github.com/SmileyChris/django-countries) from 7.5 to 7.5.1.
- [Release notes](https://github.com/SmileyChris/django-countries/releases)
- [Changelog](https://github.com/SmileyChris/django-countries/blob/main/CHANGES.rst)
- [Commits](https://github.com/SmileyChris/django-countries/compare/v7.5...v7.5.1)

---
updated-dependencies:
- dependency-name: django-countries
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [UPDATE] Bump sentry-sdk from 1.19.1 to 1.21.0

Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.19.1 to 1.21.0.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/1.19.1...1.21.0)

---
updated-dependencies:
- dependency-name: sentry-sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Speed up tests (#638)

* Better usage of cache for groups and clubs related operations (#634)

* Better usage of cache for group retrieval

* Cache clearing on object deletion or update

* replace signals by save and delete override

* add is_anonymous check in is_owned_by

Add in many is_owned_by(self, user) methods that user is not anonymous. Since many of those functions do db queries, this should reduce a little bit the load of the db.

* Stricter usage of User.is_in_group

Constrain the parameters that can be passed to the function to make sure only a str or an int can be used. Also force to explicitly specify if the group id or the group name is used.

* write test and correct bugs

* remove forgotten populate commands

* Correct test

* [FIX] Correction de bugs (#617)

* Fix #600

* Fix #602

* Fixes & améliorations du nouveau CSS (#616)

* Fix #604

* should fix #605

* Fix #608

* Update core/views/site.py

Co-Authored-By: thomas girod <56346771+imperosol@users.noreply.github.com>

* Added back the permission denied

* Should fix #609

* Fix failing test when 2 user are merged

* Should fix #610

* Should fix #627

* Should fix #109

Block les URLs suivantes lorsque le fichier se trouve dans le dir `profiles` ou `SAS` :
- `/file/<id>/`
- `/file/<id>/[delete|prop|edit]`

> Les urls du SAS restent accessiblent pour les roots & les admins SAS
> Les urls de profiles sont uniquement accessiblent aux roots

* Fix root dir of SAS being unnaccessible for sas admins

⚠️ need to edit the SAS directory & save it (no changes required in sas directory properties)

* Remove overwritten code

* Should fix duplicated albums in user profile (wtf)

* Fix typo

* Extended profiles picture access to board members

* Should fix #607

* Fix keyboard navigation not working properly

* Fix user tagged pictures section inside python rather than in the template

* Update utils.py

* Apply suggested changes

* Fix #604

* Fix #608

* Added back the permission denied

* Should fix duplicated albums in user profile (wtf)

* Fix user tagged pictures section inside python rather than in the template

* Apply suggested changes

---------

Co-authored-by: thomas girod <56346771+imperosol@users.noreply.github.com>

* Remove duplicated css

* Galaxy improvements (#628)

* galaxy: improve logging and performance reporting

* galaxy: add a full galaxy state test

* galaxy: optimize user self score computation

* galaxy: add 'generate_galaxy_test_data' command for development at scale

* galaxy: big refactor

Main changes:
  - Multiple Galaxy objects can now exist at the same time in DB. This allows for ruling a new galaxy while still
    displaying the old one.
  - The criteria to quickly know whether a user is a possible citizen is now a simple query on picture count. This
    avoids a very complicated query to database, that could often result in huge working memory load. With this change,
    it should be possible to run the galaxy even on a vanilla Postgres that didn't receive fine tuning for the Sith's
    galaxy.

* galaxy: template: make the galaxy graph work and be usable with a lot of stars

- Display focused star and its connections clearly
- Display star label faintly by default for other stars to avoid overloading the graph
- Hide non-focused lanes
- Avoid clicks on non-highlighted, too far stars
- Make the canva adapt its width to initial screen size, doesn't work dynamically

* galaxy: better docstrings

* galaxy: use bulk_create whenever possible

This is a big performance gain, especially for the tests.

Examples:

----

`./manage.py test galaxy.tests.GalaxyTest.test_full_galaxy_state`

Measurements averaged over 3 run on *my machine*™:
Before: 2min15s
After: 1m41s

----

`./manage.py generate_galaxy_test_data --user-pack-count 1`

Before: 48s
After: 25s

----

`./manage.py rule_galaxy` (for 600 citizen, corresponding to 1 user-pack)

Before: 14m4s
After: 12m34s

* core: populate: use a less ambiguous 'timezone.now()'

When running the tests around midnight, the day is changing, leading to some values being offset to the next day
depending on the timezone, and making some tests to fail. This ensure to use a less ambiguous `now` when populating
the database.

* write more extensive documentation

- add documentation to previously documented classes and functions and refactor some of the documented one, in accordance to the PEP257 and ReStructuredText standards ;
- add some type hints ;
- use a NamedTuple for the `Galaxy.compute_users_score` method instead of a raw tuple. Also change a little bit the logic in the function which call the latter ;
- add some additional parameter checks on a few functions ;
- change a little bit the logic of the log level setting for the galaxy related commands.

* galaxy: tests: split Model and View for more efficient data usage

---------

Co-authored-by: maréchal <thgirod@hotmail.com>

* [UPDATE] Bump libsass from 0.21.0 to 0.22.0 (#640)

Bumps [libsass](https://github.com/sass/libsass-python) from 0.21.0 to 0.22.0.
- [Release notes](https://github.com/sass/libsass-python/releases)
- [Changelog](https://github.com/sass/libsass-python/blob/main/docs/changes.rst)
- [Commits](https://github.com/sass/libsass-python/compare/0.21.0...0.22.0)

---
updated-dependencies:
- dependency-name: libsass
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [FIX] Fix cached groups (#647)

* Bump sqlparse from 0.4.3 to 0.4.4 (#645)

Bumps [sqlparse](https://github.com/andialbrecht/sqlparse) from 0.4.3 to 0.4.4.
- [Release notes](https://github.com/andialbrecht/sqlparse/releases)
- [Changelog](https://github.com/andialbrecht/sqlparse/blob/master/CHANGELOG)
- [Commits](https://github.com/andialbrecht/sqlparse/compare/0.4.3...0.4.4)

---
updated-dependencies:
- dependency-name: sqlparse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [UPDATE] Bump django-ordered-model from 3.6 to 3.7.4 (#625)

Bumps [django-ordered-model](https://github.com/django-ordered-model/django-ordered-model) from 3.6 to 3.7.4.
- [Release notes](https://github.com/django-ordered-model/django-ordered-model/releases)
- [Changelog](https://github.com/django-ordered-model/django-ordered-model/blob/master/CHANGES.md)
- [Commits](https://github.com/django-ordered-model/django-ordered-model/compare/3.6...3.7.4)

---
updated-dependencies:
- dependency-name: django-ordered-model
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix immutable default variable in `get_start_of_semester` (#656)

Le serveur ne percevait pas le changement de semestre, parce
que la valeur par défaut passée à la fonction `get_start_of_semester()` était une fonction appelée une seule fois, lors du lancement du serveur. Bref, c'était ça : https://beta.ruff.rs/docs/rules/function-call-in-default-argument/

---------

Co-authored-by: imperosol <thgirod@hotmail.com>

* Add missing method on AnonymousUser (#649)

* Add eurocks partnership in the eboutic (#661)

* Add eurocks partnership in the eboutic (#661)

Revert "Add eurocks partnership in the eboutic (#661)"

This reverts commit 193c820757.

Add eurocks partnership in the eboutic (#661)

* Update workflow

Following this update : https://github.blog/changelog/2023-09-13-github-actions-updates-to-github_ref-and-github-ref/

* Update workflow

* Remove eurocks tickets from eboutic (event is finished)

* Links update & translations typos fixes (#671)

* Remove BDF link (as BDF is now part of AE)

* Remove unused pages

* Fix typos

* Fix typo again

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Thomas Girod <thgirod@hotmail.com>
Co-authored-by: thomas girod <56346771+imperosol@users.noreply.github.com>
Co-authored-by: Théo DURR <git@theodurr.fr>
Co-authored-by: Skia <skia@hya.sk>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bartuccio Antoine <klmp200@users.noreply.github.com>
2023-10-10 15:41:19 +02:00
Julien Constant 4303d51c0a Merge branch 'master' into taiste 2023-10-10 15:32:46 +02:00
Julien Constant d16bf12611 Links update & translations typos fixes (#671)
* Remove BDF link (as BDF is now part of AE)

* Remove unused pages

* Fix typos

* Fix typo again
2023-10-10 15:29:02 +02:00
Julien Constant 4231a7972d Remove eurocks tickets from eboutic (event is finished) 2023-10-04 14:27:21 +02:00
Julien Constant c436d39014 [PARTENARIAT] Partenariat Eurockéennes (#663) 2023-09-20 17:57:26 +02:00
Julien Constant 51a12814f9 Update workflow 2023-09-19 22:17:26 +02:00
Julien Constant 00ae6e4623 Update workflow
Following this update : https://github.blog/changelog/2023-09-13-github-actions-updates-to-github_ref-and-github-ref/
2023-09-19 22:04:46 +02:00
Julien Constant 4b587e8711 Merge branch 'taiste' of https://github.com/ae-utbm/sith3 into taiste 2023-09-19 21:31:02 +02:00
Julien Constant d2f377b54f Add eurocks partnership in the eboutic (#661)
Revert "Add eurocks partnership in the eboutic (#661)"

This reverts commit 193c820757.

Add eurocks partnership in the eboutic (#661)
2023-09-19 21:29:17 +02:00
Julien Constant 193c820757 Add eurocks partnership in the eboutic (#661) 2023-09-19 20:59:22 +02:00
Julien Constant b9298792ae Mise à jour de septembre 2023 (#659)
* integration of 3D secure v2 for eboutic bank payment

* edit yml to avoid git conflict when deploying on test

* escape html characters on xml (#505)

* Change country id to ISO 3166 1 numeric for 3DSV2 (#510)

* remove useless tests

* Fix le panier de l'Eboutic pour Safari (#518)

Co-authored-by: Théo DURR <git@theodurr.fr>
Co-authored-by: thomas girod <56346771+imperosol@users.noreply.github.com>

* update some dependencies (#523)

* [Eboutic] Fix double quote issue & improved user experience on small screen (#522)

* Fix #511 Regex issue with escaped double quotes

* Fix basket being when reloading the page (when cookie != "")

+ Added JSDoc
+ Cleaned some code

* Fix #509 Improved user experience on small screens

* Fix css class not being added back when reloading page

* CSS Fixes (see description)

+ Fixed overlaping item title with the cart emoji on small screen
+ Fixed minimal size of the basket on small screen (full width)

* Added darkened background circle to items with no image

* Fix issue were the basket could be None


* Edited CSS to have bette img ratio & the 🛒 icon

Adapt, Improve, Overcome

* Moved basket down on small screen size

* enhance admin pages

* update documentation

* Update doc/about/tech.rst

Co-authored-by: Julien Constant <49886317+Juknum@users.noreply.github.com>

* remove csrf_token

* Fix 3DSv2 implementation (#542)

* Fixed wrong HMAC signature generation

* Fix xml du panier

Co-authored-by: Julien Constant <julienconstant190@gmail.com>

* [FIX] 3DSv2 - Echappement du XML et modif tables (#543)

* Fixed wrong HMAC signature generation
* Updated migration files

Co-authored-by: Julien Constant <julienconstant190@gmail.com>

* Update doc/about/tech.rst

* Update doc/start/install.rst

* Updated lock file according to pyproject

* unify account_id creation

* upgrade re_path to path (#533)

* redirect directly on counter if user is barman

* Passage de vue à Alpine pour les comptoirs (#561)

Vue, c'est cool, mais avec Django c'est un peu chiant à utiliser. Alpine a l'avantage d'être plus léger et d'avoir une syntaxe qui ne ressemble pas à celle de Jinja (ce qui évite d'avoir à mettre des {% raw %} partout).

* resolved importError (#565)

* Add galaxy (#562)

* style.scss: lint

* style.scss: add 'th' padding

* core: populate: add much more data for development

* Add galaxy

* repair user merging tool (#498)

* Disabled galaxy feature (only visually)

* Disabled Galaxy button & Removed 404 exception display

* Update 404.jinja

* Fixed broken test

* Added eurocks links to eboutic

* fix typo

* fix wording

Co-authored-by: Théo DURR <git@theodurr.fr>

* Edited unit tests

This test caused a breach in security due to the alert block displaying sensitive data.

* Repair NaN bug for autocomplete on counter click

* remove-useless-queries-counter-stats (#519)

* Amélioration des pages utilisateurs pour les petits écrans (#578, #520)

- Refonte de l'organisation des pages utilisateurs (principalement du front)
  - Page des parrains/fillots
  - Page d'édition du profil
  - Page du profil
  - Page des outils
  - Page des préférences
  - Page des stats utilisateurs

- Refonte du CSS / organisation de la navbar principale (en haut de l'écran)
- Refonte du CSS de la navbar bleu clair (le menu)
- Refonte du CSS du SAS :
  - Page de photo
  - Page d'albums

* Added GA/Clubs Google Calendar to main page (#585)

* Added GA/Clubs google calendar to main page

* Made tables full width

* Create dependabot.yml (#587)

* Bump django from 3.2.16 to 3.2.18 (#574)

* [CSS] Follow up of #578 (#589)

* [FIX] Broken link in readme and license fix (& update) (#591)

* Fixes pour la mise à jour de mars (#598)

* Fix problème de cache dans le SAS & améliore le CSS du SAS

Co-authored-by: Bartuccio Antoine <klmp200@users.noreply.github.com>

* Fixes & améliorations du nouveau CSS (#616)

* [UPDATE] Bump sentry-sdk from 1.12.1 to 1.19.1 (#620)

* [FIX] Fixes supplémentaires pour la màj de mars (#622)

- Les photos de l'onglet de la page utilisateur utilise désormais leur version thumbnail au lieu de leur version HD
- Une des classes du CSS du SAS a été renommée car elle empiétait sur une class de la navbar
- Le profil utilisateur a été revu pour ajouter plus d'espacement entre le tableau des cotisations et le numéro de cotisants
- Les images de forum & blouse sont de nouveau cliquable pour les afficher en grands
- Sur mobile, lorsqu'on cliquait sur le premier élément de la navbar, ce dernier avait un overlay avec des angles arrondis
- Sur mobile, les utilisateurs avec des images de profils non carrées dépassait dans l'onglet Famille

* [UPDATE] Bump dict2xml from 1.7.2 to 1.7.3 (#592)

Bumps [dict2xml](https://github.com/delfick/python-dict2xml) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/delfick/python-dict2xml/releases)
- [Commits](https://github.com/delfick/python-dict2xml/compare/release-1.7.2...release-1.7.3)

---
updated-dependencies:
- dependency-name: dict2xml
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

* [UPDATE] Bump django-debug-toolbar from 3.8.1 to 4.0.0 (#593)

Bumps [django-debug-toolbar](https://github.com/jazzband/django-debug-toolbar) from 3.8.1 to 4.0.0.
- [Release notes](https://github.com/jazzband/django-debug-toolbar/releases)
- [Changelog](https://github.com/jazzband/django-debug-toolbar/blob/main/docs/changes.rst)
- [Commits](https://github.com/jazzband/django-debug-toolbar/compare/3.8.1...4.0.0)

---
updated-dependencies:
- dependency-name: django-debug-toolbar
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [UPDATE] Bump cryptography from 37.0.4 to 40.0.1 (#594)

* [UPDATE] Bump cryptography from 37.0.4 to 40.0.1

Bumps [cryptography](https://github.com/pyca/cryptography) from 37.0.4 to 40.0.1.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/37.0.4...40.0.1)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Updated pyOpenSSL to match cryptography requirements

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Julien Constant <julienconstant190@gmail.com>

* Mise à jour de Black vers la version 23.3 (#629)

* update link for poetry install

* [UPDATE] Bump django-countries from 7.5 to 7.5.1 (#624)

Bumps [django-countries](https://github.com/SmileyChris/django-countries) from 7.5 to 7.5.1.
- [Release notes](https://github.com/SmileyChris/django-countries/releases)
- [Changelog](https://github.com/SmileyChris/django-countries/blob/main/CHANGES.rst)
- [Commits](https://github.com/SmileyChris/django-countries/compare/v7.5...v7.5.1)

---
updated-dependencies:
- dependency-name: django-countries
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [UPDATE] Bump sentry-sdk from 1.19.1 to 1.21.0

Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.19.1 to 1.21.0.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/1.19.1...1.21.0)

---
updated-dependencies:
- dependency-name: sentry-sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Speed up tests (#638)

* Better usage of cache for groups and clubs related operations (#634)

* Better usage of cache for group retrieval

* Cache clearing on object deletion or update

* replace signals by save and delete override

* add is_anonymous check in is_owned_by

Add in many is_owned_by(self, user) methods that user is not anonymous. Since many of those functions do db queries, this should reduce a little bit the load of the db.

* Stricter usage of User.is_in_group

Constrain the parameters that can be passed to the function to make sure only a str or an int can be used. Also force to explicitly specify if the group id or the group name is used.

* write test and correct bugs

* remove forgotten populate commands

* Correct test

* [FIX] Correction de bugs (#617)

* Fix #600

* Fix #602

* Fixes & améliorations du nouveau CSS (#616)

* Fix #604

* should fix #605

* Fix #608

* Update core/views/site.py

Co-Authored-By: thomas girod <56346771+imperosol@users.noreply.github.com>

* Added back the permission denied

* Should fix #609

* Fix failing test when 2 user are merged

* Should fix #610

* Should fix #627

* Should fix #109

Block les URLs suivantes lorsque le fichier se trouve dans le dir `profiles` ou `SAS` :
- `/file/<id>/`
- `/file/<id>/[delete|prop|edit]`

> Les urls du SAS restent accessiblent pour les roots & les admins SAS
> Les urls de profiles sont uniquement accessiblent aux roots

* Fix root dir of SAS being unnaccessible for sas admins

⚠️ need to edit the SAS directory & save it (no changes required in sas directory properties)

* Remove overwritten code

* Should fix duplicated albums in user profile (wtf)

* Fix typo

* Extended profiles picture access to board members

* Should fix #607

* Fix keyboard navigation not working properly

* Fix user tagged pictures section inside python rather than in the template

* Update utils.py

* Apply suggested changes

* Fix #604

* Fix #608

* Added back the permission denied

* Should fix duplicated albums in user profile (wtf)

* Fix user tagged pictures section inside python rather than in the template

* Apply suggested changes

---------

Co-authored-by: thomas girod <56346771+imperosol@users.noreply.github.com>

* Remove duplicated css

* Galaxy improvements (#628)

* galaxy: improve logging and performance reporting

* galaxy: add a full galaxy state test

* galaxy: optimize user self score computation

* galaxy: add 'generate_galaxy_test_data' command for development at scale

* galaxy: big refactor

Main changes:
  - Multiple Galaxy objects can now exist at the same time in DB. This allows for ruling a new galaxy while still
    displaying the old one.
  - The criteria to quickly know whether a user is a possible citizen is now a simple query on picture count. This
    avoids a very complicated query to database, that could often result in huge working memory load. With this change,
    it should be possible to run the galaxy even on a vanilla Postgres that didn't receive fine tuning for the Sith's
    galaxy.

* galaxy: template: make the galaxy graph work and be usable with a lot of stars

- Display focused star and its connections clearly
- Display star label faintly by default for other stars to avoid overloading the graph
- Hide non-focused lanes
- Avoid clicks on non-highlighted, too far stars
- Make the canva adapt its width to initial screen size, doesn't work dynamically

* galaxy: better docstrings

* galaxy: use bulk_create whenever possible

This is a big performance gain, especially for the tests.

Examples:

----

`./manage.py test galaxy.tests.GalaxyTest.test_full_galaxy_state`

Measurements averaged over 3 run on *my machine*™:
Before: 2min15s
After: 1m41s

----

`./manage.py generate_galaxy_test_data --user-pack-count 1`

Before: 48s
After: 25s

----

`./manage.py rule_galaxy` (for 600 citizen, corresponding to 1 user-pack)

Before: 14m4s
After: 12m34s

* core: populate: use a less ambiguous 'timezone.now()'

When running the tests around midnight, the day is changing, leading to some values being offset to the next day
depending on the timezone, and making some tests to fail. This ensure to use a less ambiguous `now` when populating
the database.

* write more extensive documentation

- add documentation to previously documented classes and functions and refactor some of the documented one, in accordance to the PEP257 and ReStructuredText standards ;
- add some type hints ;
- use a NamedTuple for the `Galaxy.compute_users_score` method instead of a raw tuple. Also change a little bit the logic in the function which call the latter ;
- add some additional parameter checks on a few functions ;
- change a little bit the logic of the log level setting for the galaxy related commands.

* galaxy: tests: split Model and View for more efficient data usage

---------

Co-authored-by: maréchal <thgirod@hotmail.com>

* [UPDATE] Bump libsass from 0.21.0 to 0.22.0 (#640)

Bumps [libsass](https://github.com/sass/libsass-python) from 0.21.0 to 0.22.0.
- [Release notes](https://github.com/sass/libsass-python/releases)
- [Changelog](https://github.com/sass/libsass-python/blob/main/docs/changes.rst)
- [Commits](https://github.com/sass/libsass-python/compare/0.21.0...0.22.0)

---
updated-dependencies:
- dependency-name: libsass
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [FIX] Fix cached groups (#647)

* Bump sqlparse from 0.4.3 to 0.4.4 (#645)

Bumps [sqlparse](https://github.com/andialbrecht/sqlparse) from 0.4.3 to 0.4.4.
- [Release notes](https://github.com/andialbrecht/sqlparse/releases)
- [Changelog](https://github.com/andialbrecht/sqlparse/blob/master/CHANGELOG)
- [Commits](https://github.com/andialbrecht/sqlparse/compare/0.4.3...0.4.4)

---
updated-dependencies:
- dependency-name: sqlparse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [UPDATE] Bump django-ordered-model from 3.6 to 3.7.4 (#625)

Bumps [django-ordered-model](https://github.com/django-ordered-model/django-ordered-model) from 3.6 to 3.7.4.
- [Release notes](https://github.com/django-ordered-model/django-ordered-model/releases)
- [Changelog](https://github.com/django-ordered-model/django-ordered-model/blob/master/CHANGES.md)
- [Commits](https://github.com/django-ordered-model/django-ordered-model/compare/3.6...3.7.4)

---
updated-dependencies:
- dependency-name: django-ordered-model
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix immutable default variable in `get_start_of_semester` (#656)

Le serveur ne percevait pas le changement de semestre, parce
que la valeur par défaut passée à la fonction `get_start_of_semester()` était une fonction appelée une seule fois, lors du lancement du serveur. Bref, c'était ça : https://beta.ruff.rs/docs/rules/function-call-in-default-argument/

---------

Co-authored-by: imperosol <thgirod@hotmail.com>

* Add missing method on AnonymousUser (#649)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Thomas Girod <thgirod@hotmail.com>
Co-authored-by: thomas girod <56346771+imperosol@users.noreply.github.com>
Co-authored-by: Théo DURR <git@theodurr.fr>
Co-authored-by: Skia <skia@hya.sk>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bartuccio Antoine <klmp200@users.noreply.github.com>
2023-09-09 13:09:13 +02:00
thomas girod aaf30ab965 Add missing method on AnonymousUser (#649) 2023-09-07 23:53:42 +02:00
Julien Constant 2db66e6154 Merge branch 'master' into taiste 2023-09-07 23:44:09 +02:00
Julien Constant 38295e591d Fix immutable default variable in get_start_of_semester (#656)
Le serveur ne percevait pas le changement de semestre, parce
que la valeur par défaut passée à la fonction `get_start_of_semester()` était une fonction appelée une seule fois, lors du lancement du serveur. Bref, c'était ça : https://beta.ruff.rs/docs/rules/function-call-in-default-argument/

---------

Co-authored-by: imperosol <thgirod@hotmail.com>
2023-09-07 23:11:58 +02:00
dependabot[bot] 544b0248b2 [UPDATE] Bump django-ordered-model from 3.6 to 3.7.4 (#625)
Bumps [django-ordered-model](https://github.com/django-ordered-model/django-ordered-model) from 3.6 to 3.7.4.
- [Release notes](https://github.com/django-ordered-model/django-ordered-model/releases)
- [Changelog](https://github.com/django-ordered-model/django-ordered-model/blob/master/CHANGES.md)
- [Commits](https://github.com/django-ordered-model/django-ordered-model/compare/3.6...3.7.4)

---
updated-dependencies:
- dependency-name: django-ordered-model
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-06 12:01:44 +02:00
Julien Constant 2bccf633d5 Bump sqlparse from 0.4.3 to 0.4.4 (#645)
Bumps [sqlparse](https://github.com/andialbrecht/sqlparse) from 0.4.3 to 0.4.4.
- [Release notes](https://github.com/andialbrecht/sqlparse/releases)
- [Changelog](https://github.com/andialbrecht/sqlparse/blob/master/CHANGELOG)
- [Commits](https://github.com/andialbrecht/sqlparse/compare/0.4.3...0.4.4)

---
updated-dependencies:
- dependency-name: sqlparse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-06 11:37:28 +02:00
Julien Constant 4f9d5ae7b1 Revert "[PARTENARIAT] Ajout vitrine d'achat billets eurockéennes 2023 (#582)"
This reverts commit b12e8dc147.
2023-07-02 18:22:14 +02:00
Julien Constant 259337dff1 [FIX] Fix cached groups (#647) 2023-05-12 13:29:16 +02:00
Julien Constant 84768eb74e [FIX] Fix cached groups (#647) 2023-05-12 13:27:51 +02:00
dependabot[bot] 8852ef990e [UPDATE] Bump libsass from 0.21.0 to 0.22.0 (#640)
Bumps [libsass](https://github.com/sass/libsass-python) from 0.21.0 to 0.22.0.
- [Release notes](https://github.com/sass/libsass-python/releases)
- [Changelog](https://github.com/sass/libsass-python/blob/main/docs/changes.rst)
- [Commits](https://github.com/sass/libsass-python/compare/0.21.0...0.22.0)

---
updated-dependencies:
- dependency-name: libsass
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-11 14:19:19 +02:00
Skia 87295ad9b7 Galaxy improvements (#628)
* galaxy: improve logging and performance reporting

* galaxy: add a full galaxy state test

* galaxy: optimize user self score computation

* galaxy: add 'generate_galaxy_test_data' command for development at scale

* galaxy: big refactor

Main changes:
  - Multiple Galaxy objects can now exist at the same time in DB. This allows for ruling a new galaxy while still
    displaying the old one.
  - The criteria to quickly know whether a user is a possible citizen is now a simple query on picture count. This
    avoids a very complicated query to database, that could often result in huge working memory load. With this change,
    it should be possible to run the galaxy even on a vanilla Postgres that didn't receive fine tuning for the Sith's
    galaxy.

* galaxy: template: make the galaxy graph work and be usable with a lot of stars

- Display focused star and its connections clearly
- Display star label faintly by default for other stars to avoid overloading the graph
- Hide non-focused lanes
- Avoid clicks on non-highlighted, too far stars
- Make the canva adapt its width to initial screen size, doesn't work dynamically

* galaxy: better docstrings

* galaxy: use bulk_create whenever possible

This is a big performance gain, especially for the tests.

Examples:

----

`./manage.py test galaxy.tests.GalaxyTest.test_full_galaxy_state`

Measurements averaged over 3 run on *my machine*™:
Before: 2min15s
After: 1m41s

----

`./manage.py generate_galaxy_test_data --user-pack-count 1`

Before: 48s
After: 25s

----

`./manage.py rule_galaxy` (for 600 citizen, corresponding to 1 user-pack)

Before: 14m4s
After: 12m34s

* core: populate: use a less ambiguous 'timezone.now()'

When running the tests around midnight, the day is changing, leading to some values being offset to the next day
depending on the timezone, and making some tests to fail. This ensure to use a less ambiguous `now` when populating
the database.

* write more extensive documentation

- add documentation to previously documented classes and functions and refactor some of the documented one, in accordance to the PEP257 and ReStructuredText standards ;
- add some type hints ;
- use a NamedTuple for the `Galaxy.compute_users_score` method instead of a raw tuple. Also change a little bit the logic in the function which call the latter ;
- add some additional parameter checks on a few functions ;
- change a little bit the logic of the log level setting for the galaxy related commands.

* galaxy: tests: split Model and View for more efficient data usage

---------

Co-authored-by: maréchal <thgirod@hotmail.com>
2023-05-10 12:47:02 +02:00
Julien Constant 288764b551 Mise à jour d'avril (#643) 2023-05-10 11:56:33 +02:00
Julien Constant 5ab5ef681c Remove duplicated css 2023-05-09 23:08:32 +02:00
Julien Constant c9e70889dd Merge branch 'master' into taiste 2023-05-09 22:37:49 +02:00
Julien Constant b30ee0a27a [FIX] Correction de bugs (#617)
* Fix #600

* Fix #602

* Fixes & améliorations du nouveau CSS (#616)

* Fix #604

* should fix #605

* Fix #608

* Update core/views/site.py

Co-Authored-By: thomas girod <56346771+imperosol@users.noreply.github.com>

* Added back the permission denied

* Should fix #609

* Fix failing test when 2 user are merged

* Should fix #610

* Should fix #627

* Should fix #109

Block les URLs suivantes lorsque le fichier se trouve dans le dir `profiles` ou `SAS` :
- `/file/<id>/`
- `/file/<id>/[delete|prop|edit]`

> Les urls du SAS restent accessiblent pour les roots & les admins SAS
> Les urls de profiles sont uniquement accessiblent aux roots

* Fix root dir of SAS being unnaccessible for sas admins

⚠️ need to edit the SAS directory & save it (no changes required in sas directory properties)

* Remove overwritten code

* Should fix duplicated albums in user profile (wtf)

* Fix typo

* Extended profiles picture access to board members

* Should fix #607

* Fix keyboard navigation not working properly

* Fix user tagged pictures section inside python rather than in the template

* Update utils.py

* Apply suggested changes

* Fix #604

* Fix #608

* Added back the permission denied

* Should fix duplicated albums in user profile (wtf)

* Fix user tagged pictures section inside python rather than in the template

* Apply suggested changes

---------

Co-authored-by: thomas girod <56346771+imperosol@users.noreply.github.com>
2023-05-02 13:07:36 +02:00
thomas girod ef968f3673 Better usage of cache for groups and clubs related operations (#634)
* Better usage of cache for group retrieval

* Cache clearing on object deletion or update

* replace signals by save and delete override

* add is_anonymous check in is_owned_by

Add in many is_owned_by(self, user) methods that user is not anonymous. Since many of those functions do db queries, this should reduce a little bit the load of the db.

* Stricter usage of User.is_in_group

Constrain the parameters that can be passed to the function to make sure only a str or an int can be used. Also force to explicitly specify if the group id or the group name is used.

* write test and correct bugs

* remove forgotten populate commands

* Correct test
2023-05-02 12:36:59 +02:00
thomas girod 96dede5077 Speed up tests (#638) 2023-05-02 11:00:23 +02:00
thomas girod 66fcb76cb5 Merge pull request #635 from ae-utbm/dependabot/pip/taiste/sentry-sdk-1.21.0
[UPDATE] Bump sentry-sdk from 1.19.1 to 1.21.0
2023-04-26 22:17:13 +02:00
dependabot[bot] 63c8e51137 [UPDATE] Bump sentry-sdk from 1.19.1 to 1.21.0
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.19.1 to 1.21.0.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/1.19.1...1.21.0)

---
updated-dependencies:
- dependency-name: sentry-sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-26 09:08:06 +00:00
dependabot[bot] 12bec5c553 [UPDATE] Bump django-countries from 7.5 to 7.5.1 (#624)
Bumps [django-countries](https://github.com/SmileyChris/django-countries) from 7.5 to 7.5.1.
- [Release notes](https://github.com/SmileyChris/django-countries/releases)
- [Changelog](https://github.com/SmileyChris/django-countries/blob/main/CHANGES.rst)
- [Commits](https://github.com/SmileyChris/django-countries/compare/v7.5...v7.5.1)

---
updated-dependencies:
- dependency-name: django-countries
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-26 02:48:04 +02:00
thomas girod 08460a6964 update link for poetry install 2023-04-22 22:29:43 +02:00
thomas girod b5a40cfda9 Mise à jour de Black vers la version 23.3 (#629) 2023-04-22 15:32:31 +02:00
dependabot[bot] c78953b036 [UPDATE] Bump cryptography from 37.0.4 to 40.0.1 (#594)
* [UPDATE] Bump cryptography from 37.0.4 to 40.0.1

Bumps [cryptography](https://github.com/pyca/cryptography) from 37.0.4 to 40.0.1.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/37.0.4...40.0.1)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Updated pyOpenSSL to match cryptography requirements

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Julien Constant <julienconstant190@gmail.com>
2023-04-20 14:43:46 +02:00
dependabot[bot] 427f7ceaff [UPDATE] Bump django-debug-toolbar from 3.8.1 to 4.0.0 (#593)
Bumps [django-debug-toolbar](https://github.com/jazzband/django-debug-toolbar) from 3.8.1 to 4.0.0.
- [Release notes](https://github.com/jazzband/django-debug-toolbar/releases)
- [Changelog](https://github.com/jazzband/django-debug-toolbar/blob/main/docs/changes.rst)
- [Commits](https://github.com/jazzband/django-debug-toolbar/compare/3.8.1...4.0.0)

---
updated-dependencies:
- dependency-name: django-debug-toolbar
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-09 21:37:48 +02:00
dependabot[bot] 1055385bcc [UPDATE] Bump dict2xml from 1.7.2 to 1.7.3 (#592)
Bumps [dict2xml](https://github.com/delfick/python-dict2xml) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/delfick/python-dict2xml/releases)
- [Commits](https://github.com/delfick/python-dict2xml/compare/release-1.7.2...release-1.7.3)

---
updated-dependencies:
- dependency-name: dict2xml
  dependency-type: direct:production
  update-type: version-update:semver-patch
...
2023-04-09 11:38:58 +02:00
Julien Constant c1022642a2 [FIX] Fixes supplémentaires pour la màj de mars (#622)
- Les photos de l'onglet de la page utilisateur utilise désormais leur version thumbnail au lieu de leur version HD
- Une des classes du CSS du SAS a été renommée car elle empiétait sur une class de la navbar
- Le profil utilisateur a été revu pour ajouter plus d'espacement entre le tableau des cotisations et le numéro de cotisants
- Les images de forum & blouse sont de nouveau cliquable pour les afficher en grands
- Sur mobile, lorsqu'on cliquait sur le premier élément de la navbar, ce dernier avait un overlay avec des angles arrondis
- Sur mobile, les utilisateurs avec des images de profils non carrées dépassait dans l'onglet Famille
2023-04-08 20:59:43 +02:00
Julien Constant 910a6f8b34 [FIX] Fixes supplémentaires pour la màj de mars (#622)
- Les photos de l'onglet de la page utilisateur utilise désormais leur version thumbnail au lieu de leur version HD
- Une des classes du CSS du SAS a été renommée car elle empiétait sur une class de la navbar
- Le profil utilisateur a été revu pour ajouter plus d'espacement entre le tableau des cotisations et le numéro de cotisants
- Les images de forum & blouse sont de nouveau cliquable pour les afficher en grands
- Sur mobile, lorsqu'on cliquait sur le premier élément de la navbar, ce dernier avait un overlay avec des angles arrondis
- Sur mobile, les utilisateurs avec des images de profils non carrées dépassait dans l'onglet Famille
2023-04-08 20:58:55 +02:00
dependabot[bot] 06253f029c [UPDATE] Bump sentry-sdk from 1.12.1 to 1.19.1 (#620) 2023-04-08 18:50:31 +00:00
Julien Constant fa6527b24f [FIX] Deuxième vague de fixes pour la mise à jour de mars (#619) 2023-04-06 16:09:29 +02:00
Julien Constant 0501e6417a Merge branch 'master' into taiste 2023-04-05 20:02:12 +02:00
Julien Constant a198f5252d Fixes & améliorations du nouveau CSS (#616) 2023-04-05 18:03:43 +02:00
Julien Constant d83842af27 Fix problème de cache dans le SAS & améliore le CSS du SAS
Co-authored-by: Bartuccio Antoine <klmp200@users.noreply.github.com>
2023-04-05 14:32:32 +02:00
Julien Constant f605f7dcc6 Fixes pour la mise à jour de mars (#598) 2023-04-04 22:55:26 +02:00
Julien Constant e638bc04ed Fixes pour la mise à jour de mars (#598) 2023-04-04 22:50:19 +02:00
Julien Constant 4830c3ea2d Mise à jour de mars (#586)
---------

Co-authored-by: Thomas Girod <thgirod@hotmail.com>
Co-authored-by: Théo DURR <git@theodurr.fr>
2023-04-04 19:17:44 +02:00
Julien Constant 8e7c025e47 [FIX] Broken link in readme and license fix (& update) (#591) 2023-04-04 18:39:45 +02:00
Julien Constant 1bfe929ab3 [CSS] Follow up of #578 (#589) 2023-04-04 15:21:09 +02:00
dependabot[bot] 93cc2c883e Bump django from 3.2.16 to 3.2.18 (#574) 2023-04-04 10:16:55 +02:00
Julien Constant 44290a20a6 Create dependabot.yml (#587) 2023-04-03 17:18:16 +02:00
Julien Constant 1f10a284f2 Added GA/Clubs Google Calendar to main page (#585)
* Added GA/Clubs google calendar to main page

* Made tables full width
2023-04-03 15:54:12 +02:00
Julien Constant 28f397574f Amélioration des pages utilisateurs pour les petits écrans (#578, #520)
- Refonte de l'organisation des pages utilisateurs (principalement du front)
  - Page des parrains/fillots
  - Page d'édition du profil
  - Page du profil
  - Page des outils
  - Page des préférences
  - Page des stats utilisateurs

- Refonte du CSS / organisation de la navbar principale (en haut de l'écran)
- Refonte du CSS de la navbar bleu clair (le menu)
- Refonte du CSS du SAS :
  - Page de photo
  - Page d'albums
2023-03-30 14:38:40 +02:00
thomas girod 6c1fa6de0b remove-useless-queries-counter-stats (#519) 2023-03-24 15:32:05 +01:00
Théo DURR f0a08afd31 Merge branch 'repair_NaN_bug_on_click' into taiste 2023-03-10 10:50:26 +01:00
thomas girod 982fc09908 Repair NaN bug for autocomplete on counter click (#583)
* Repair NaN bug for autocomplete on counter click
2023-03-10 10:49:14 +01:00
Théo DURR 9e0b5b0b82 Merge branch 'partenariat-eurocks' into taiste 2023-03-09 17:14:34 +01:00
Julien Constant b12e8dc147 [PARTENARIAT] Ajout vitrine d'achat billets eurockéennes 2023 (#582)
* Added eurocks links to eboutic
2023-03-09 17:13:45 +01:00
Thomas Girod 25c5a3297c Repair NaN bug for autocomplete on counter click 2023-03-09 14:21:12 +01:00
Théo DURR dd3ad42eb5 Mise à jour de février (#581)
Co-authored-by: Thomas Girod <thgirod@hotmail.com>
Co-authored-by: Julien Constant <julienconstant190@gmail.com>
Co-authored-by: Skia <skia@hya.sk>
2023-03-09 13:39:33 +01:00
Théo DURR 5ea181829e Edited unit tests
This test caused a breach in security due to the alert block displaying sensitive data.
2023-03-08 20:47:59 +01:00
Julien Constant 0cf203669f fix wording
Co-authored-by: Théo DURR <git@theodurr.fr>
2023-03-08 20:35:24 +01:00
Julien Constant 559bfcac60 fix typo 2023-03-08 20:13:12 +01:00
Julien Constant db8a1ed0ab Added eurocks links to eboutic 2023-03-08 20:10:54 +01:00
Théo DURR 16150905a0 Fixed broken test 2023-03-08 14:11:10 +01:00
Théo DURR 9a376887ac Update 404.jinja 2023-03-08 13:08:23 +01:00
Théo DURR 773808fa59 Disabled Galaxy button & Removed 404 exception display 2023-03-08 12:50:52 +01:00
Théo DURR c1e59a0676 Disabled galaxy feature (only visually) 2023-03-07 21:32:37 +01:00
Théo DURR 05febc60bd Merge branch 'master' into taiste 2023-03-04 16:35:41 +01:00
thomas girod a73fe598ef repair user merging tool (#498) 2023-03-04 15:01:08 +01:00
Skia b7f20fed6c Galaxy (#575)
Co-authored-by: Skia <florent.jacquet@eshard.com>
2023-03-02 15:11:23 +01:00
Skia 585923c827 Add galaxy (#562)
* style.scss: lint

* style.scss: add 'th' padding

* core: populate: add much more data for development

* Add galaxy
2023-02-07 12:08:25 +01:00
thomas girod 394e17d599 resolved importError (#565) 2023-01-13 02:22:53 +01:00
thomas girod 59136850b8 Merge pull request #530 from ae-utbm/redirection_for_barmen
redirect the user directly on counter when barman
2023-01-11 23:24:45 +01:00
thomas girod d726f4b1e8 Merge pull request #499 from ae-utbm/unify-account-creation
Unify account id creation
2023-01-11 13:26:00 +01:00
thomas girod 705b9b1e6a Passage de vue à Alpine pour les comptoirs (#561)
Vue, c'est cool, mais avec Django c'est un peu chiant à utiliser. Alpine a l'avantage d'être plus léger et d'avoir une syntaxe qui ne ressemble pas à celle de Jinja (ce qui évite d'avoir à mettre des {% raw %} partout).
2023-01-10 22:26:46 +01:00
Thomas Girod 31e8ad8a3e redirect directly on counter if user is barman 2023-01-10 17:37:26 +01:00
thomas girod 99827e005b upgrade re_path to path (#533) 2023-01-09 22:07:03 +01:00
Thomas Girod 751c8a8bc6 unify account_id creation 2023-01-09 21:40:38 +01:00
thomas girod 73305c0b28 Implémentation 3DSv2 + résolution bugs eboutic + amélioration pages admin (#558)
Eboutic :
- Implémentation de la norme 3DSecure v2 pour les paiement par carte bancaire
- Amélioration générale de l'interface utilisateur
- Résolution du problème avec les caractères spéciaux dans le panier sur Safari
- Réparation du cookie du panier de l'eboutic qui n'était pas fonctionnel

Autre :
- Mise à jour de la documentation
- Mise à jour des dépendances Javascript
- Suppression du code inutilisé dans `subscription/models.py`
- Amélioration des pages administrateur (back-office Django)

Co-authored-by: thomas girod <56346771+imperosol@users.noreply.github.com>
Co-authored-by: Théo DURR <git@theodurr.fr>
Co-authored-by: Julien Constant <julienconstant190@gmail.com>
2023-01-09 20:53:12 +01:00
Théo DURR 37216cd16b Updated lock file according to pyproject 2023-01-09 19:29:04 +01:00
Théo DURR dae68638cf Merge branch 'master' into taiste 2023-01-09 19:15:00 +01:00
Julien Constant 7cadc0bc28 Update doc/start/install.rst 2023-01-09 19:04:43 +01:00
Julien Constant cce686f3a8 Update doc/about/tech.rst 2023-01-09 19:04:32 +01:00
Théo DURR 4fe46fbcef [FIX] 3DSv2 - Echappement du XML et modif tables (#543)
* Fixed wrong HMAC signature generation
* Updated migration files

Co-authored-by: Julien Constant <julienconstant190@gmail.com>
2023-01-09 17:46:34 +01:00
Théo DURR fe8b8f46aa Fix 3DSv2 implementation (#542)
* Fixed wrong HMAC signature generation

* Fix xml du panier

Co-authored-by: Julien Constant <julienconstant190@gmail.com>
2023-01-06 20:02:45 +01:00
Julien Constant 310f1a2283 [FEATURE] Ajout du logo de la promo 23 & Amélioration des anciens logos (#541) 2023-01-05 18:37:13 +01:00
thomas girod 7079761ffe Merge pull request #540 from ae-utbm/3dsv2-encore-un-patch
remove csrf_token
2022-12-26 18:55:41 +01:00
Thomas Girod f681c981c6 remove csrf_token 2022-12-26 18:51:04 +01:00
thomas girod 5d97146d14 Merge pull request #531 from ae-utbm/remove_useless_tests
remove useless tests
2022-12-22 13:01:56 +01:00
thomas girod 7b56bd697d Merge pull request #536 from ae-utbm/refactor_admin
enhance admin pages
2022-12-21 17:10:51 +01:00
thomas girod 14cd268d69 Merge pull request #532 from ae-utbm/update-doc
update documentation
2022-12-21 16:02:17 +01:00
thomas girod 754be1c9c9 Update doc/about/tech.rst
Co-authored-by: Julien Constant <49886317+Juknum@users.noreply.github.com>
2022-12-20 21:17:52 +01:00
Thomas Girod da2c155254 update documentation 2022-12-20 17:26:28 +01:00
Thomas Girod ceb2888f82 enhance admin pages 2022-12-19 20:55:33 +01:00
Théo DURR ce3e2bb32b Revert "Bump cryptography from 37.0.4 to 38.0.3 (#515)" (#529)
This reverts commit 7b6eed9a47.
2022-12-17 14:05:53 +01:00
Julien Constant 26c94c9ec6 [Eboutic] Fix double quote issue & improved user experience on small screen (#522)
* Fix #511 Regex issue with escaped double quotes

* Fix basket being when reloading the page (when cookie != "")

+ Added JSDoc
+ Cleaned some code

* Fix #509 Improved user experience on small screens

* Fix css class not being added back when reloading page

* CSS Fixes (see description)

+ Fixed overlaping item title with the cart emoji on small screen
+ Fixed minimal size of the basket on small screen (full width)

* Added darkened background circle to items with no image

* Fix issue were the basket could be None


* Edited CSS to have bette img ratio & the 🛒 icon

Adapt, Improve, Overcome

* Moved basket down on small screen size
2022-12-16 00:37:07 +01:00
dependabot[bot] 7b6eed9a47 Bump cryptography from 37.0.4 to 38.0.3 (#515)
Bumps [cryptography](https://github.com/pyca/cryptography) from 37.0.4 to 38.0.3.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/37.0.4...38.0.3)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-16 00:35:46 +01:00
thomas girod 639197f4c8 update some dependencies (#523) 2022-12-15 23:57:31 +01:00
Théo DURR 13bae8d2fa Update deploy.yml (#527) 2022-12-15 23:55:29 +01:00
Théo DURR 6b2027550c Revert "Dépendance poetry manquante (setuptools)" (#526)
This reverts commit 022b365bb2.
2022-12-15 23:18:41 +01:00
Théo DURR 022b365bb2 Dépendance poetry manquante (setuptools) 2022-12-15 22:36:56 +01:00
Théo DURR d8867fc9ea Edited workflows (#521)
Résoud le soucis lié à dependabot.

Le problème venait du fait que l'on faisait un poetry update et non un poetry Install. Un update écrit dans poetry.lock, alors qu'un Install lit ce fichier. C'est là toute la différence.

Cette PR change donc les workflows.

Laisser ce bot apporte beaucoup de sécurité, vu qu'il nous prévient des changement, et aussi des vulnérabilités au niveau des dépendances.
2022-12-15 19:02:29 +01:00
dependabot[bot] 118c58b5fa Bump django from 3.2.15 to 3.2.16 (#514)
Bumps [django](https://github.com/django/django) from 3.2.15 to 3.2.16.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/3.2.15...3.2.16)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-14 14:11:58 +01:00
Julien Constant faccc1367f Fix le panier de l'Eboutic pour Safari (#518)
Co-authored-by: Théo DURR <git@theodurr.fr>
Co-authored-by: thomas girod <56346771+imperosol@users.noreply.github.com>
2022-12-14 08:38:41 +01:00
Thomas Girod 22b83b0814 remove useless tests 2022-12-12 22:56:06 +01:00
thomas girod 1d82e2a7d9 Change country id to ISO 3166 1 numeric for 3DSV2 (#510) 2022-12-12 22:54:31 +01:00
Julien Constant 823bd578f2 Fix election page css (#508)
* Fix election candidate overflowing texte
* Fix "Show Less" invisible still occurring in production (wtf)
* Fix program text still overflowing still occurring in production (wtf)

Bonus:
* Fix miss-aligned links in navbar
2022-12-12 21:22:18 +01:00
Julien Constant 3e5c36b39e Fix election candidate overflowing texte (#506)
Le texte affiché lorsqu'on appuyait sur "Show more" dépassait horizontalement (programme des candidats)
2022-12-12 20:27:47 +01:00
thomas girod 8fb0897160 add a sentry capture for when eboutic basket regex validation fails. (#504)
Co-authored-by: Théo DURR <git@theodurr.fr>
2022-12-11 10:56:02 +01:00
thomas girod b8a72c57e1 escape html characters on xml (#505) 2022-12-10 20:41:35 +01:00
Théo DURR 6a0a8e8ab4 Edited bar manager club to pdf (pdfesti) (#503)
* Edited bar manager club to pdf (pdfesti)
* Fixed unit tests
2022-12-08 18:26:41 +01:00
thomas girod 9188565a86 Merge pull request #501 from ae-utbm/ci-cl-edit
Ci cl edit
2022-12-01 11:14:56 +01:00
Thomas Girod 4d7d22c337 edit yml to avoid git conflict when deploying on test 2022-12-01 10:07:03 +01:00
thomas girod b58116b023 Merge pull request #500 from ae-utbm/eboutic-3DSv2-patch
integration of 3D secure v2 for eboutic bank payment
2022-11-30 23:10:53 +01:00
Thomas Girod fe9e5ce861 integration of 3D secure v2 for eboutic bank payment 2022-11-30 22:52:56 +01:00
thomas girod e43d53e564 Merge pull request #497 from ae-utbm/eboutic-patch
Correct wrong et_autoanswer url
2022-11-16 23:47:24 +01:00
Thomas Girod d4a5039efc correct wrong et_autoanswer url 2022-11-16 23:33:22 +01:00
Thomas Girod 35506e0175 Revert "Merge pull request #496 from ae-utbm/eboutic-patch"
This reverts commit 1c27831f92, reversing
changes made to b92580943a.
2022-11-16 23:31:34 +01:00
thomas girod 1c27831f92 Merge pull request #496 from ae-utbm/eboutic-patch
hide bank payment button during investigation for bug
2022-11-16 22:17:04 +01:00
Thomas Girod cdbf07a835 hide bank payment button during investigation for bug 2022-11-16 22:14:16 +01:00
thomas girod b92580943a Merge pull request #495 from ae-utbm/eboutic-patch
Eboutic patch
2022-11-16 20:57:32 +01:00
Thomas Girod 60eff1000f second patch on eboutic 2022-11-16 20:41:24 +01:00
thomas girod 96510b270d bux fixing on new eboutic (#493)
- les alt des images des produits n'étaient pas bonnes
- les noms de produits avec une apostrophe dedans n'étaient pas cliquables
2022-11-16 19:08:58 +01:00
thomas girod 1281104d96 Merge pull request #490 from ae-utbm/taiste
Eboutic
2022-11-16 17:04:13 +01:00
Thomas Girod 3c1724fa81 Add warning message when user has no birthdate 2022-11-15 21:07:50 +01:00
Julien Constant 1630af4fbd Merge pull request #489 from TheRolfFR/remove-pinktober
Removing pinktober for AE
2022-11-14 21:04:58 +01:00
Yann LV e76e2b1537 Removing pinktober for AE 2022-11-14 20:40:19 +01:00
Thomas Girod 6c276dc596 resolved crash when user has no birthdate 2022-11-12 13:59:58 +01:00
thomas girod d3c115e3f9 Merge pull request #477 from imperosol/eboutic
Refonte de la boutique en ligne
2022-10-31 16:28:56 +01:00
Thomas Girod c245ef7149 refonte de la boutique en ligne 2022-10-31 16:15:16 +01:00
Thomas Girod 8b09ba2924 refonte de la boutique en ligne 2022-10-30 12:33:21 +01:00
thomas girod 52eb310f95 Merge pull request #486 from ae-utbm/taiste-ci-cl
add yaml config files for test deployment
2022-10-30 11:04:38 +01:00
Thomas Girod 5bff38fc7b add yaml config files for test deployment 2022-10-28 01:41:53 +02:00
Thomas Girod 2813a59323 Revert "add yaml config files for taiste deployment"
This reverts commit 89d6db4208.
2022-10-28 01:35:46 +02:00
Thomas Girod eef33fa263 Revert "revert push to wrong branch"
This reverts commit 241d3cea53.
2022-10-28 01:35:34 +02:00
Thomas Girod 241d3cea53 revert push to wrong branch 2022-10-28 01:10:00 +02:00
Thomas Girod 89d6db4208 add yaml config files for taiste deployment 2022-10-28 01:08:12 +02:00
thomas girod e0ad288cf4 Suppression des appels à la db de l'ancien site (#483) 2022-10-19 16:26:30 +02:00
TheRolf f4d7fae8ca Merge pull request #482 from ae-utbm/pinktober-patch-patch
Patch to fix the pinktober patch
2022-10-13 20:56:00 +02:00
Yann LV 95a7493fc1 Patch to fix the pinktober patch 2022-10-13 20:50:18 +02:00
thomas girod 8243dbcbef mend pinktober logo (#481)
* mend pinktober logo

* Increased contrast for links

Co-authored-by: Théo DURR <git@theodurr.fr>
2022-10-12 08:47:06 +02:00
Théo DURR c3a4071627 Edited navbar for pinktober (#480)
Design by @TheRolfFR
2022-10-11 21:55:19 +02:00
Alexandre cef3f22e0d Merge pull request #476 from ae-utbm/lsacienne/change_banner_to_invitation
Return to classical weekmail banner
2022-09-26 08:18:15 +02:00
lsacienne c206b965ad Return to classical weekmail banner 2022-09-25 21:44:56 +02:00
Julien Constant e868946fd7 Merge pull request #475 from imperosol/patch-1
update link for poetry install
2022-09-25 17:42:06 +02:00
Alexandre 254044c36b Merge pull request #474 from ae-utbm/lsacienne/change_banner_to_invitation
💄 Modification of banner
2022-09-25 17:26:48 +02:00
thomas girod c695d6f7a0 update link for poetry install 2022-09-25 12:06:29 +02:00
lsacienne feef855f01 💄 Modification of banner 2022-09-21 22:12:35 +02:00
Julien Constant b3a48ca5af Merge pull request #471 from ae-utbm/remove-gitlab-files
Added back the **git** .mailmap file
2022-09-11 23:54:03 +02:00
Julien Constant f3a52d094e Merge pull request #472 from ae-utbm/lsacienne/change_banner
💄 Modification of banner
2022-09-11 23:37:43 +02:00
lsacienne 2901bd919f 💄 Modification of banner 2022-09-11 23:17:29 +02:00
Julien Constant 0396a5bf2b Added back the **git** .mailmap file 2022-09-09 13:59:01 +02:00
Julien Constant b48ad16f04 Merge pull request #470 from ae-utbm/remove-gitlab-files
Remove old GitLab files
2022-09-02 20:13:20 +02:00
Julien Constant 7cc6250860 Delete thank_you.md 2022-09-02 19:53:41 +02:00
Julien Constant ae2e4b518d Removed old GitLab files & may fix auto_assign for reviewers 2022-09-02 19:49:28 +02:00
Julien Constant e9b9f3a62b Merge pull request #469 from ae-utbm/remove-calendar-page
Switched Calendar link to Elections list link (as it was unused)
2022-09-02 19:43:47 +02:00
Julien Constant 3321669726 Switched Calendar link to Elections list link (as it was unused) 2022-09-02 19:34:16 +02:00
Théo DURR 21fc85670e hot fix: Updated variable names & comments (#461)
- Fixed a wrong condition on the users subscribing history `read` permission.
- The comments are clearer and mentions how to specify clubs by their id.
2022-08-31 20:53:08 +02:00
Théo DURR 18a5ad6541 Merge pull request #460 from ae-utbm/integration-subscriptions 2022-08-31 18:51:40 +02:00
Théo DURR 71c5456225 Selected club members can now see subscriptions 2022-08-31 18:39:49 +02:00
Théo DURR 50e04164a2 Merge pull request #457 from ae-utbm/455-sentry-modal
Fixed some mess done on settings.py
2022-08-27 22:06:13 +02:00
Théo DURR 3b1d71f317 Merge pull request #458 from ae-utbm/actions
Editing workflow process
2022-08-27 22:00:54 +02:00
Théo DURR 65c2689578 Editing workflow process
Sentry new release only triggers when deployment is successful
2022-08-27 21:56:46 +02:00
Théo DURR b45673f04a Update settings.py 2022-08-27 21:54:20 +02:00
Théo DURR cb6e037f5e Fixed some mess done on settings.py 2022-08-27 21:52:16 +02:00
Théo DURR 5e6d60bb3a Merge pull request #456 from ae-utbm/455-sentry-modal
Updated sentry modal SDK
2022-08-27 21:47:59 +02:00
Théo DURR 64f8d9bad3 Function name refactor
So the name is clearer
2022-08-27 21:36:45 +02:00
Théo DURR 05b86e1f7a Black again 2022-08-27 21:23:49 +02:00
Théo DURR 700fed860d Code refactor and comments 2022-08-27 21:22:31 +02:00
Théo DURR 820bf6279b Modal window is now autocompleted if user is logged in 2022-08-27 20:14:31 +02:00
Théo DURR b97ce81dd2 Fixed black lint 2022-08-27 19:48:23 +02:00
Théo DURR f4dfd8f99c settings.DEBUG variable sets the sentry env to development
DSN still needs to be specified manually
2022-08-27 19:46:26 +02:00
Théo DURR 29139bf360 SENTRY_ENV can now be overriden in settings.py 2022-08-27 18:58:12 +02:00
Théo DURR 4f9c2724f5 Updated sentry modal SDK
Specified default environment for issues
2022-08-27 18:46:22 +02:00
Théo DURR 7a914f5e94 Merge pull request #451 from ae-utbm/django-3.2-migration
Edited deprecated code
2022-08-27 00:17:36 +02:00
Théo DURR 121d04e1d5 Merge branch 'master' into django-3.2-migration 2022-08-27 00:03:58 +02:00
Théo DURR fc6cdba8e2 Merge pull request #452 from ae-utbm/actions
Going back to actions again
2022-08-26 23:33:24 +02:00
Théo DURR 7f39ead159 This should work now 2022-08-26 23:32:43 +02:00
Théo DURR 1da82ac2dd Another regex 2022-08-26 23:31:33 +02:00
Théo DURR f2dcc39c14 No inspiration 2022-08-26 23:28:08 +02:00
Théo DURR 705dc56153 Testing another regex 2022-08-26 23:26:37 +02:00
Théo DURR 02047b62d7 Edited random file 2022-08-26 23:21:34 +02:00
Théo DURR 895d4b33a6 Going back to actions again 2022-08-26 23:19:29 +02:00
Théo DURR 142cb3316e Edited deprecated code
Fixes #449

See : https://docs.djangoproject.com/en/3.2/ref/forms/api/\#notes-on-field-ordering
2022-08-26 22:33:21 +02:00
Julien Constant 997fcc9fff Merge pull request #448 from ae-utbm/actions 2022-08-26 22:26:33 +02:00
Théo DURR ec65ca11d6 Added sentry release action (See: #444) 2022-08-26 21:33:18 +02:00
Théo DURR 0198027544 I forgot sth 2022-08-26 17:11:20 +02:00
Julien Constant 69e0550d4f Merge pull request #447 from ae-utbm/actions
Implemented diff file for CI
2022-08-26 17:09:13 +02:00
Théo DURR 9a1a5635e2 Implemented file diff (see: #445) 2022-08-26 17:04:09 +02:00
Théo DURR 863f9ff77e Added some safety to deploy script 2022-08-26 16:39:49 +02:00
Théo DURR 4146c4c5cb Merge pull request #443 from ae-utbm/actions
Unit tests do not run on master push
2022-08-26 16:24:23 +02:00
Théo DURR b3ad5c5df9 Unit tests do not run on master push
They are only trigerred on PRs
2022-08-26 16:12:17 +02:00
Théo DURR 9388e2dc88 Merge pull request #442 from ae-utbm/actions
Actions should work now
2022-08-26 14:54:42 +02:00
Julien Constant 56dec9eaa1 Added auto assign for PR 2022-08-26 14:43:51 +02:00
Théo DURR 596126f4f4 Actions seem to be operationnal 2022-08-26 14:39:10 +02:00
Théo DURR 8646b2c8f7 Rollback to previous version (see: https://github.com/appleboy/ssh-action/issues/174) 2022-08-26 14:10:37 +02:00
Julien Constant c81bb1fb90 Merge pull request #440 from ae-utbm/links-update
Updated links before moving to GitHub
2022-08-26 14:05:12 +02:00
Julien Constant d17a52a8d6 Updated links before moving to GitHub 2022-08-26 14:04:05 +02:00
Théo DURR 55e0eecc0b SSH Connection now works 2022-08-26 13:58:45 +02:00
Julien Constant 496adc17ea Updated links & moved to a markdown file 2022-08-26 13:58:21 +02:00
Théo DURR ab43d7d2df Testing things 2022-08-26 13:53:17 +02:00
Théo DURR 13f0bfe546 Enabled debug 2022-08-26 13:48:40 +02:00
Théo DURR 83a384145b Fixed spelling 2022-08-26 13:43:13 +02:00
Théo DURR 8a923761a5 Specified environment 2022-08-26 13:26:41 +02:00
Théo DURR 6e4a99eba3 Added sample deploy action 2022-08-26 13:20:57 +02:00
Théo DURR 0470aa185e Merge pull request #441 from ae-utbm/actions
First try for CI/CD using actions
2022-08-25 22:47:34 +02:00
Théo DURR 273371db8b Updated for merging into master 2022-08-25 22:46:30 +02:00
Théo DURR ed3aa0c328 Removed real tests during actions deployment 2022-08-25 22:45:33 +02:00
Théo DURR acfff6b103 Edited master to actions for testing purposes 2022-08-25 22:30:32 +02:00
Théo DURR ada4579193 Created deploy workflow & made a dry run 2022-08-25 22:23:13 +02:00
Théo DURR 3a17c3079e 0/10 en dictée 2022-08-25 21:23:48 +02:00
Théo DURR 26e46de8e1 Je sais pas écrire 2022-08-25 21:21:12 +02:00
Théo DURR 111bcc8e60 Fixed permission issue on apt-get 2022-08-25 21:19:23 +02:00
Théo DURR cdaa204ba2 Added bullshit 2022-08-25 21:17:19 +02:00
Théo DURR e85511fcb9 Initial unit testing action 2022-08-25 21:14:04 +02:00
klmp200 35c120a29f Merge branch 'download-all-my-pictures' into 'master'
Fix 'download all my picture button' being displayed in all albums sections

This MR fix the following issue where the download all button is displayed in each album (hence it's for all photos & not only by album)
![image](/uploads/c888e2bf8715d18cd2ea26e63f9fac28/image.png)

See merge request ae-utbm/Sith!320
2022-08-09 17:09:48 +00:00
klmp200 7c4c1bc387 Fix permissions on download pictures feature 2022-08-09 18:11:20 +02:00
Julien Constant 6e77edcf67 Fix 'download all my picture button' being displayed in all albums sections 2022-08-09 17:57:02 +02:00
Julien Constant | Tinople effed9c760 Merge branch 'download-all-my-pictures' into 'master'
Add feature to download all of your pictures as a user


See merge request ae-utbm/Sith!319
2022-08-09 13:51:04 +00:00
klmp200 0e5c8b53b0 Add missing translations and update doc 2022-08-07 16:45:18 +02:00
klmp200 47a332445c Add feature to download all of your pictures as a user 2022-08-07 16:08:56 +02:00
klmp200 c904b2d827 Merge branch 'fix/broken-js' into 'master'
Fix broken forms


See merge request ae-utbm/Sith!318
2022-08-06 12:53:30 +00:00
klmp200 f56263d6bd Fix broken forms 2022-08-06 14:28:35 +02:00
Théo | Ailé 0c2494cb34 Merge branch 'django-3.2' into 'master'
Upgrade to django 3.2

* Upgrade dependencies
* Fix ugettext
* Fix bad urls

See merge request ae-utbm/Sith!316
2022-08-05 18:46:24 +00:00
Théo | Ailé 9e5743a64c Merge branch 'defer-script-and-font-awesom' into 'master'
Update de base.jinja

Defer des balises script. Ajout de preload sur l'import de fontawesome. Changement de certains commentaires html en commentaires jinja.

Le deux premiers points devraient permettre de gagner un temps non-négligeable au chargement de la page.

See merge request ae-utbm/Sith!317
2022-08-05 18:12:29 +00:00
Maréchal | Thomas b5241ec75e Defer des balises script. Ajout de preload sur fa. 2022-08-05 13:22:09 +00:00
klmp200 4f00224f0d Update dependencies, apply black and fix wrong default SITH_COUNTER_OFFICES values 2022-08-04 18:42:29 +02:00
klmp200 320a896610 Fix tests and broken forms 2022-08-04 17:20:21 +02:00
klmp200 08924c5e05 Fix wrong url and set default auto field 2022-08-04 00:38:50 +02:00
klmp200 98bfc308a7 Minimal working version
* Upgrade dependencies
* Fix ugettext
* Fix bad urls
2022-08-04 00:28:09 +02:00
klmp200 dee24fbc9c Fix deprecation warnings 2022-08-03 21:48:37 +02:00
Alexandre | L'Sacienne 2556427c7d Merge branch 'lsacienne/invitation_banner2' into 'master'
💄 Change banner to invitation banner

We must set an invitation banner again. For the next one, we should create a new feature with a new button to avoid doing this switch every time.

See merge request ae-utbm/Sith!314
2022-07-04 19:23:28 +00:00
lsacienne a2b35e5bba 💄 Change banner to invitation banner 2022-07-04 14:03:50 +02:00
Alexandre | L'Sacienne 3e8f1acb96 Merge branch 'election-css' into 'master'
Improved Elections CSS for the table

- Everything can be seen without scrolling sideways (unless you're on a small screen)
- Each column makes the same size
- Candidate description/program is now below its profile picture
- If the candidate does not have any profile picture, the default one is shown
- The Edit/Delete message has been replaced with their corresponding emojis (they takes fewer spaces and doesn't need to be translated)
- Modified links at the bottom to look like buttons

<details><summary>Before</summary>
![image](/uploads/fd42e2fa027786612582d41c97090277/image.png)
</details>

<details><summary>This MR (root)</summary>
![image](/uploads/8350518422392f971d98f3c7ee48a558/image.png)
</details>

<details><summary>This MR (lambda user)</summary>
![image](/uploads/e6b66730e47556ea21230e89d2d06f83/image.png)
</details>

<details><summary>When a candidate is selected</summary>
![image](/uploads/adde527405fb321ba2023c36e06f4dc3/image.png)
</details>

See merge request ae-utbm/Sith!313
2022-06-15 19:13:47 +00:00
Julien Constant 85788977fe Moved file to correct place & improved CSS a bit 2022-06-15 15:32:16 +02:00
Julien Constant 066ca5bada This shouldn't be unminified 2022-06-15 01:57:57 +02:00
Julien Constant 41369f738e Improved Elections CSS for the table 2022-06-15 01:42:17 +02:00
Alexandre | L'Sacienne 67377b3cbf Merge branch 'lsacienne/change_weekmail_banner_P22_08_06_2022' into 'master'
Change the invitation banner in weekmail to regular weekmail banner

We now have the weekmail banner and not the invitation banner

See merge request ae-utbm/Sith!312
2022-06-14 09:18:26 +00:00
lsacienne ac3d668655 💄 CHange the invitation banner in weekmail
We now have the weekmail banner and not the invitation banner
2022-06-08 22:05:24 +02:00
Alexandre | L'Sacienne c57b15e159 Merge branch 'lsacienne/change_weekmail_banner_P22' into 'master'
Modification of the banner and footer for the Special General Meeting

There will be a special general meeting next week so we modify the banner to fit with this event.

See merge request ae-utbm/Sith!311
2022-06-01 21:14:38 +00:00
lsacienne 66efb8012e ♻️ Fix black pipeline 2022-06-01 22:46:12 +02:00
lsacienne cad0c0dadb 💄 Modification of the banner and footer
for the special invitation
2022-06-01 22:40:52 +02:00
lsacienne b32c90ed5d Add of weekmail footer 2022-06-01 22:39:44 +02:00
lsacienne 4d361dc67b Add of weekmail banner in 2 versions 2022-06-01 22:39:17 +02:00
lsacienne 2b170d91f7 Add of Invitation banner 2022-06-01 22:38:44 +02:00
Théo | Ailé 9e074d6ca6 Merge branch 'service_desk_reply' into 'master'
Update .gitlab/service_desk_templates/thank_you.md


See merge request ae-utbm/Sith!310
2022-05-26 13:46:54 +00:00
Théo | Ailé b655b2695b Update .gitlab/service_desk_templates/thank_you.md 2022-05-26 08:41:37 +00:00
Théo | Ailé 366aeed2ba Merge branch 'lsacienne/refilling_authorized_for_Bdf_ae' into 'master'
Add authorization to refill to the counters AE & BdF

Since the FIMU is coming, there is a necessity to allow access to physical refilling to the people who will manage the stands.

Therefore, We should authorize the refilling on the BdF and AE counter.

See merge request ae-utbm/Sith!309
2022-05-22 09:56:56 +00:00
Alexandre | L'Sacienne 454ae5f9e3 Add authorization to refill to the counters AE & BdF 2022-05-22 09:56:53 +00:00
lsacienne b811114425 fix black pipeline 2022-05-21 21:53:25 +02:00
lsacienne 712e7c8939 Add of verification on the counter 2022-05-21 12:23:34 +02:00
lsacienne 713cd92141 Modification of the settings to fit better with the code 2022-05-21 12:23:23 +02:00
lsacienne 4154b499b1 Add of a new settings for the counters AE & BdF 2022-05-21 09:45:28 +02:00
Théo | Ailé 253f204225 Merge branch '125-fix-family-tree' into 'master'
Ajout de pygraphviz en dépendance

Closes #125

On change également la version minimale de python (`3.7` -> `3.8`)

Closes #125

See merge request ae-utbm/Sith!306
2022-05-08 12:09:38 +00:00
Théo | Ailé 7241f3eb1d Ajout de pygraphviz en dépendance 2022-05-08 12:09:37 +00:00
Alexandre | L'Sacienne 2422f60898 Merge branch 'lsacienne/refilling_only_for_ae_member' into 'master'
Adds a Restriction for refilling

As it was asked by many members of the AE. I added a restriction applied to the barmens.
In fact, we oftenly loose money due to the physic refilling.
The goal with this change is to only allow **the members of the AE** to refill with physic money.

See merge request ae-utbm/Sith!303
2022-05-05 21:53:57 +00:00
lsacienne ba6599fa56 Add of tests 2022-05-05 23:24:08 +02:00
lsacienne f2666f6fb0 Replace the query by a function which already
existed
2022-05-02 00:04:00 +02:00
lsacienne b33839191d Fix black pipeline 2022-04-28 13:16:03 +02:00
lsacienne ee3e375dde Post request management 2022-04-28 11:13:07 +02:00
Théo | Ailé 5b0f7ca21b Merge branch 'skia/deploy_in_ci' into 'master'
gitlab-ci: deploy with Gitlab CI/CD

This MR is a proof-of-concept for deploying the Sith using Gitlab CI/CD. It leverage the CI variable to use a private key that is deployed for the `sith` user of `ae-web`. The `prod.sh` script shall do the rest.

TODO before merge:
* [x] Ensure the private key variable is protected (currently done, but may change during development to be used on this branch)
* [x] Remove this branch from the `only:refs` list
* [x] Change `test_prod.sh` for the real script

See merge request ae/Sith!293
2022-04-27 18:21:49 +00:00
Skia f581d91730 gitlab-ci: deploy with Gitlab CI/CD 2022-04-27 18:21:48 +00:00
lsacienne bbf362691b Change to use settings instead of hardcoding 2022-04-27 15:38:55 +02:00
lsacienne 15e2c8c7b3 Fix the balck pipeline 2022-04-27 15:38:14 +02:00
Théo | Ailé f838127730 Merge branch 'aile-master-patch-00174' into 'master'
Update badges and links on the readme


See merge request ae/Sith!305
2022-04-27 13:13:08 +00:00
Théo DURR d4c0bb3b0e Fix pipeline
Signed-off-by: Théo DURR <03ht@theodurr.fr>
2022-04-27 14:52:33 +02:00
Théo | Ailé b81aee3f1c Update badges and links 2022-04-27 09:50:38 +00:00
lsacienne c6caf5dbce Add of restriction for refilling 2022-04-20 14:01:33 +02:00
Théo | Ailé 7acc59f2cd Merge branch 'lsacienne/refilling_date' into 'master'
Add of date in the counter/refilling_list view

I only add a new field in the counter/refilling_list view which will *normally* display the date of each refilling.

See merge request ae/Sith!302
2022-04-19 10:28:09 +00:00
lsacienne 757ff7ead7 Add of date in the counter/refilling_list view 2022-04-19 12:02:22 +02:00
Théo | Ailé bc2fe16b74 Merge branch '117-django-2-2-not-compatible-with-psycopg-2-9' into 'master'
Resolve "Django 2.2 not compatible with psycopg 2.9"
Closes #117

See merge request ae/Sith!299
2022-04-18 20:21:19 +00:00
Théo | Ailé 35363d9ee7 Resolve "Django 2.2 not compatible with psycopg 2.9" 2022-04-18 20:21:18 +00:00
Théo | Ailé 52106db6fd Merge branch '118-black-pipeline-is-broken' into 'master'
Resolve "Black pipeline is broken"

Closes #118

Closes #118

See merge request ae/Sith!300
2022-04-18 18:33:39 +00:00
Théo | Ailé c4b1829e78 Resolve "Black pipeline is broken" 2022-04-18 18:33:36 +00:00
Théo | Ailé 489a9378c5 Merge branch 'poetry' into 'master'
Add missing dependencies and improve pipeline

* Use black version specified in requirements for checking with black
* Check if pyproject.toml file is valid at CI level
* Build documentation in CI
* Add missing postgres dependencie

See merge request ae/Sith!284
2022-03-26 21:27:22 +00:00
klmp200 28ae109b32 Add missing dependencies and improve pipeline 2022-03-26 21:27:20 +00:00
Alexandre | L'Sacienne e7a6a94ff2 Merge branch 'doc-windows-install' into 'master'
Added WSL Windows doc for the project install

Added steps to install the project on Windows using WSL :)

See merge request ae/Sith!291
2022-03-03 18:18:55 +00:00
Skia 234556a172 Merge branch 'skia/fix_eboutic' into 'master'
Multiple fixes

* Bump `black` and fix issues
* `club`: fix tests broken by inclusive translation
* `gitlab-ci`: use `poetry`, as `pip` was broken anyway
* `eboutic`: et_autoanswer: don't require 'Auto' to proceed checking the request: As described in the [doc](https://www.paybox.com/espace-integrateur-documentation/la-solution-paybox-system/gestion-de-la-reponse/), `Auto` may be missing if the payment failed. Thus, it's not required to proceed checking the bank's answer.

See merge request ae/Sith!296
2022-03-02 16:21:10 +00:00
Skia e4ddceabea club: fix tests with inclusive translation 2022-02-28 14:50:24 +01:00
Skia 05dd3ad642 gitlab-ci: use poetry 2022-02-28 10:34:15 +01:00
Skia 6c5db61a97 eboutic: et_autoanswer: don't require 'Auto' to proceed checking the request 2022-02-28 10:01:32 +01:00
Skia a0e4e9e8e3 Update 'black' version 2022-02-28 10:01:32 +01:00
lsacienne c66df77d4a Merge branch 'master' of https://ae-dev.utbm.fr/ae/Sith 2022-02-18 16:35:10 +01:00
lsacienne cfb6b34630 Updated roles to be more inclusive 2022-02-18 16:30:45 +01:00
Skia d8fd0adf47 Merge branch 'skia/et_autoanswer' into 'master'
eboutic: change HTTP return code to avoid blaming the bank's service

See merge request ae/Sith!295
2022-02-10 12:32:43 +00:00
Théo | Ailé 928ae13a8a Merge branch 'bugfix-113-error500' into 'master'
#113: bug fixed

See merge request ae/Sith!294
2022-02-10 12:30:55 +00:00
Skia c2e0ea70e4 eboutic: change HTTP return code to avoid blaming the bank's service 2022-01-04 15:50:36 +01:00
Julien Constant 782ce24895 Changed python3 to python 2021-12-02 12:22:34 +01:00
Cyrille b630742fd4 #113: bug fixed 2021-11-30 17:54:51 +01:00
Ailé b20df930a2 Merge branch 'feature-111-fixture_documentation' into 'master'
add fixture documentation

See merge request ae/Sith!292
2021-11-25 22:06:41 +00:00
Cyrille d60a96fc5c correct populate.rst 2021-11-23 23:44:34 +01:00
Julien Constant 05b0a0ab2f Adapted WSL doc to follow recommendation :) 2021-11-23 19:19:24 +01:00
Cyrille 9eb137e503 add fixture documentation 2021-11-22 21:37:10 +01:00
Julien Constant 7d797009bb Added WSL windows doc for project install 2021-11-19 13:10:18 +01:00
Ailé 3c1818f229 Merge branch 'family_rework' into 'master'
Updated text and translations to be more inclusive

See merge request ae/Sith!290
2021-11-18 15:38:13 +00:00
Ailé d8b69e9b45 Updated text and translations to be more inclusive 2021-11-18 16:24:14 +01:00
Ailé 9177c9d4c2 Merge branch 'bugfix-110-ClubSellings' into 'master'
Fix error 500 in club sellings

Closes #110

See merge request ae/Sith!289
2021-11-18 14:32:11 +00:00
Cyrille Stroesser 5195352975 fixed black pipeline 2021-11-18 15:14:39 +01:00
Cyrille Stroesser deb8f865df fix #110 2021-11-18 15:04:25 +01:00
Ailé 5b2c70e4fb Merge branch 'gender_options' into 'master'
Fix pronouns field being mandatory

See merge request ae/Sith!288
2021-11-18 09:07:21 +00:00
Cel f66db0859e Fix pronouns field being mandatory 2021-11-18 09:07:19 +00:00
Ailé b6488d1d00 Merge branch 'poor_logo_quality' into 'master'
Updated somo logo size where they looked blurry (we love responsive)

See merge request ae/Sith!287
2021-11-10 11:33:05 +00:00
Ailé 6a4ac336ad Updated somo logo size where they looked blurry (we love responsive) 2021-11-10 12:11:07 +01:00
Ailé 7ac6dcf8a0 Merge branch 'family_rework' into 'master'
Edited the word "GodFather" to "Family"

See merge request ae/Sith!286
2021-11-10 10:35:40 +00:00
Ailé c6a3677cc5 Fixed duplicated translation 2021-11-05 21:11:52 +01:00
Ailé 707459acd6 Changed word 'Godfather' to 'Family' 2021-11-05 21:01:19 +01:00
Ailé 6390c3320e Applied black on migration 2021-11-05 20:40:20 +01:00
Ailé b8aabc466c Fixed locales
+Pronoun description on the user's profile

Signed-off-by: Ailé <03ht@theodurr.fr>
2021-11-05 20:28:37 +01:00
Théo DURR c66e4232b9 Merge branch 'master' into gender_options
Signed-off-by: Théo DURR <03ht@theodurr.fr>
2021-11-05 17:18:17 +01:00
Ailé 336450d43f Merge branch 'add-promo-logos' into 'master'
Add missing promo logos

Closes #107

See merge request ae/Sith!285
2021-10-27 10:22:07 +00:00
Julien 7e66aadd6f Add missing promo logos 2021-10-27 08:37:58 +02:00
klmp200 bf2b796936 Merge branch 'poetry' into 'master'
Using poetry as a dependency system for development

See merge request ae/Sith!281
2021-10-15 16:12:59 +00:00
klmp200 85623f48a9 Using poetry as a dependency system for development 2021-10-15 16:12:56 +00:00
Celeste 4fbee9c3de Make pronouns visible on profile and miniprofile 2021-10-13 08:59:40 +02:00
Skia bfa3b45547 counter_click.jinja: fix error display with Vue 2021-10-11 22:09:45 +02:00
Celeste 677a9da469 Merge branch 'master' into gender_options 2021-10-11 17:13:06 +02:00
Céleste 1f7752d457 Add pronouns to profile ; Update gender settings
Add pronouns to option list in profile
Modify "Sex" translation to "Genre"
Added "Other" to sex option list (alongside Man and Woman)

update DB,add default value to Pronouns field

Update views.py
2021-10-06 14:12:34 +02:00
Skia 89979dbf61 com: news list: fix UI for admins 2021-10-03 19:08:14 +02:00
Skia 8d1abb8f33 Add .mailmap file for cleaner stats 2021-10-03 18:44:47 +02:00
Skia 2df3494c3b Merge branch 'skia/weekmail_fix' into 'master'
com: fix weekmail for the case of non-existing email addresses

See merge request ae/Sith!282
2021-10-03 16:35:41 +00:00
Skia 39bb490257 com: fix weekmail for the case of non-existing email addresses
If an email address is set as destination for the Weekmail, the SMTP may
refuse it, and `smtplib` will throw a `SMTPRecipientsRefused` error,
containing the list of refused addresses. This commit provides an
interface for the weekmail sender to quickly unsubscribe the faulty
users, so that the next try sending the weekmail can be performed
successfully.
2021-10-03 18:16:51 +02:00
Skia 7a7aad0503 style: fix header bar on medium size screens 2021-10-03 16:08:53 +02:00
Skia b157a3fa90 Merge branch 'skia/mobile_ui' into 'master'
Add a first version of a mobile friendly UI

Although not perfect and with many flaws, this should still allow far
easier navigation on mobile devices.

See merge request ae/Sith!280
2021-10-01 17:05:11 +00:00
Skia 1b688a8aa5 Add a first version of a mobile friendly UI
Although not perfect and with many flaws, this should still allow far
easier navigation on mobile devices.
2021-10-01 18:44:14 +02:00
Skia e8978cc065 sith/toolbar_debug: don't fail when there is no template 2021-10-01 14:08:57 +02:00
Skia 7fd68e4825 Merge branch 'skia/ci_speedup' into 'master'
CI speedup

* Put the Xapian search index in `/dev/shm`, which is an in-memory storage makes the tests go from about 1500s to about 600s.
* Keep the `pip` cache between jobs, to avoid re-downloading all the wheels all the time. This gains about 1min.

See merge request ae/Sith!279
2021-09-30 10:58:49 +00:00
Skia 4119eefe37 gitlab-ci: keep pip cache between jobs 2021-09-30 12:07:00 +02:00
Skia aafc2e6e96 gitlab-ci: put search_indexes in shared memory 2021-09-30 12:07:00 +02:00
Skia 2cbe6fa11c Merge branch 'genderMatmatroncheV2' into 'master'
Remove gender option of matmatronche & update gender settings

Afin de se mettre à jour il est dorénavant possible de ne pas définir son genre sexué sur l'édit de son profil. D'ailleurs j'ai découvert que de base pour un profil random le sexe était défini sur "Homme" maintenant il est en "-------" !

![image](/uploads/43e9f32dc545b35cbe422a53602b2457/image.png)

De plus afin que personnes n'utilisent l'outil matmatronche à des fins de site de rencontres en cherchant uniquement les "Homme" ou les "Femme" d'une promo etc... Le choix du sexe dans la recherche a été supprimé.

![image](/uploads/e6e75d5661862178acfbe71f3f7efc35/image.png)

C'est la première fois que je fais une modification en solo alors n'hésitez pas à me casser en deux et m'expliquer si j'ai fauté :D

See merge request ae/Sith!264
2021-09-29 15:57:52 +00:00
CHARMEAU eec7bcf296 Remove gender option of matmatronche & update gender settings 2021-09-29 17:29:01 +02:00
Skia 6c45de34a4 Merge branch 'poster' into 'master'
[com]: add helper_text for resolution and format of poster

See merge request ae/Sith!209
2021-09-29 14:56:30 +00:00
Cyl 61a40c47d2 [com]: add helper_text for resolution and format of poster 2021-09-29 16:09:05 +02:00
Skia 007157e2e8 Merge branch 'datetime-hell2' into 'master'
core: create TzAwareDateTimeField to replace forms.DateTimeField

Follow up of !267. I read about Gitlab's slash and merge just after I did my own kind by resetting back to the original commit and creating one commit manually. Sublime merge helps but I still need more practice. :)

What was the right way to group every commit under one?

See merge request ae/Sith!270
2021-09-29 13:53:12 +00:00
tleb 49a0ade315 core: create TzAwareDateTimeField to replace forms.DateTimeField 2021-09-29 15:24:06 +02:00
Skia 782cd9a45a Merge branch 'sexy-search' into 'master'
Sexy search

The goal of this MR is to solve the search issue #96. Let's assume we have a user with firstname `Jean-François`, lastname `Du Pont` and nickname `Ai'gnan`. Here is a list of search that did not include him previously but now includes him (was and still is case-insensitive):

* `jean françois` (missing -) ;
* `jean-francois` (missing ç) ;
* `jean francois` (both) ;
* `dupont` (space) ;
* `françois` (not the start of his name) ;
* `aignan` (missing ').

You get it, there are a lot of mistakes that humans can do. It also sorts results by `User.last_update` to avoid putting old accounts at the top of common requests (such as firstname-only or lastname-only requests).

### How it works

For those who don't know, the search is handled by Xapian (the search backend) through the haystack library which provides a Django-friendly interface to multiple search backends. Xapian maintains kind of a duplicate of the database (only for models against which we want to search something) which is optimised for search operations. Its "models" are called "indexes" (see `core.search_indexes.UserIndex` for the user model).

Every time a user is created or modified, it is indexed (through a signal handler) so that Xapian knows about it. For the user search, what is indexed is the string outputted by the `core/templates/search/indexes/core/user_auto.txt` template. For our example from above, it looks like this:

```
jean francois
du pont
aignan
jeanfrancois
dupont

jeanfrancoisdupont
```

As you can see, unicode is removed. There also are kind-of duplicates with different spacing as we are using an autocomplete algorithm: it searches from the beginning of words.

The one I am not sure about is the last one. Its goal is to allow searching without putting a space between the firstname and lastname. Is this useful?

The prod will have to do a `./manage.py update_index`, not sure it does it in the upgrade script.

See merge request ae/Sith!269
2021-09-28 00:14:38 +00:00
tleb 6382e631b6 search: reduce user index size 2021-09-28 01:44:15 +02:00
tleb 12493cffca search: make sure we don't have indexes that are too long 2021-09-28 01:44:15 +02:00
tleb a38ab57ddf search: sort by User.last_update 2021-09-28 01:44:15 +02:00
tleb 30091ef69c search: ascii everywhere and unformalized whitespace 2021-09-28 01:44:15 +02:00
Skia 1a483bfa2c Merge branch 'och' into 'master'
Settings: Added new subscription for the new CA offer

This year we made a new deal with the CA: if a student open an account, they give us 50€ and the student 80€ with on year of subscription.

See merge request ae/Sith!276
2021-09-27 23:31:46 +00:00
Francesco 1a091951e8 Added new subscription for the new CA offer 2021-09-28 01:11:23 +02:00
Skia bfb66b352a Merge branch 'dep-hell2' into 'master'
core: add ./manage.py check_front command and call it on runserver

See #92 and !268.

This simplifies checking that front-end dependencies are up to date. It does not allow one to update an outdated dependency. That must be done manually (would otherwise require depending on a CDN or add npm as a dependency). A manual update will make sure changelogs are read and changes will be made appropriately.

We add a `check_front` command to `manage.py` and run it on calls to `runserver`.

This MR does not update any dependency as it is not its goal. MR incoming!

Should doc be added? It seems pretty simple and I don't see what should be documented: if it's red, update it.

~"Review TODO" @sli

See merge request ae/Sith!271
2021-09-27 20:23:35 +00:00
tleb be26e3df7f core: add ./manage.py check_front command and call it on runserver 2021-09-27 22:00:36 +02:00
Skia cb3307509d Merge branch 'skia/counter_rework' into 'master'
counter: make click page dynamic to avoid repetitive loading

See merge request ae/Sith!278
2021-09-27 19:21:28 +00:00
Skia a3158253a7 Black update 2021-09-26 13:58:39 +02:00
Skia 406380e4f1 counter: make click page dynamic to avoid repetitive loading
This makes the whole click page load only once for a normal click
workflow. The current basket is now rendered client side with Vue.JS,
and the backend view is able to answer with JSON if asked to.

This should lighten the workflow a lot on the client side, especially
with poor connectivity, and the server should also feel lighter during
big events, due to far less complex Jinja pages to render.
2021-09-26 13:58:39 +02:00
Skia efb70652af counter: redirect to counter main when barman login is timed out 2021-09-26 13:58:39 +02:00
Skia 05256bb99a counter: templates: click: JS clean up 2021-09-26 13:58:39 +02:00
Skia 64d0cc2fa8 counter: don't display info boxes and navigation menu
This will lighten the pages and make the functionality directly
accessible without ever scrolling the header garbage that is never
needed on those pages.
2021-09-26 13:58:39 +02:00
Skia f5d7267ba7 Merge branch 'skia/fix_ci' into 'master'
Fix CI

See merge request ae/Sith!277
2021-07-21 13:16:02 +00:00
Skia 24c0a21cc1 locale: update with latest code version 2021-04-23 12:02:03 +02:00
Skia 6a352d642b accounting: fix tests with a computed date instead of hard-coded one 2021-04-23 12:02:03 +02:00
klmp200 48ae1f7c1c Merge branch 'och' into 'master'
Edited subscriptions

See merge request ae/Sith!275
2020-09-01 00:21:48 +02:00
Francesco Witz aaf1adaaa1 sith: Added a new subscription 2020-08-30 23:53:19 +02:00
klmp200 f34f5fe693 Upgrade black and format accordingly 2020-08-27 15:59:42 +02:00
klmp200 f485178422 Merge branch 'och' into 'master'
settings: Added a new subscription

See merge request ae/Sith!274
2020-06-18 00:23:51 +02:00
Och 797ca0f926 settings: Added a new subscription 2020-06-18 00:23:51 +02:00
klmp200 390a4b0064 Merge branch 'bugfix' into 'master'
cache: fix error 500 with new django version

See merge request ae/Sith!273
2020-06-16 19:11:49 +02:00
klmp200 94b029dc9c cache: fix error 500 with new django version 2020-06-12 20:44:37 +02:00
klmp200 45d5728c3e Merge branch 'skia/lazy_load_user_pictures' into 'master'
core: add lazy loading in user pictures page

See merge request ae/Sith!272
2020-06-12 20:19:34 +02:00
Skia 6eabbaf209 core: add lazy loading in user pictures page 2020-05-15 12:14:14 +02:00
klmp200 03fdd0b947 Merge branch 'trombi' into 'master'
trombi: raw tool for trombi admins to add a club membership to a trombi member

See merge request ae/Sith!266
2020-03-23 21:12:58 +01:00
klmp200 fb8faacddc trombi: raw tool for trombi admins to add a club membership to a trombi member 2020-03-22 16:14:37 +01:00
klmp200 7ee4557ab5 Merge branch 'fix-webcam-error' into 'master'
Front: turn Webcam.js error from an alert to a console log

See merge request ae/Sith!265
2020-03-05 19:20:22 +01:00
tleb 5accdbccbb Front: use Webcam.on() for error handling 2020-03-04 07:13:16 +01:00
tleb 7fb26f9e45 Front: turn Webcam.js error from an alert to a console log 2020-03-03 09:01:20 +01:00
CHARMEAU 26a07f722d Remove gender option of matmatronche & update gender settings 2020-02-16 17:51:51 +01:00
klmp200 9176a03a8a Merge branch 'bugfix' into 'master'
Fix some SAS and forum errors

Closes #89

See merge request ae/Sith!263
2019-12-17 12:03:28 +01:00
klmp200 4a1bfc366d sas: fix 500 error when tagging the same user twice or adding a non existing user 2019-12-17 11:25:17 +01:00
klmp200 ebee8c34e1 forum: fix ForumTopicSubscribeView error 500 with anonymous user 2019-12-16 15:00:33 +01:00
klmp200 4ecad1c73b Revert "PÈRE 200 !!!!!!!!!!! PÈRE 200 !!!!!!!! TRALALALALÈREEEEUUUU !!!!"
This reverts commit d1b3a4d3f6.
2019-12-10 15:31:37 +01:00
klmp200 d1b3a4d3f6 PÈRE 200 !!!!!!!!!!! PÈRE 200 !!!!!!!! TRALALALALÈREEEEUUUU !!!! 2019-12-09 03:16:57 +01:00
klmp200 40832bb3bf Merge branch 'clubs' into 'master'
Improve Sellings view for clubs

See merge request ae/Sith!262
2019-11-29 16:32:18 +01:00
klmp200 4a78157f9a club: fix typo on ClubSellingView 2019-11-28 15:14:51 +01:00
klmp200 bf5fc8750d club: steam CSV download for SellingView 2019-11-28 14:52:33 +01:00
klmp200 274a7b7137 core/club: allow adding custom js action to pagination link, useful for FormDetailView with pagination 2019-11-28 01:46:41 +01:00
klmp200 8dd2c02d3e club: add pagination for ClubSellingView 2019-11-28 00:30:51 +01:00
klmp200 a73f5cb270 club: use sums in bdd for ClubSellingView 2019-11-27 21:37:59 +01:00
klmp200 7d40e11144 club: ClubSellingView way faster and with multiple selections everywhere 2019-11-27 20:59:32 +01:00
klmp200 af48553e35 club: separation between archived products and non archived ones 2019-11-27 16:23:14 +01:00
klmp200 ad8bcc7282 Merge branch 'bugfix' into 'master'
com: fix 500 error when utbm mail server refuse weekmail

See merge request ae/Sith!260
2019-11-25 14:18:22 +01:00
klmp200 22a44415e4 Merge branch 'sli' into 'master'
core: add UserIsRootMixin and an admin delete view for memberships

See merge request ae/Sith!261
2019-11-25 13:32:46 +01:00
klmp200 6a153719f9 com: fix 500 error when utbm mail server refuse weekmail 2019-11-25 13:30:47 +01:00
klmp200 5c8fa1b9e7 core: add UserIsRootMixin and an admin delete view for memberships 2019-11-24 19:23:43 +01:00
klmp200 d82679e3d7 Merge branch 'documentation' into 'master'
add autoreload/build to documentation server and enhace documentation

See merge request ae/Sith!246
2019-11-21 15:06:13 +01:00
klmp200 9cb432a082 doc: correct documentation for groups 2019-11-21 11:11:25 +01:00
klmp200 869d29d4a4 doc: corrections for populate documentation 2019-11-21 11:10:31 +01:00
klmp200 c3d2e64a43 doc: add infos on populate command with group and users available 2019-11-20 18:51:13 +01:00
klmp200 e1770ec52c doc: add documentation for groups 2019-11-20 17:55:00 +01:00
klmp200 1256744f1b documentation: add autoreload and build for documentation server 2019-11-20 17:03:18 +01:00
klmp200 77dddbc581 documentation: add help ressources and update installation instructions 2019-11-20 17:03:18 +01:00
klmp200 bfa4000365 Merge branch 'eboutic' into 'master'
eboutic: don't display future account balance if contains refilling item

See merge request ae/Sith!258
2019-11-14 19:31:19 +01:00
klmp200 50c2f8164d Merge branch 'deletion_logs' into 'master'
Add generic operation logs and implements it for Sellings and Refilling deletions

See merge request ae/Sith!259
2019-11-14 19:29:55 +01:00
klmp200 5c30de5f22 core: redesign request middleware with django latest design and better use of threading 2019-11-14 16:32:29 +01:00
klmp200 1c03ce621f core: remove default value for OperationLog 2019-11-14 16:11:20 +01:00
klmp200 e634cda318 core/counter: add generic operation logs and implements it for Sellings and Refilling deletions 2019-11-14 01:14:44 +01:00
klmp200 3501703c15 eboutic: don't display future account balance if contains refilling item 2019-11-05 19:50:08 +01:00
klmp200 129f2e53ee Merge branch 'galaRequests' into 'master'
eticketListView: product id instead of eticket id

See merge request ae/Sith!257
2019-11-05 11:23:52 +01:00
klmp200 209867b3a8 black: makes new version happy 2019-11-04 13:46:09 +01:00
Robin Trioux 59511d255f eticketListView: product id instead of eticket id 2019-11-03 20:58:20 +01:00
klmp200 f42daa01c5 Merge branch 'add-account-amount' into 'master'
Add the account amount to the eboutic

See merge request ae/Sith!254
2019-10-28 23:37:33 +01:00
tleb 29ee1b05af Merge branch 'master' into 'add-account-amount'
# Conflicts:
#   locale/fr/LC_MESSAGES/django.po
2019-10-28 15:48:54 +01:00
klmp200 42055b9001 Merge branch 'auto-uv-pedagogy' into 'master'
Auto fill UVs in pedagogy

See merge request ae/Sith!253
2019-10-25 12:09:39 +02:00
tleb 00c96f5b71 eboutic: fix account amount 2019-10-24 14:40:26 +02:00
tleb 5cc7eff94f pedagogy: uv autofill finishing touches 2019-10-24 14:18:29 +02:00
klmp200 28077ef0b0 Merge branch 'fix-create-club' into 'master'
club: fix 500 on club_new

See merge request ae/Sith!256
2019-10-22 08:34:08 +02:00
tleb 143b128891 club: fix 500 on club_new 2019-10-21 22:56:24 +02:00
tleb 6b06b647bc eboutic: add p tag in makecommand 2019-10-21 22:10:38 +02:00
tleb 413c613c9f Fix translation for basket account amount 2019-10-21 22:06:56 +02:00
tleb 1c0d15ba2a settings: fix black report 2019-10-21 21:17:11 +02:00
tleb 28bd6b8708 uv: make autofill available on edit page 2019-10-21 17:10:16 +02:00
tleb 419a48ac3a /pedagogy/uv/create put urls in settings 2019-10-21 17:01:21 +02:00
tleb 6fce27113a /pedagogy/uv/create use quick notif 2019-10-21 16:52:51 +02:00
tleb 53a7633700 uv: Add error handler to uv autofill 2019-10-21 10:34:46 +02:00
tleb 4094394cef api: typo in doc comment 2019-10-21 08:13:36 +02:00
klmp200 f533c39e67 api: fix uv manager acquisition if uv is only available in spring 2019-10-21 02:10:09 +02:00
tleb 86bc491df4 Fix UV_endpoint auth 2019-10-20 18:26:11 +02:00
tleb 4759551c16 Autofull UV small changes 2019-10-20 17:09:36 +02:00
tleb b057dbfd60 Initial add account amount in eboutic 2019-10-18 21:41:39 +02:00
tleb bddb88d97f Comment UV API and fix little bugs 2019-10-18 18:13:53 +02:00
tleb dbe44a9c1c Fix hour count and submit button 2019-10-18 01:45:49 +02:00
tleb eeb791c460 Initial autofill on UV 2019-10-18 01:28:59 +02:00
klmp200 6d0eba6bcf Merge branch 'rework-front' into 'master'
Markdown widget follows the required attribute

See merge request ae/Sith!249
2019-10-17 14:47:56 +02:00
klmp200 4d04b21f04 Merge branch 'cleanup-forms' into 'master'
Remove unused multiple-select library

See merge request ae/Sith!250
2019-10-17 14:46:02 +02:00
klmp200 2f1b26053b Merge branch 'fix-news-form' into 'master'
Fix 500 when a news needs a start_date and/or end_date but we don't provide

See merge request ae/Sith!252
2019-10-17 14:42:41 +02:00
klmp200 1848945d64 Merge branch 'bugfix' into 'master'
Fix huge permission problem inducing server memory leaks for etickets

See merge request ae/Sith!251
2019-10-17 12:36:57 +02:00
klmp200 9278419345 core: rename GenericContentPermission into GenericContentPermissionMixinBuilder 2019-10-17 11:56:02 +02:00
klmp200 566dcc7aee counter: fix Selling view permission 2019-10-17 11:24:52 +02:00
klmp200 a6088c0e4a core: refactor permissions mixins 2019-10-17 11:24:51 +02:00
tleb 60c9498a56 Fix 500 on news creation/edition 2019-10-17 10:25:29 +02:00
klmp200 241650c171 counter: fix eticket server crash induced by old permission system and fix Selling permission 2019-10-16 21:21:51 +02:00
klmp200 811809895e club: fix mailing list form that unexpectedly relied on try catch in permissions 2019-10-16 21:21:06 +02:00
klmp200 fe9164bfef core: don't use try/except to catch type of view in permissions mixins 2019-10-16 19:28:32 +02:00
tleb ad3f003fbb Remove unused multiple-select library 2019-10-16 14:28:53 +02:00
tleb 7ecb057b68 Isolate easymde instances so that they can be referenced 2019-10-16 12:18:23 +02:00
tleb e932abfa74 Prevent pressing submit if the Markdown widget is empty 2019-10-15 10:41:10 +02:00
tleb 0011f4c7b0 Only register onchange once the submit button has been pressed 2019-10-15 10:23:15 +02:00
tleb 13312e9879 Highlight a markdown input in red if required and submit is pressed
Kind of copy the behaviour of a Firefox input
Once the submit button has been pressed, highlight in red the text
input if it's required but empty
2019-10-15 09:54:10 +02:00
tleb ced90c23db More JS-like, callback as last argument 2019-10-15 09:53:44 +02:00
klmp200 42f5773f51 Merge branch 'fix-guy-feature' into 'master'
Fix the guyguy "feature" on the profile page

See merge request ae/Sith!248
2019-10-15 00:26:04 +02:00
klmp200 b270c76249 Merge branch 'galaRequests' into 'master'
Some gala requests: new minor features

See merge request ae/Sith!247
2019-10-14 22:55:55 +02:00
tleb 34df825718 Fix the guyguy "feature" on the profile page 2019-10-14 23:49:32 +03:00
Cyl aac4e3b99c Minor fix for requestGala 2019-10-14 00:32:11 +02:00
Robin Trioux 5a55a6c642 E-ticket link is sent in the email 2019-10-13 19:02:25 +02:00
Robin Trioux 65c3483c1f core:login allow the user to create an account when not logged 2019-10-13 18:43:30 +02:00
klmp200 660a3161f5 Merge branch 'new_django' into 'master'
upgrade to django 2.2

See merge request ae/Sith!243
2019-10-12 23:19:26 +02:00
klmp200 9e6c4b32e3 Merge branch 'bugfix' into 'master'
Fix error when editing poster while being admin

See merge request ae/Sith!245
2019-10-09 18:11:05 +02:00
klmp200 25225fc451 com: fix error when editing poster while being admin 2019-10-09 17:43:23 +02:00
klmp200 c3f2d0a134 django2.2: unlock djangorestframework version limit 2019-10-08 22:46:38 +02:00
klmp200 cd2d3ee6b4 django2.2: fix tests for accounting 2019-10-08 22:46:38 +02:00
klmp200 81fcf411c1 django2.2: forms fixs for new API 2019-10-08 22:46:38 +02:00
klmp200 d7075eb762 django2.2: fix breaking change for getting uploaded files size 2019-10-08 22:46:38 +02:00
klmp200 cf3f5ea60c django2.2: fix django server crash because of breaking change in widget rendering method 2019-10-08 22:46:37 +02:00
klmp200 59185ab2a8 django2.2: rewrite login and password stack because of removed API 2019-10-08 22:46:37 +02:00
klmp200 a177fa8232 django2.2: replace deprecated base_name with basename in urls 2019-10-08 22:46:37 +02:00
klmp200 308cf30a5a django2.2: replace deprecated login view 2019-10-08 22:46:37 +02:00
klmp200 99c8d95443 django2.2: remove direct assignments to many-to-many fields 2019-10-08 22:46:37 +02:00
klmp200 97c316b62e django2.2: replace removed is_anonymous() and is_authenticated to their now used counterparts 2019-10-08 22:46:03 +02:00
klmp200 90921fd4cd django2.2: some migrations to make django happy 2019-10-08 22:46:03 +02:00
klmp200 296cc4144c django2.2: remove SessionAuthenticationMiddleware
See https://docs.djangoproject.com/en/2.2/releases/2.0/ for more details
2019-10-08 22:46:03 +02:00
klmp200 f7548ab8d1 django2.2: add on_delete on migrations for OneToOneField 2019-10-08 22:46:03 +02:00
klmp200 3cb306bc91 django2.2: add on_delete on migrations for ForeignKey 2019-10-08 22:46:03 +02:00
klmp200 c20d5855e4 django2.2: remove view_page permission as it clash with built-in permission
Need a bit of discussion as I'm not an expert in django built-in permissions
An issue on github says it's related to https://docs.djangoproject.com/en/2.1/releases/2.1/#considerations-for-the-new-model-view-permission
2019-10-08 22:46:02 +02:00
klmp200 00bd60ef4f django2.2: add exception parameter in forbidden and not_found views 2019-10-08 22:46:02 +02:00
klmp200 b8c7fb6f74 django2.2: adapt ChoiceField to the new API 2019-10-08 22:46:02 +02:00
klmp200 df531198c9 django2.2: fix urls and adapt them to new format 2019-10-08 22:46:02 +02:00
klmp200 12b6f0d488 django2.2: adapt DateTimeField in forms with the new API 2019-10-08 22:46:02 +02:00
klmp200 6cc234e8d3 django2.2: add default mandatory on_delete on OneToOneField 2019-10-08 22:46:02 +02:00
klmp200 4dadb1dbc0 django2.2: add default mandatory on_delete on all ForeignKey 2019-10-08 22:46:01 +02:00
klmp200 2616e8b24c django2.2: relpace django.core.urlresolvers by django.urls 2019-10-08 22:46:01 +02:00
klmp200 be855c6c90 django2.2: migrate url to re_path 2019-10-08 22:46:01 +02:00
klmp200 7be9077fce Merge branch 'documentation' into 'master'
write a new shiny and comprehensive documentation

See merge request ae/Sith!224
2019-10-08 22:42:19 +02:00
klmp200 d48c09a914 documentation: revise title levels on git documentation 2019-10-08 22:13:29 +02:00
krophil d5c3dbf864 Add git introduction 2019-10-08 20:22:36 +02:00
klmp200 2a9b89fd2a core: remove README wiki page that wasn't helpful and anyway broken with rst files 2019-10-08 11:12:22 +02:00
klmp200 c73f4ca847 documentation: add CONTRIBUTING 2019-10-08 11:08:47 +02:00
klmp200 d63b5335d4 documentation: apply corrections suggested in comments 2019-10-08 11:08:33 +02:00
klmp200 a766f7137c documentation: add instructions for direnv 2019-10-08 00:59:19 +02:00
klmp200 5c3c14ab37 core: wrap compilemessages to avoid compiling whole env and avoid crash at sphinx messages compilation 2019-10-08 00:59:00 +02:00
klmp200 775413ac7e documentation: weekmail documentation 2019-10-07 23:58:04 +02:00
klmp200 1f271c75f0 documentation: add instructions to add and edit subscriptions 2019-10-07 23:51:38 +02:00
klmp200 4df152185e documentation: rewrite README and remove TODO 2019-10-07 23:51:38 +02:00
klmp200 c83b30f27b documentation: add doc compile test in pipeline 2019-10-07 23:51:38 +02:00
klmp200 db10f7b963 documentation: tutorial about rights management 2019-10-07 23:51:37 +02:00
klmp200 ed68c2cb38 documentation: move documentation about usage in production 2019-10-07 23:51:37 +02:00
klmp200 a6c8dea190 documentation: move markdown syntax documentation and move helper for counting lines 2019-10-07 23:51:37 +02:00
klmp200 124eaf42cd documentation: add models manipulation in hello world tutorial 2019-10-07 23:51:37 +02:00
klmp200 5489096bf5 documentation: add explanation on MVT and explain project structure 2019-10-07 23:51:37 +02:00
klmp200 3a425c6792 documentation: add infos about fontawesome + tests instructions + more external doc 2019-10-07 23:51:37 +02:00
klmp200 8809753108 documentation fix tests because of missing README.md 2019-10-07 23:51:37 +02:00
klmp200 4428a2e89c documentation: add hello world app tutorial 2019-10-07 23:51:36 +02:00
klmp200 0616597bf2 documentation: remove CONTRIBUTING and migrate its content in the doc 2019-10-07 23:51:36 +02:00
klmp200 782a763046 documentation: update instructions, add down loadable files and add all pdf reports for download purpose 2019-10-07 23:51:36 +02:00
klmp200 8dcade6890 documentation: remove Doxygen, include README into doc update tech and install 2019-10-07 23:51:36 +02:00
klmp200 dd49d71cb7 documentation: installation instructions 2019-10-07 23:51:36 +02:00
klmp200 b0b52fd714 documentation: technologies presentation 2019-10-07 23:51:36 +02:00
klmp200 ef40baaa84 documentation: bump sphinx version 2019-10-07 23:51:35 +02:00
klmp200 7c259bf26b documentation: write introduction 2019-10-07 23:51:35 +02:00
klmp200 05e5008305 documentation: base structure for new documentation 2019-10-07 23:51:35 +02:00
klmp200 448f5ff40f Merge branch 'com' into 'master'
com: fix error 500 when editing poster with com admin

See merge request ae/Sith!242
2019-10-06 17:55:30 +02:00
klmp200 5482f1174d Merge branch 'trombi' into 'master'
trombi: permissions fixs

See merge request ae/Sith!241
2019-10-02 17:30:46 +02:00
klmp200 2da0560ec8 com: fix error 500 when editing poster with com admin 2019-10-02 15:32:33 +02:00
klmp200 5151fc3792 trombi: permissions fixs 2019-10-02 14:56:04 +02:00
klmp200 fd5cd56f81 Merge branch 'trombi' into 'master'
Trombi fixs

See merge request ae/Sith!240
2019-09-30 00:00:38 +02:00
klmp200 35d9c05abf trombi: fix trombi tools if user has a trombi profile but no trombi linked 2019-09-29 12:19:22 +02:00
klmp200 fcb3035b67 trombi: fix some 500 errors when accessing page without being in a trombi 2019-09-29 12:09:03 +02:00
klmp200 b7db969f08 Merge branch 'counter' into 'master'
[Counter] - Buying group is now required

See merge request ae/Sith!239
2019-09-20 14:03:07 +02:00
Cyl 14303fd46c [Counter] - Buying group is now required 2019-09-19 23:04:03 +02:00
klmp200 5e6b17cd19 Merge branch 'eticket' into 'master'
[Counter] - add the product ID for every Eticket

See merge request ae/Sith!237
2019-09-18 14:42:16 +02:00
Cyl 8232ff59a0 [Counter] - add the product ID for every Eticket 2019-09-16 23:41:06 +02:00
klmp200 411c117f0f Merge branch 'performances' into 'master'
Improve performances on forum and SAS

See merge request ae/Sith!235
2019-09-16 14:23:52 +02:00
klmp200 298499c749 sas: add cache on Picture permissions to avoid hitting the bdd too much 2019-09-16 11:33:32 +02:00
klmp200 b8ad2d4835 sas: add pagination on AlbumView 2019-09-16 01:26:20 +02:00
klmp200 d37eb134e2 Merge branch 'bugfix' into 'master'
Fix error 500 when editing properties of user without linked customer

See merge request ae/Sith!236
2019-09-15 17:48:21 +02:00
klmp200 63ec5d68f4 core: fix error 500 when editing properties of user without linked customer 2019-09-15 17:05:07 +02:00
klmp200 8330e1eaf2 sas: simplify and optimize permissions for SAS images 2019-09-15 16:43:17 +02:00
klmp200 1f86827e46 core: improve performances on not found images 2019-09-15 16:22:13 +02:00
klmp200 321e5e3ff5 forum: enhance performances on toggle_favorite 2019-09-15 16:12:24 +02:00
klmp200 3eb8292d15 Merge branch 'bugfix' into 'master'
Fix error 500 with expired reset password links

See merge request ae/Sith!234
2019-09-11 10:33:39 +02:00
klmp200 5a3f90fd28 core: fix error 500 with expired reset password links 2019-09-10 16:56:58 +02:00
klmp200 eb975f4de1 Merge branch 'performances' into 'master'
Speed up counter click interface and auto scroll

See merge request ae/Sith!233
2019-09-10 15:50:38 +02:00
klmp200 405b938e08 counter: speed counter click interface and auto scroll 2019-09-10 14:22:13 +02:00
klmp200 f899e32fb0 Merge branch 'performances' into 'master'
Improve overall performances on notifications, news pages and navbar

See merge request ae/Sith!232
2019-09-09 11:07:04 +02:00
klmp200 9181e77d55 core: add some cache on birthdays and counters_activity 2019-09-09 01:20:15 +02:00
klmp200 f1b3a174b6 core: improve performances on notification reads and display 2019-09-09 00:45:08 +02:00
klmp200 eb9821ed36 Merge branch 'sas' into 'master'
core: add index on folder and sas properties of SithFile to speed up SAS

See merge request ae/Sith!231
2019-09-06 16:47:18 +02:00
klmp200 defb7fb3a3 Merge branch 'pedagogy_v2' into 'master'
Disable having two comments from the same user for the same uv in uv guide

See merge request ae/Sith!229
2019-09-06 16:28:28 +02:00
klmp200 83e225a744 core: add index on folder and sas properties of SithFile to speed up SAS 2019-09-06 16:16:03 +02:00
klmp200 f30bea3dc9 pedagogy: add script to remove all previous doubled comments 2019-09-04 20:49:18 +02:00
klmp200 a69f7b12b1 pedagogy: add script to remove all previous doubled comments 2019-09-04 20:49:17 +02:00
klmp200 ca042fe75e Merge branch 'a19_subscriptions' into 'master'
SUBSCRIPTIONS: 5 new discounted subscriptions for integration

See merge request ae/Sith!226
2019-08-29 19:33:07 +02:00
Zar dc9111dbcd SUBSCRIPTIONS: 5 new discounted subscriptions for integration 2019-08-29 19:06:58 +02:00
klmp200 8a16a66299 Merge branch 'bugfix' into 'master'
com/core: remove links to index edition that caused error 500

See merge request ae/Sith!230
2019-08-29 18:03:34 +02:00
klmp200 d7a7613807 com: add basics tests for ComAlert and ComInfo to detect regressions on tabs 2019-08-29 17:29:38 +02:00
klmp200 3fc8688941 com/core: remove links to index edition that caused error 500 2019-08-29 17:23:27 +02:00
klmp200 d7b351a1aa Merge branch 'cyl' into 'master'
[COM] Make the news visible for non-authenticated user and birthday visible for subriber only

See merge request ae/Sith!225
2019-08-29 15:07:08 +02:00
Cyl 9e0c4e70d4 [COM] Make the news visible for non-authenticated user and birthday visible for subriber only 2019-08-28 20:40:31 +02:00
klmp200 2232c495be Merge branch 'bugfix' into 'master'
pedagogy: fix a bug when updating an UV from a different author

See merge request ae/Sith!228
2019-08-28 16:08:32 +02:00
klmp200 18b1bea664 Merge branch 'weekmail' into 'master'
com: add weekmail banner and footer for A19

See merge request ae/Sith!227
2019-08-28 02:35:04 +02:00
klmp200 a5d5c41dd6 pedagogy: fix a bug when updating an UV from a different author 2019-08-27 22:46:41 +02:00
klmp200 66d5c71a92 com: add weekmail banner and footer for A19 2019-08-27 18:56:43 +02:00
klmp200 824ea37f44 Merge branch 'pedagogy_v2' into 'master'
Better display on mobile for guide page

See merge request ae/Sith!221
2019-08-26 12:11:26 +02:00
klmp200 eb29f98c37 Merge branch 'bugfix' into 'master'
pedagogy: correctly fill star widget when editing comment

Closes #88

See merge request ae/Sith!223
2019-08-20 22:57:02 +02:00
klmp200 d903dc58cf pedagogy: correctly fill star widget when editing comment 2019-08-08 18:59:44 +02:00
klmp200 f09de0ab7d pedagogy: remove stars on small devices for grade 2019-08-08 12:46:51 +02:00
klmp200 d29603c584 pedagogy: fix display of guide on smaller devices 2019-08-07 20:03:21 +02:00
klmp200 3380980c5c pedagogy: add generic font for .radio-guide 2019-08-07 17:50:50 +02:00
klmp200 38ef13d9b6 Merge branch 'markdown-editor' into 'master'
core: upgrade easymde

See merge request ae/Sith!222
2019-07-29 15:28:35 +02:00
klmp200 6c43b1c43d pedagogy: better display on mobile for guide page
Widen search bar and use a grid template
Reduce zooming when clicking on the search bar (firexfox)
Remove zooming when clicking on search bar (chrome)
2019-07-25 19:01:53 +02:00
klmp200 2b34c46412 core: upgrade easymde 2019-07-19 23:36:56 +02:00
klmp200 f9227fa29d Merge branch 'bugfix' into 'master'
Fix error 500 when accessing user tools with anonymous user and fix dependancies

See merge request ae/Sith!220
2019-07-15 15:03:27 +02:00
klmp200 96a3eaff1c ci: fix django rest framework version 2019-07-15 14:40:03 +02:00
klmp200 65cb85a887 ci: fix building of pygraphviz 2019-07-15 14:29:47 +02:00
klmp200 640a72c52d core: add tests for UserToolsView 2019-07-15 12:36:05 +02:00
klmp200 9b7b96a310 core: add UserIsLoggedMixin to check if an user is not anonymous 2019-07-15 12:27:19 +02:00
klmp200 b18746e769 core: fix error 500 when accessing user tools with anonymous user 2019-07-13 04:58:23 +02:00
klmp200 a2b431b1ab Merge branch 'pedagogy_v2' into 'master'
New version of the pedagogy

See merge request ae/Sith!212
2019-07-11 00:05:27 +02:00
klmp200 d844bccb04 pedagogy: improve performances on json mode for UVListView 2019-07-10 12:26:37 +02:00
klmp200 49f928e754 Apply suggestion to pedagogy/views.py 2019-07-10 12:12:56 +02:00
klmp200 07fc1014be pedagogy: put methods after properties in models 2019-07-09 16:59:59 +02:00
klmp200 facb6faf75 Merge branch 'pedagogy_v2_front' into 'pedagogy_v2'
Frontend for pedagogy

See merge request ae/Sith!218
2019-07-09 16:57:00 +02:00
klmp200 e72338a7d9 pedagogy: enlarge shape around author 2019-07-09 16:33:06 +02:00
klmp200 f37c022538 pedagogy: put report button at left and author at right 2019-07-09 16:03:47 +02:00
klmp200 5229628d48 pedagogy: fix weird blank spacing in comment block 2019-07-09 15:08:48 +02:00
klmp200 b4b7bf05b4 pedagogy: remove scrolling on desktop for comments 2019-07-09 14:43:46 +02:00
klmp200 231415a772 pedagogy: hide scroll bar at bottom of comments 2019-07-08 23:43:27 +02:00
klmp200 f052d307d7 pedagogy: make report button less visible and author more important 2019-07-08 23:16:53 +02:00
klmp200 f15971cecf pedagogy: simplify moderation form for user 2019-07-08 17:34:23 +02:00
klmp200 99cf59c7a4 pedagogy: remove fira font to reduce downloaded content for user 2019-07-08 15:51:31 +02:00
klmp200 0d13014e8a pedagogy: simpler generation for department radio buttons 2019-07-08 15:36:30 +02:00
klmp200 fd1f89de1d pedagogy: wrap all css inside a class named pedagogy to avoid name clashes 2019-07-08 15:25:28 +02:00
klmp200 78b616427f Merge branch 'new_django' into 'master'
core: rename MIDDLEWARE_CLASSES into MIDDLEWARE

See merge request ae/Sith!219
2019-07-08 15:18:21 +02:00
klmp200 c15ea345dd pedagogy: generate search form radios trough loop and remove semester_translated 2019-07-08 15:17:12 +02:00
klmp200 1d319e90f0 pedagogy: don't make the anchor scroll with comment text 2019-07-08 09:47:54 +02:00
klmp200 e6e500e2f9 pedagogy: fix margins on stars for mobile devices 2019-07-08 09:37:30 +02:00
klmp200 cf1ec1dc86 pedagogy: add missing markdown treatment for key_concept 2019-07-08 09:26:22 +02:00
klmp200 46a042cde2 pedagogy: fix mobile display on chrome 2019-07-08 09:19:23 +02:00
klmp200 52129d7511 pedagogy: new mobile view and use of css grids for comment display 2019-07-08 02:54:49 +02:00
klmp200 d03835d737 pedagogy: allow search on uv title 2019-07-08 00:54:53 +02:00
klmp200 b4b7817baa pedagogy: auto send form when typing 2019-07-08 00:53:02 +02:00
klmp200 d85152e58c pedagogy: quick access to comment from moderation 2019-07-08 00:01:54 +02:00
klmp200 f118040432 pedagogy: add pedagogy in user tools 2019-07-08 00:01:38 +02:00
klmp200 9f1aff8c07 pedagogy: add retries on search form and make uv table clickable 2019-07-07 23:52:54 +02:00
klmp200 94bbdf372b pedagogy: fix css grids on chrome android 2019-07-07 22:14:46 +02:00
klmp200 240d94bd57 pedagogy: enhance display on mobile and fix some bugs with webkit 2019-07-07 21:56:59 +02:00
klmp200 3ee7ff2752 pedagogy: display hours of UVs 2019-07-07 21:38:00 +02:00
klmp200 2c5385cf5c pedagogy: enhance mobile view 2019-07-07 21:03:27 +02:00
klmp200 c8a691044f pedagogy: add translations 2019-07-07 19:36:47 +02:00
klmp200 f93eaff876 pedagogy: small fix for leave comment on desktop 2019-07-07 19:08:30 +02:00
klmp200 10faa14bef pedagogy: better display on mobile 2019-07-07 19:07:19 +02:00
klmp200 30ccbdc32d pedagogy: fix search api when searching one letter (case sensitivity) 2019-07-07 18:55:23 +02:00
klmp200 79243aece3 pedagogy: better display for uv_details 2019-07-07 18:51:36 +02:00
klmp200 a61322b83f pedagogy: fix search form display rights 2019-07-07 18:43:43 +02:00
klmp200 3df73f4d1f pedagogy: css class name consistency 2019-07-07 18:33:56 +02:00
klmp200 7165a63e97 pedagogy: polish uv_details 2019-07-07 18:29:31 +02:00
klmp200 2404edd289 pedagogy: clean up guide page 2019-07-07 16:52:28 +02:00
klmp200 3bff09b04c pedagogy: correctly display uv infos 2019-07-07 16:33:03 +02:00
klmp200 28748af5d3 pedagogy: smart back button in uv_detail 2019-07-07 14:44:25 +02:00
klmp200 a56a4e2cb8 pedagogy: better comment display on mobile 2019-07-06 03:54:46 +02:00
klmp200 339497b2c2 pedagogy: display semester in search view 2019-07-06 02:57:20 +02:00
klmp200 c05168a2b5 pedagogy: display most recent comment first 2019-07-06 02:33:05 +02:00
klmp200 782ee35779 pedagogy: incorpore all elements in comment block 2019-07-06 02:30:47 +02:00
klmp200 43acee8f1b pedagogy: enhance comment look 2019-07-06 02:16:04 +02:00
klmp200 4a19441a17 pedagogy: translations for semesters in details and handle markdown 2019-07-06 01:16:09 +02:00
klmp200 11acf5897f pedagogy: correctly hide AP input with its label 2019-07-06 00:34:41 +02:00
root 4be99fe828 guide design not finished 2019-07-06 00:14:15 -05:00
root 601193ff3c small change comment 2019-07-05 22:42:13 -05:00
klmp200 f500dec1f1 core: rename MIDDLEWARE_CLASSES into MIDDLEWARE
MIDDLEWARE_CLASSES is deprecated since django 1.11 and with last version of django-debug-toolbar it broke the dev server
See here for more details https://docs.djangoproject.com/fr/2.2/topics/http/middleware/#upgrading-pre-django-1-10-style-middleware
2019-07-05 22:01:30 +02:00
Cyl bfb7380715 [Pedagogy] Front comment nearly ended 2019-07-05 20:54:14 +02:00
klmp200 3e3c576ad7 pedagogy: live uv update on guide 2019-07-05 20:11:33 +02:00
klmp200 2aa1314fac pedagogy: basic display of the guide 2019-07-05 18:16:28 +02:00
klmp200 3063e4a24f pedagogy: auto fill search form from get arguments in URL 2019-07-05 16:40:14 +02:00
klmp200 6f8ec4740c pedagogy: simpler user interface for autumn and spring search 2019-07-05 16:40:14 +02:00
klmp200 cbcd84c931 pedagogy: add a search form 2019-07-05 16:40:14 +02:00
klmp200 e475273cd3 pedagogy: enhance StarList widget 2019-07-05 16:40:14 +02:00
Cyl 851231869b [pedagogy] Star for comment grades 2019-07-05 16:40:13 +02:00
klmp200 3376f4dfb4 pedagogy: fix typo for AUTUMN_AND_SPRING 2019-07-05 16:40:02 +02:00
klmp200 205f93569a pedagogy: grade averages for UVs 2019-07-04 18:07:51 +02:00
klmp200 4f7a8661ba Merge branch 'pedagogy_v2_moderation' into 'pedagogy_v2'
Pedagogy comments moderation

See merge request ae/Sith!215
2019-07-04 15:54:24 +02:00
klmp200 6e7d351e8e pedagogy: send notification to pedagogy admins at comment report 2019-07-04 15:32:00 +02:00
klmp200 73f1927ce4 Merge branch 'pedagogy_v2_old_base_import' into 'pedagogy_v2'
pedagogy: fix bdd id out of sync after old data base import

See merge request ae/Sith!216
2019-06-25 15:24:46 +02:00
klmp200 56e3f39de1 pedagogy: fix bdd id out of sync after old data base import 2019-06-20 19:20:06 +02:00
klmp200 75a2aefd69 pedagogy: display if comment is reported 2019-06-20 15:03:51 +02:00
klmp200 55e822412a pedagogy: full test suite for pedagogy moderation 2019-06-20 14:57:58 +02:00
klmp200 171d9a4381 pedagogy: tests and fixs for uv moderation form 2019-06-20 14:22:06 +02:00
klmp200 806084e707 pedagogy: allow to deny removal request for comment in moderation 2019-06-20 13:19:35 +02:00
klmp200 04009a6a5b pedagogy: moderation interface 2019-06-20 12:15:12 +02:00
klmp200 3d0f5c0a15 pedagogy: base for uv comment moderation 2019-06-20 01:29:12 +02:00
klmp200 437af4dd04 Merge branch 'pedagogy_v2_search_api' into 'pedagogy_v2'
Pedagogy v2 search api

See merge request ae/Sith!214
2019-06-19 10:36:27 +02:00
klmp200 ba61455017 Merge branch 'pedagogy_v2_old_base_import' into 'pedagogy_v2'
Pedagogy v2 old base import

See merge request ae/Sith!213
2019-06-19 10:35:50 +02:00
klmp200 624f1d653d pedagogy: tests for search API 2019-06-19 10:04:29 +02:00
klmp200 e21821ace5 pedagogy: handle one letter search 2019-06-19 02:00:00 +02:00
klmp200 22c028af11 pedagogy: rename query to search in search API 2019-06-19 01:53:02 +02:00
klmp200 f0560f0d2a pedagogy: fix import for HUMA on old database 2019-06-19 01:49:34 +02:00
klmp200 502ae09523 pedagogy: add filters to search api 2019-06-19 01:26:11 +02:00
klmp200 2cbef2babc pedagogy: support json response from search API 2019-06-19 00:58:20 +02:00
klmp200 e11d45b51e pedagogy: more details on uv_detail for tests purpose 2019-06-19 00:58:14 +02:00
klmp200 061320a5df pedagogy: search index for uvs and search api 2019-06-19 00:57:55 +02:00
klmp200 2aa465b138 pedagogy: don't update uv comment publish date at each save 2019-06-19 00:35:44 +02:00
klmp200 d18f0aa829 pedagogy: import results from old uv guide 2019-06-18 17:46:46 +02:00
klmp200 e7b8ddb631 pedagogy: importation from old uv guide 2019-06-18 17:20:10 +02:00
klmp200 358a625cc4 pedagogy: simplify and implement department system according to old database model 2019-06-18 10:56:05 +02:00
klmp200 d44fa73b2a pedagogy: Fix grade range on UVCOmment 2019-06-17 18:42:33 +02:00
klmp200 5ccb499665 pedagogy: full test suite for UVComment 2019-06-16 20:05:53 +02:00
klmp200 c467165bf3 pedagogy: fix error with author change on comment when edited by an admin 2019-06-16 18:34:11 +02:00
klmp200 8512f3c5d0 pedagogy: fix some previous tests never launched and test for display/create/delete of UVComment 2019-06-16 18:26:30 +02:00
klmp200 5003e57338 pedagogy: functional but basic uv comment system 2019-06-16 17:02:45 +02:00
klmp200 b7c2da53fe pedagogy: models for UVComment and UVResult 2019-06-16 16:02:27 +02:00
klmp200 598cdc0284 pedagogy: tests for uv deletion and update 2019-06-16 13:10:27 +02:00
klmp200 692d9a25e3 pedagogy: tests for uv display 2019-06-16 12:44:55 +02:00
klmp200 38f6c27983 pedagogy: tests for uv creation 2019-06-16 12:19:04 +02:00
klmp200 1172402166 pedagogy: basic uv detail view 2019-06-16 02:19:56 +02:00
klmp200 ab344ba02f pedagogy: complete CRUD for UV model 2019-06-16 00:29:46 +02:00
klmp200 ec33311715 pedagogy: basic display list of UV 2019-06-15 23:31:31 +02:00
klmp200 5bf5d0277c pedagogy: create view and form for UV
WARNING: A new group has been created, to be set by the infra team at deployment !!!
2019-06-15 17:01:25 +02:00
klmp200 31f6ee9ca4 pedagogy: create first iteration of UV model 2019-06-15 14:17:49 +02:00
klmp200 b49f204e20 pedagogy: more comprehensible urls for development 2019-06-15 12:49:14 +02:00
klmp200 57f2a5c260 pedagogy: rename Study into StudyField 2019-06-15 12:49:13 +02:00
klmp200 36831b4f4a pedagogy: rename TeachingDepartment into EducationDepartment 2019-06-15 12:49:13 +02:00
klmp200 17a375f89c pedagogy: structure of the app 2019-06-15 12:49:13 +02:00
klmp200 f922ab9272 Merge branch 'bugfix' into 'master'
counter: fix error for stats 500 on PermissionDenied

See merge request ae/Sith!208
2019-06-14 16:32:34 +02:00
klmp200 f0524a9f00 counter: fix error for stats 500 on PermissionDenied 2019-05-28 16:39:16 +02:00
klmp200 d466d645e6 Merge branch 'eboutic' into 'master'
eboutic: add some help and documentation for the payment system

See merge request ae/Sith!207
2019-05-27 11:42:37 +02:00
klmp200 8129e6923a eboutic: add some help and documentation for the payment system 2019-05-27 11:20:57 +02:00
klmp200 c219e47621 Merge branch 'nfc_card' into 'master'
fix a bug where you can't register UID card with only number inside

See merge request ae/Sith!206
2019-05-24 09:07:51 +02:00
klmp200 1f3220246a counter: fix a bug where you can't register UID card with only number inside 2019-05-24 08:38:15 +02:00
klmp200 0f832a2774 Merge branch 'nfc_card' into 'master'
Can identify user on counter with student card UID

See merge request ae/Sith!172
2019-05-23 19:49:45 +02:00
klmp200 b4c24ee997 Merge branch 'bugfix' into 'master'
counter: fix SellingFormBase import

See merge request ae/Sith!205
2019-05-21 11:08:07 +02:00
klmp200 275b89cdf0 club: fix SellingFormBase import 2019-05-21 10:53:18 +02:00
klmp200 3bddf176d8 Fix typo for NFC cards 2019-05-20 19:12:53 +02:00
klmp200 19e353970d Enforce uid with uppercase for Studentcard and test more edge cases 2019-05-20 17:56:14 +02:00
klmp200 5ae7d10e84 Add unit tests for student cards and fix edge cases 2019-05-20 17:56:09 +02:00
klmp200 e1ffdbe3f9 Translations on student card feature 2019-05-20 17:55:58 +02:00
klmp200 0ba0df0f29 Better handling of user rights for studentcards 2019-05-20 17:52:44 +02:00
klmp200 616b7ccfc8 Nice user interface and permission rework 2019-05-20 17:52:39 +02:00
klmp200 4669e5a4e9 Gui for studentcards in counters 2019-05-20 17:52:36 +02:00
klmp200 14d9fc04d1 Stronger bdd validation for studentcards 2019-05-20 17:52:33 +02:00
klmp200 577ad07a2b Can identify user on counter with student card UID 2019-05-20 17:52:29 +02:00
klmp200 9f2a0deeb9 Merge branch 'mailing' into 'master'
Enhance mailing list edition for clubs with brand new form

See merge request ae/Sith!200
2019-05-20 17:39:43 +02:00
klmp200 c26d1c423e Merge branch 'markdown-editor' into 'master'
Remove external resources once for all

See merge request ae/Sith!204
2019-05-18 03:41:35 +02:00
klmp200 e8f742b9f9 core: remove external resources once for all 2019-05-18 03:00:19 +02:00
klmp200 8ebf5af3d6 Merge branch 'markdown-editor' into 'master'
core: replace simplemde with easymde

See merge request ae/Sith!202
2019-05-18 02:49:36 +02:00
Cyl a4ed535b34 core: optimisation and take off the auto-download of Font Awesome 2019-05-10 15:49:20 +02:00
klmp200 827ec63ab3 Merge branch 'search' into 'master'
core: fix error 500 on user and forum search

See merge request ae/Sith!201
2019-05-10 11:06:13 +02:00
klmp200 81d470b977 clubs: add tests for MalingForm 2019-05-09 20:32:48 +02:00
klmp200 654099067e clubs: tests for adding mailings 2019-05-09 20:32:26 +02:00
Cyl 355a51d2ce core: fix special caracter in user and forum search 2019-05-09 19:51:55 +02:00
Cyl 3548c3e7c4 change fontAwesome from extra to intra reading 2019-05-09 19:06:35 +02:00
klmp200 d1fb9cc4c3 clubs: remove moderator and club from mailing form + display not moderated mailings 2019-05-09 17:43:47 +02:00
Cyl ad6f17d309 core: replace simplemde with easymde 2019-05-06 20:42:35 +02:00
Cyl bf06aea680 core: fix whitespaces in user and forum search 2019-05-06 20:11:49 +02:00
klmp200 1d07195881 clubs: add bulk deletion on mailing lists 2019-05-01 22:54:18 +02:00
klmp200 24fb714c5e clubs: set club_id and user_id as mandatory arguments for MailingForm 2019-05-01 18:59:41 +02:00
klmp200 da25480993 clubs: use standard rights for ClubMailingView 2019-05-01 15:50:03 +02:00
klmp200 a0e39b8904 clubs: rewrite MailingForm to include everything in one place
Everything is handled on the same view, no more redirection hacks

Remove get_context_data in DetailFormView since it's already done by django
2019-05-01 15:49:30 +02:00
klmp200 cfd4955672 clubs: clean up imports and move forms to external file 2019-05-01 03:32:55 +02:00
klmp200 a12edcda15 Merge branch 'navbar' into 'master'
Fix footer block

See merge request ae/Sith!199
2019-04-30 19:40:50 +02:00
klmp200 9e8f633037 core: fix footer block 2019-04-30 18:47:59 +02:00
klmp200 de680f032c Merge branch 'navbar' into 'master'
Update navbar with new links, remove old ones and fix translations

See merge request ae/Sith!198
2019-04-29 12:16:38 +02:00
klmp200 7bd44159de core: update navbar and fix some translations 2019-04-28 16:21:00 +02:00
klmp200 142299c0cd Merge branch 'clubs' into 'master'
Améliore la gestion de membres de clubs

See merge request ae/Sith!196
2019-04-26 18:19:05 +02:00
klmp200 01803c8cf0 clubs: remove useless self.request_user into ClubMemberView 2019-04-25 19:51:30 +02:00
klmp200 f72f0639ee clubs: display a message instead of a table when no member in a club 2019-04-25 17:38:17 +02:00
klmp200 68f61a432a clubs: adapt tests to new display and fix form validation issue for start_date 2019-04-25 17:31:42 +02:00
klmp200 3eb3565a63 clubs: nice display of bulk mark as old 2019-04-25 16:36:20 +02:00
klmp200 75328de5ca clubs: fix membership form and add bulk mark as old tests 2019-04-25 15:40:49 +02:00
klmp200 6964692556 clubs: basic bulk mark as old 2019-04-24 18:17:03 +02:00
klmp200 80f1f9699c clubs: move Membership form validation outside of model and fix and add tests 2019-04-24 17:12:20 +02:00
klmp200 d5ad2c5141 clubs: Handle bulk add of users in clubs and refresh of the form handling 2019-04-24 03:10:42 +02:00
klmp200 e8ee9122f9 Merge branch 'admin' into 'master'
Amélioration de l'administration des groupes

See merge request ae/Sith!148
2019-04-23 23:06:39 +02:00
klmp200 cf5fc1fecf Group: fix typo 2019-04-23 20:47:19 +02:00
klmp200 2ae10ee2fb core: add macro that selects/unselect all checkbox 2019-04-22 22:55:55 +02:00
klmp200 96e33815f5 Group: simplify GroupTemplateView and better group display 2019-04-22 22:55:55 +02:00
klmp200 c3b88aaeb4 Group: fix typo 2019-04-22 22:55:55 +02:00
klmp200 3d344b483d Group: improve group list display 2019-04-22 22:55:55 +02:00
klmp200 ee89327742 Group: add translations 2019-04-22 22:55:55 +02:00
klmp200 b693ee32f2 Group: add a label on users to delete 2019-04-22 22:55:54 +02:00
klmp200 08d03087a4 core: create a DetailFormView 2019-04-22 22:55:54 +02:00
klmp200 34459f83ec Group: Groups: allow bulk removing of users from a group 2019-04-22 22:55:54 +02:00
klmp200 5cc0760e2c Groups: allow bulk import of users on a group 2019-04-22 22:55:54 +02:00
klmp200 f6553a8f52 Group management enhacement 2019-04-22 22:55:53 +02:00
klmp200 a6f76f5279 Merge branch 'gitattributes' into 'master'
Configure GitLab to have a correct collor highlighting on jinja files and on po files

See merge request ae/Sith!195
2019-04-22 18:48:22 +02:00
klmp200 00259a0e31 Add mappings for .po and .jinja files 2019-04-22 18:20:22 +02:00
klmp200 bdd2fda024 Merge branch 'rootplace' into 'master'
rootplace: create a cli utility to delete user's forum message to avoid connection timeout error

See merge request ae/Sith!194
2019-04-22 17:36:56 +02:00
klmp200 d1f3fb2a15 Merge branch 'contribution-instructions' into 'master'
README : update instructions

See merge request ae/Sith!191
2019-04-20 02:47:57 +02:00
klmp200 6943d29857 README: fix typo in CONTRIBUTING and move dependencies before Get started instructions 2019-04-06 20:12:47 +02:00
klmp200 46db8b391a rootplace: make code clearer and fix typos 2019-03-19 17:23:02 +01:00
klmp200 f9d4f41b7c rootplace: create a cli utility to delete user's forum message to avoid connection timeout error 2019-03-18 20:52:35 +01:00
klmp200 6a586020f1 Merge branch 'rootplace' into 'master'
rootplace: add tool to delete all forum messages from a specified user

See merge request ae/Sith!193
2019-03-18 10:21:01 +01:00
klmp200 2ee50c0fbd rootplace: add tool to delete all forum messages from a specified user 2019-03-17 18:07:57 +01:00
klmp200 2480644f1c Merge branch 'eboutic_check_basket_amount' into 'master'
eboutic: check basket amount upon command validation

See merge request ae/Sith!192
2019-03-15 12:18:05 +01:00
Skia 03eeffdea0 eboutic: check basket amount upon command validation 2019-03-15 02:17:36 +01:00
klmp200 e3432794f5 README : update instructions 2019-03-14 11:07:55 +01:00
klmp200 d56990b91f Merge branch 'fix/better_str_comparison' into 'master'
small fix to follow python recommendations

See merge request ae/Sith!190
2019-02-04 00:10:02 +01:00
krophil 18f464a49f small fix to follow python recommendations 2019-02-02 00:32:34 +01:00
klmp200 0f7f80e9d3 Merge branch 'makdown-editor' into 'master'
Workaround for crsf token in production for MarkdownInput

See merge request ae/Sith!189
2018-12-20 18:36:05 +01:00
klmp200 d2c5908c89 core: workaround for crsf token in production for MarkdownInput
See https://docs.djangoproject.com/en/2.0/ref/csrf/#acquiring-the-token-if-csrf-use-sessions-is-true
2018-12-20 18:19:50 +01:00
Skia 3898a13b25 Merge branch 'makdown-editor' into 'master'
Add a nice markdown editor

See merge request ae/Sith!184
2018-12-20 17:11:43 +01:00
klmp200 3dda8eafc4 elections: use MarkdownInput for CandidateForm 2018-12-20 16:43:59 +01:00
klmp200 dc800b59f4 com: use MarkdownInput for alert_msg, info_msg and index_page editing 2018-12-20 15:13:59 +01:00
klmp200 24dd258d0a com: use MarkdownInput on news 2018-12-20 15:09:44 +01:00
klmp200 d2021ecf7e com: use MarkdownInput for weekmail 2018-12-20 15:06:20 +01:00
klmp200 d53d725415 core: fix validation error on generic create view with MarkdownInput 2018-12-20 15:03:41 +01:00
klmp200 f6ab993b8d wiki: remove old markdown preview 2018-12-20 14:32:52 +01:00
klmp200 bae45bcd38 forum: remove old markdown preview 2018-12-20 14:27:55 +01:00
klmp200 fdfe33dedc core: remove old markdown editor 2018-12-20 14:20:58 +01:00
klmp200 8111ae107a core: move centralized custom scripts on top of base.jinja and move getCookie inside 2018-12-20 14:15:57 +01:00
klmp200 97b06b160b core: add delay on live preview for MarkdownInput to avoid making too much request to the API 2018-12-20 14:06:30 +01:00
klmp200 19c1361e47 core: fix heading in MarkdownInput 2018-12-19 14:10:39 +01:00
klmp200 542a2ede32 core: translations for MarkdownInupt 2018-12-19 14:02:45 +01:00
klmp200 ea538dbab3 core: handle all basic editing actions in MarkdownInput 2018-12-19 12:25:59 +01:00
klmp200 d0771f3e2a Merge branch 'contribution-instructions' into 'master'
Fix contributing and readme

See merge request ae/Sith!186
2018-12-19 00:03:04 +01:00
klmp200 80248ec8d3 Merge branch 'patch/targets' into 'master'
Avoid error 500 when target is forgotten

See merge request ae/Sith!187
2018-12-19 00:02:25 +01:00
krophil 8388f4ee65 Avoid error 500 when target is forgotten 2018-12-18 23:50:24 +01:00
klmp200 27500a7820 Fix contributing and readme 2018-12-18 23:16:39 +01:00
klmp200 55ff492ec8 core: edit buttons on MarkdownInupt 2018-12-18 14:39:05 +01:00
klmp200 3b08603635 core: avoid inserting automatic whitespace in MarkdownInput 2018-12-18 14:13:15 +01:00
klmp200 4d866843e1 core: move jquery to header section 2018-12-18 13:54:53 +01:00
klmp200 4afd7a0023 core: avoid blinking in MarkdownInput preview 2018-12-14 18:02:01 +01:00
klmp200 d6f08d3706 core: use pure js to get cookie in markdown input 2018-12-14 17:53:25 +01:00
klmp200 775f456c40 core: introduce new markdown input
To fix
* Avoid blinking in preview
* Don't insert stupid space on empty textarea
2018-12-14 16:24:11 +01:00
Skia acfbdd1ad5 Merge branch 'feature/forum-search' into 'master'
Forum search

See merge request ae/Sith!181
2018-12-13 20:57:01 +01:00
Skia 835782fd7e forum/views: reduce number of queries with some 'prefetch_related' 2018-12-13 20:36:21 +01:00
Skia 82df424146 core: put User.group's names in cache 2018-12-13 20:36:21 +01:00
klmp200 af3e2fb951 forum: use generic macro to display breadcrumb and display it on search result 2018-12-13 20:33:34 +01:00
klmp200 84811af9f1 forum: fix translation when no search result found 2018-12-13 20:33:34 +01:00
klmp200 82ffd75372 forum: fix typo in search bar checkbox class name 2018-12-13 20:33:34 +01:00
klmp200 068a80519c forum: fix order by date 2018-12-13 20:33:34 +01:00
klmp200 fc7e45190d forum: use pure jinja for search bar 2018-12-13 20:33:34 +01:00
klmp200 6891174935 forum: implement order by date for search 2018-12-13 20:33:34 +01:00
klmp200 721b22a1e9 forum: improve search bar UX behavior 2018-12-13 20:33:34 +01:00
klmp200 e421a2b4cd forum: increase search speed by optimizing permission filter 2018-12-13 20:33:34 +01:00
Soldat a9bae46f45 changed design 2018-12-13 20:33:34 +01:00
klmp200 57454bffa0 forum: workaround size error while building index, handle malformed utf8 2018-12-13 20:33:34 +01:00
klmp200 641d564ec6 forum: add trigger to update index on ForumMessage update 2018-12-13 20:33:34 +01:00
klmp200 ee99ec1aed forum: workaround for building index with safety margin 2018-12-13 20:33:34 +01:00
klmp200 269242601a forum: workaround for error while indexing badly encoded text (legacy) 2018-12-13 20:33:34 +01:00
klmp200 545671bec3 forum: workaround for building index 2018-12-13 20:33:34 +01:00
klmp200 347caa3b6a forum and core: fix error 500 when query is empty on search 2018-12-13 20:33:34 +01:00
klmp200 65a0b7b2d4 forum: better display of search results 2018-12-13 20:33:34 +01:00
klmp200 107c6c196f forum: limit results and improve search engine speed 2018-12-13 20:33:34 +01:00
klmp200 884855c178 forum and core: remove CanViewSearchMixin and use specialized view instead 2018-12-13 20:33:34 +01:00
klmp200 1de77f2fdd core: fix typo 2018-12-13 20:33:34 +01:00
klmp200 076b10e325 forum and core: add a dedicated mixin to exclude unauthorized search results 2018-12-13 20:33:34 +01:00
klmp200 3fdb83c1c2 forum and core: add access rights on search query 2018-12-13 20:33:34 +01:00
klmp200 525b047b4f forum: display search bar on every forum pages 2018-12-13 20:33:34 +01:00
klmp200 404b825de4 forum: make search fuzzy 2018-12-13 20:33:34 +01:00
klmp200 286ba91c75 Adapt forum search to xapian and improve query 2018-12-13 20:33:34 +01:00
Grégoire Duvauchelle 9b8a881914 Add haystack index, and a view for forum search (WIP) 2018-12-13 20:33:34 +01:00
Skia a96aeba1fa Merge branch 'contribution-instructions' into 'master'
Update contributing and readme to xapian dependency

See merge request ae/Sith!183
2018-12-06 00:13:17 +01:00
klmp200 824060bc7a Update contributing and readme to xapian dependency 2018-12-05 23:26:42 +01:00
Skia aba4207423 core: improve search index with 'autocomplete' 2018-12-05 14:59:14 +01:00
Skia 65e0b15b31 Update Haystack indexer to use Xapian 2018-11-26 21:25:02 +01:00
klmp200 c071ed66bc Merge branch 'contribution-instructions' into 'master'
Add team chat badge into README.md

See merge request ae/Sith!178
2018-11-08 22:54:23 +01:00
klmp200 c42450ee2f Add team chat badge into README.md 2018-11-08 21:29:02 +01:00
klmp200 6355bad5b7 Merge branch 'ergonomie' into 'master'
Navbar translation improvements

See merge request ae/Sith!177
2018-11-08 00:39:14 +01:00
klmp200 2c61e797c6 Navbar translation improvements 2018-11-08 00:27:50 +01:00
Soldat c2d92eb114 Merge branch 'ergonomie' into 'master'
Change nav tab

See merge request ae/Sith!176
2018-11-07 23:17:27 +01:00
Soldat 2707b5b1f2 changed color adn local 2018-11-06 00:56:16 +01:00
Soldat aa8a514bf8 changed locale 2 2018-11-06 00:34:48 +01:00
Soldat b5b36e5d1c Changed local 2018-11-06 00:14:40 +01:00
Soldat 6baac88e63 format css correctly 2018-11-05 23:57:37 +01:00
Soldat 49d3123ad8 Changed tab v2 2018-11-05 23:57:37 +01:00
Soldat 29935cb5a8 Add dropdown in navtab 2018-11-05 23:57:37 +01:00
Soldat 3dc73ebb9a Change nav tab 2018-11-05 23:57:37 +01:00
Soldat ca4e23fbb1 add phonenumbers in requirements 2018-11-05 23:56:32 +01:00
Soldat 39c41f916d Merge branch 'il-faut-sauver-le-css' into 'master'
Message change color when unread

See merge request ae/Sith!171
2018-10-17 06:15:42 +02:00
Soldat bf321aaac3 Message change color when unread 2018-10-16 21:08:47 +02:00
klmp200 75dd171714 Merge branch 'historique_cotisations' into 'master'
user: allow subscription history to be visible when subscription is expired

See merge request ae/Sith!169
2018-10-16 15:43:23 +02:00
klmp200 4d3ff3e9dc user: allow subscription history to be visible when subscription is expired 2018-10-16 15:28:45 +02:00
klmp200 917b559b4a Merge branch 'historique_cotisations' into 'master'
user: add subscription history

See merge request ae/Sith!167
2018-10-16 15:17:57 +02:00
klmp200 9089fe3a6a Merge branch 'formulaire_cotisation' into 'master'
subscriptions: add date_of_birth for new users created in subscription form

See merge request ae/Sith!168
2018-10-16 15:01:25 +02:00
klmp200 72a4bde6a2 user: fix populate for dev and use native django function to fetch payment_method 2018-10-16 14:52:47 +02:00
klmp200 e24eb8ce37 subscriptions: add date_of_birth for new users created in subscription form 2018-10-16 00:44:32 +02:00
klmp200 f6968facbe user: add subscription history 2018-10-16 00:17:19 +02:00
klmp200 b2b03e530a Merge branch 'sentry' into 'master'
senrty: fix SENTRY_DSN in error page

See merge request ae/Sith!166
2018-10-10 16:40:57 +02:00
klmp200 f91ba25b25 senrty: fix SENTRY_DSN in error page 2018-10-10 16:33:12 +02:00
klmp200 6fd34bcaa0 Merge branch 'sentry' into 'master'
Intégration d'une page d'incident automatique

See merge request ae/Sith!165
2018-10-10 16:23:05 +02:00
klmp200 f4122bbc37 sentry: deal with sentry's js as external resource 2018-10-10 15:27:21 +02:00
Soldat e44c8bf828 Merge branch 'il-faut-sauver-le-css' into 'master'
Change design

See merge request ae/Sith!163
2018-10-10 10:13:49 +02:00
klmp200 bdd8427758 sentry: integration with error 500 page 2018-10-10 02:18:19 +02:00
Soldat 87b70d4597 Changed color 2018-10-09 22:04:17 +02:00
Soldat 20b513a381 Decrease nav and agenda border radius, change shadow, change tool bar border and margin 2018-10-09 22:04:17 +02:00
Soldat 680d29a2b4 Darker nav color 2018-10-09 22:04:17 +02:00
klmp200 f7be284b30 Merge branch 'sentry' into 'master'
Support de sentry pour récupérer les erreurs utilisateur

See merge request ae/Sith!161
2018-10-09 12:14:50 +02:00
Soldat 3ae0c3f3e1 Merge branch 'il-faut-sauver-le-css' into 'master'
Changed the design of the Sith.

See merge request ae/Sith!162
2018-10-07 22:21:12 +02:00
Soldat cce33d13b3 Change hex to hsl 2018-10-07 21:48:03 +02:00
Soldat a78f1101c3 Changed site design v1 2018-10-07 21:48:03 +02:00
Soldat 3a778e2105 First commit and fix overlapping text and logo 2018-10-07 14:59:04 +02:00
klmp200 b2d44e83b4 debug: add sentry support 2018-10-06 03:37:36 +02:00
Soldat a88430d43b Merge branch 'black' into 'master'
Passer black sur tout le repo et l'imposer

See merge request ae/Sith!159
2018-10-05 23:26:57 +02:00
klmp200 d2fe9e56cf Add black for sublime text in contributing 2018-10-05 23:18:35 +02:00
Soldat 66957750ba Ajout de black dans contributing 2018-10-05 23:03:45 +02:00
klmp200 d56a5138a8 contributing: freshen up infos while I'm at it 2018-10-05 22:30:54 +02:00
klmp200 839f585f87 CI: improve CI 2018-10-05 21:53:14 +02:00
klmp200 cb58b00b6e All: Apply Black coding rules 2018-10-05 21:52:55 +02:00
klmp200 0581c667de Club: blackify view file 2018-10-05 21:51:54 +02:00
klmp200 88d6f8dc8a CI: introduce black 2018-10-05 21:48:26 +02:00
Soldat d1d1ba4aff Merge branch 'clubs' into 'master'
clubs: un champ plus joli pour la short_description, crack vas être content

See merge request ae/Sith!158
2018-10-05 21:41:21 +02:00
klmp200 5a6c7aaadf clubs: un champ plus joli pour la short_description, crack vas être content 2018-10-04 00:15:47 +02:00
Soldat 9a9eb52768 Merge branch 'cotiz' into 'master'
add 1 day cotiz

See merge request ae/Sith!157
2018-09-20 19:28:04 +02:00
Soldat cd7672f08c Change local for one day cotiz 2018-09-20 14:48:40 +02:00
Soldat 2fca548e15 Add 1 day cotiz 2018-09-20 14:30:35 +02:00
Skia be36b7f38a com: fix birthdays query 2018-09-19 11:37:16 +02:00
krophil 09bde1bfdf Merge branch 'cotiz' into 'master'
added 6 month free cotiz and changed compute_end

See merge request ae/Sith!156
2018-09-01 18:42:13 +02:00
Soldat 7a1b9bd412 compute_end count day by day now (not month by month like before) to allow 6 weeks cotiz 2018-09-01 17:45:13 +02:00
Soldat f78d8e1d95 change sub 2 month free to 6 weeks free 2018-08-31 18:41:06 +02:00
klmp200 bef10c0fe3 Merge branch 'sli' into 'master'
Add subscription for 2018 Euroks

See merge request ae/Sith!155
2018-07-07 00:19:22 +02:00
klmp200 e3cb6d41f9 Add subscription for 2018 Euroks 2018-07-07 00:13:31 +02:00
Skia 290f6ca883 Merge branch 'feature/captcha' into 'master'
Add captcha to registration form

Closes #52

See merge request ae/Sith!154
2018-07-06 11:35:03 +02:00
Grégoire Duvauchelle afe78ea634 Add captcha to registration form 2018-07-06 11:35:02 +02:00
klmp200 b2abc78694 Merge branch 'new_django' into 'master'
Fix subscription bug for old subscribers on subscription page

See merge request ae/Sith!153
2018-06-12 15:07:09 +02:00
klmp200 f1e8d55b41 Fix subscription bug for old subscribers on subscription page 2018-06-12 15:00:51 +02:00
klmp200 7322882002 Merge branch 'new_django' into 'master'
Fix user pictures display

See merge request ae/Sith!152
2018-06-10 18:49:44 +02:00
klmp200 5c4a16d14c Fix user pictures display 2018-06-10 18:43:39 +02:00
klmp200 1cfc4f8092 Merge branch 'new_django' into 'master'
Migration to django 1.11

See merge request ae/Sith!146
2018-06-10 16:37:57 +02:00
klmp200 08de5dfe6a Migration to django 1.11 2018-06-10 16:31:58 +02:00
klmp200 39119f586a Merge branch 'sli' into 'master'
Image promo 19 et demande du bdf

See merge request ae/Sith!151
2018-06-10 16:16:37 +02:00
klmp200 a0a86ef8e1 Allow BDF's members to see subscriptions on users 2018-06-10 16:09:21 +02:00
klmp200 90e1e7c1bb Add promo logo 2018-06-10 16:09:04 +02:00
klmp200 c5be9b5597 Add promo 19's logo 2018-06-10 15:49:53 +02:00
Skia f2106a37a3 counter: fix tests 2018-06-07 19:57:56 +02:00
Skia eae7825260 core/static: fix Matmat results with long names 2018-06-07 00:10:33 +02:00
Skia 61d34b3a09 core, matmat: fix search form 2018-06-06 00:25:27 +02:00
Skia fecb1ae902 core/static: fix Markdown code vertical-align 2018-06-05 00:49:43 +02:00
Skia be1dc62848 core: make a nice user profile 2018-06-05 00:28:43 +02:00
Skia 9146251642 Prevent generation of useless migrations upon settings change 2018-05-08 18:51:29 +02:00
klmp200 01240ce75e Merge branch 'bugfix' into 'master'
Small modification in hope to fix communication screen deformations

See merge request ae/Sith!150
2018-04-29 14:12:22 +02:00
gnikwo 3fe4e64098 Small modification in hope to fix communication screen deformations 2018-04-29 13:53:55 +02:00
Skia 23291ac60e Merge branch 'bugfix' into 'master'
Forum and Com fixes

See merge request ae/Sith!147
2018-04-26 19:50:49 +02:00
klmp200 83f38e617b Forum Form optimisation 2018-04-26 19:38:39 +02:00
klmp200 443616a762 Forum permission fix and form display 2018-04-26 15:20:45 +02:00
klmp200 afa9bd8735 Fix Poster form 2018-04-26 14:48:29 +02:00
Skia 0cc3707059 subscription/tests: remove silly print 2018-04-19 01:10:06 +02:00
Skia bf57329bd8 sas/templates: Improve generation time display 2018-04-18 23:49:12 +02:00
Skia 4d36a961db core/models: improve repair_fs output 2018-04-18 23:02:19 +02:00
Skia 874dfa6cc3 sas/views: change categories ordering 2018-04-18 22:58:03 +02:00
Skia b5aee62558 core/models: don't always repair every single file 2018-04-18 22:54:30 +02:00
Skia 52832eed4d Merge branch 'skia' into 'master'
core/models: make some tools to repair the SithFiles FS regarding the DB

See merge request ae/Sith!144
2018-04-18 22:19:17 +02:00
Skia b2306b62d6 core/models: better handle broken files
Signed-off-by: Skia <skia@libskia.so>
2018-04-16 18:35:00 +02:00
Skia c7b918115d core/models: change thumbnails and compressed SithFile directories
Signed-off-by: Skia <skia@libskia.so>
2018-04-16 18:35:00 +02:00
Skia 0d3c34c155 core/models: refactor SithFile moving and add methods to manage filesystem
Signed-off-by: Skia <skia@libskia.so>
2018-04-16 18:35:00 +02:00
Skia e9e51d34d3 subscription: fix compute_start 2018-04-16 14:54:47 +02:00
Skia d619e0cd9b Merge branch 'weekmail' into 'master'
Weekmail images and colors

See merge request ae/Sith!143
2018-03-26 10:12:14 +02:00
Skia 847b8823af weekmail: reduce image weight 2018-03-26 09:57:50 +02:00
Soldat a84d54accb Change weekmail images and colors 2018-03-26 09:57:40 +02:00
klmp200 41c83b17df Merge branch 'nabos' into 'master'
Changed default display time for posters and permissions on it

See merge request ae/Sith!142
2018-03-18 22:45:11 +01:00
klmp200 cbd333eb47 Changed default display time for posters and permissions on it 2018-03-18 22:28:25 +01:00
Skia d83bb20547 core: small update on footnotes style
Signed-off-by: Skia <skia@libskia.so>
2018-02-22 22:56:15 +01:00
Skia 606f1af4d5 forum: add favorite topics
Signed-off-by: Skia <skia@libskia.so>
2018-02-22 22:28:28 +01:00
Skia f47f846d26 forum: add button CSS class
Signed-off-by: Skia <skia@libskia.so>
2018-02-22 22:15:10 +01:00
klmp200 80bffd00d1 Merge branch 'bugfix' into 'master'
Bugfix for mailing list and posters

See merge request ae/Sith!141
2017-12-22 12:59:51 +01:00
klmp200 43b4579a98 Fix datetime forms for posters 2017-12-22 12:53:43 +01:00
klmp200 c014a6e379 Fix translations 2017-12-22 12:22:37 +01:00
klmp200 b7483513be Fix for mailing lists 2017-12-22 12:06:23 +01:00
Skia 10dfb2c122 Merge branch 'nabos' into 'master'
Communication screens

See merge request ae/Sith!116
2017-12-21 18:25:56 +01:00
Skia a2ee017668 club/views: fix call to parent's get_context_data in PosterListView 2017-12-21 18:16:32 +01:00
gnikwo 22e277d4f7 merged migrations 2017-12-21 16:15:11 +01:00
gnikwo 903f07ecbd Added screen list on poster + Added unmoderated poster artefact + discussions fixes 2017-12-21 12:25:07 +01:00
klmp200 72d2862e3e Posters now working + notifications for com admin 2017-12-16 20:48:36 +01:00
klmp200 5132eb49e4 Merge branch 'elections' into 'master'
It's better to delete an object in delete

See merge request ae/Sith!140
2017-12-12 14:58:02 +01:00
klmp200 5915de9603 It's better to delete an object in delete 2017-12-12 14:52:08 +01:00
krophil 73bd8b0fd3 Merge branch 'revert-3c2f48b7' into 'master'
Revert "Merge branch 'pere200' into 'master'"

See merge request ae/Sith!139
2017-12-12 13:12:10 +01:00
krophil d2c278ba0e Revert "Merge branch 'pere200' into 'master'"
This reverts merge request !138
2017-12-12 13:01:09 +01:00
krophil 3c2f48b750 Merge branch 'pere200' into 'master'
Pere200

See merge request ae/Sith!138
2017-12-11 05:19:30 +01:00
krophil 93f430ac38 PERE 200 2017-12-11 05:11:23 +01:00
klmp200 6335d60ad6 Merge branch 'quickux' into 'master'
Better ui for group selection on election and wiki

See merge request ae/Sith!137
2017-12-10 21:43:54 +01:00
klmp200 d49f7858d3 Better ui for group selection on election and wiki 2017-12-10 21:37:50 +01:00
klmp200 cc99cecaa0 Fix tab mixin on clubs 2017-12-05 15:53:36 +01:00
gnikwo 91d3e9e4dc Delete function + club tabs 2017-12-05 15:24:46 +01:00
klmp200 c8fae39ff0 Merge branch 'elections' into 'master'
Avoid moving role order in election by reloading page

See merge request ae/Sith!136
2017-12-05 14:30:52 +01:00
klmp200 4217b92941 Avoid moving role order in election by reloading page 2017-12-05 14:22:59 +01:00
klmp200 bc7cfc2dba Merge branch 'elections' into 'master'
Election improvements

See merge request ae/Sith!135
2017-12-04 13:36:25 +01:00
klmp200 2f3b481037 Improve deletion and add ordering on roles 2017-12-02 19:05:48 +01:00
klmp200 625b5132c4 Election list deletion and ux improvements 2017-12-01 19:45:28 +01:00
Skia 9ca82af219 Merge branch 'counter' into 'master'
fix can_buy in customer

See merge request ae/Sith!134
2017-12-01 16:03:16 +01:00
krophil 4af3239f4c fix can_buy in customer 2017-12-01 01:44:38 +01:00
gnikwo 88d68ea510 Ready for review 2017-11-28 15:12:25 +01:00
gnikwo 5cd031f579 Ready for review 2017-11-28 15:12:25 +01:00
gnikwo 21b24f2891 Club views and discussions fixes 2017-11-28 15:12:04 +01:00
gnikwo 693c3ed27e Moved club field + migrations 2017-11-28 15:09:21 +01:00
gnikwo 17d3860ec5 Fix bad merge 2017-11-28 15:09:20 +01:00
gnikwo 8d1c648032 Communication screen - without club tool 2017-11-28 15:09:05 +01:00
Skia 23d86464c8 Merge branch 'admin_area' into 'master'
Search field in Subscription admin area

See merge request ae/Sith!133
2017-11-17 12:02:31 +01:00
krophil bb47ad97a3 Search field in Subscription admin area 2017-11-17 11:48:16 +01:00
Skia 64c479a02e Merge branch 'bugfix' into 'master'
Bugfix

See merge request ae/Sith!132
2017-11-16 15:43:54 +01:00
krophil 33964e0bab Better way to check if a user is subscriber 2017-11-16 13:50:34 +01:00
klmp200 42f8ee3518 Merge branch 'teeshirt' into 'master'
Fix translations error for gifts

See merge request ae/Sith!131
2017-11-14 10:23:32 +01:00
klmp200 eb485215d9 Fix translations error for gifts 2017-11-13 18:30:05 +01:00
Skia 6ee1ee365b Merge branch 'bugfix' into 'master'
Fix AGAIN subscription display

See merge request ae/Sith!130
2017-11-09 15:22:06 +01:00
krophil 0ba69da3b6 Fix AGAIN subscription display 2017-11-09 14:49:07 +01:00
Skia 3793321c37 Update README and Markdown test assets
Signed-off-by: Skia <skia@libskia.so>
2017-11-09 14:37:29 +01:00
Skia 4bf805e2f5 Merge branch 'krophil' into 'master'
Add comment in product type

See merge request ae/Sith!126
2017-11-07 12:10:49 +01:00
krophil 846be54431 Merge branch 'teeshirt' into 'master'
Add gift function

See merge request ae/Sith!129
2017-11-06 00:55:28 +01:00
klmp200 c6847ebc47 Translations for gifts 2017-11-06 00:44:18 +01:00
klmp200 e3fd3b81ab Add gift function 2017-11-06 00:30:37 +01:00
klmp200 9ab7cb98dc Merge branch 'bugfix' into 'master'
Fix external ressources

See merge request ae/Sith!128
2017-11-05 23:31:29 +01:00
krophil f1a9344524 Fix external ressources 2017-11-05 13:27:58 +01:00
Skia 6ebdd53d98 club: make clubs viewable by old subscribers
Signed-off-by: Skia <skia@libskia.so>
2017-11-01 14:51:55 +01:00
krophil 6113de33ec Add comment in product type 2017-10-25 23:02:46 +02:00
Skia 4810934a10 Merge branch 'bugfix' into 'master'
Fix date displaying in user_detail

See merge request ae/Sith!127
2017-10-25 20:23:43 +02:00
Skia bc24baef09 Merge branch 'Tresorerie' into 'master'
Add possibility to not link an operation

See merge request ae/Sith!125
2017-10-25 20:20:08 +02:00
krophil 2bb510932b Fix date displaying in user_detail 2017-10-24 13:08:18 +02:00
krophil 5fb57e97f7 Add possibility to not link an operation 2017-10-22 22:29:36 +02:00
Skia cd4b0d8e0c Merge branch 'external_option' into 'master'
Integrate external_res variable

See merge request ae/Sith!120
2017-10-18 15:32:06 +02:00
krophil 6c957e3ce4 Integrate external_res variable 2017-10-18 14:44:47 +02:00
Skia 578fa1495d sas: fix notification callback
Signed-off-by: Skia <skia@libskia.so>
2017-10-15 12:00:33 +02:00
Skia d5c6695f80 core: improve notification callback system
Signed-off-by: Skia <skia@libskia.so>
2017-10-15 12:00:33 +02:00
Skia 9b0b381fa3 core: make populate command more predictable (should fix the random failing test)
Signed-off-by: Skia <skia@libskia.so>
2017-10-14 13:51:50 +02:00
Skia 69c7036089 Merge branch 'krophil' into 'master'
Add search form in admin

See merge request ae/Sith!124
2017-10-12 09:29:02 +02:00
Skia 56a1e09a28 Fix requirements.txt: keep django-rest-framework <3.7
Signed-off-by: Skia <skia@libskia.so>
2017-10-11 12:45:57 +02:00
Skia 3c50aa554a Add pygraphviz to requirements
Signed-off-by: Skia <skia@libskia.so>
2017-10-11 12:31:17 +02:00
Skia 7879b6dd6b core: add family graphs
Signed-off-by: Skia <skia@libskia.so>
2017-10-11 12:30:33 +02:00
krophil 3994a58a2f Add search form in admin 2017-10-11 00:01:24 +02:00
Skia 47bace2057 Merge branch 'Tresorerie' into 'master'
Enhanced display in journals

See merge request ae/Sith!123
2017-10-09 17:21:37 +02:00
Skia 7c2e562c1e locale: fix translation
Signed-off-by: Skia <skia@libskia.so>
2017-10-09 17:15:46 +02:00
krophil 3104270675 Few changes in accounting design 2017-10-09 16:24:34 +02:00
Skia 43f51813e0 sas: fix album preview
Signed-off-by: Skia <skia@libskia.so>
2017-10-06 17:57:54 +02:00
klmp200 8492903a39 Merge branch 'clubs' into 'master'
Found a way to avoid strange error for club page

See merge request ae/Sith!122
2017-10-06 17:50:59 +02:00
klmp200 4369d9f593 Found a way to avoid strange error for club page 2017-10-06 17:44:41 +02:00
Skia 87abdf7e68 trombi: update export page again
Signed-off-by: Skia <skia@libskia.so>
2017-10-06 17:29:23 +02:00
Skia a09c634ac6 core: add phonenumber template filter
Signed-off-by: Skia <skia@libskia.so>
2017-10-06 17:28:51 +02:00
Skia 8a58055d06 trombi: update export page
Signed-off-by: Skia <skia@libskia.so>
2017-10-06 16:38:36 +02:00
Skia fae2a572b1 Merge branch 'fontawesome' into 'master'
Few changes in design

See merge request ae/Sith!119
2017-10-06 15:30:30 +02:00
Skia e0517c5f4f Merge branch 'facebook-button' into 'master'
Small fix for logo in news

See merge request ae/Sith!121
2017-10-06 15:09:50 +02:00
krophil be958bca7e Small fix for logo in news 2017-10-06 12:00:12 +02:00
krophil c8c60b8b7d Few changes in design 2017-10-06 11:58:51 +02:00
Skia 0bef8d33d3 Merge branch 'clubs' into 'master'
Club tools enhacement

See merge request ae/Sith!108
2017-10-06 11:48:02 +02:00
klmp200 cec3ec8164 Club tools translations 2017-10-06 11:24:48 +02:00
klmp200 30f7835cef Operations documentation 2017-10-06 11:09:31 +02:00
klmp200 8146186447 Fix some bugs in mailings with new club tools 2017-10-06 11:09:31 +02:00
klmp200 4800db3c2c Add auto generation for mailing lists 2017-10-06 11:09:31 +02:00
klmp200 4310441269 Redirect directly on member page when adding a new member. Still has a bug : an user already member always show when success 2017-10-06 11:09:31 +02:00
klmp200 baa7be69e4 Better integration of wiki pages on clubs 2017-10-06 11:09:31 +02:00
klmp200 2c1cf2d7af Fix for club tools 2017-10-06 11:09:31 +02:00
klmp200 4026d076b3 Forgoten migration from skia and fixed migration 2017-10-06 11:09:30 +02:00
klmp200 db509bf060 Nice club presentation 2017-10-06 11:09:30 +02:00
klmp200 790d723d08 Fix page creation method for clubs 2017-10-06 11:09:30 +02:00
klmp200 f4bc1b140c Fix is_active migration 2017-10-06 11:09:30 +02:00
klmp200 12c49b285a Fix page permissions and fix migration when on sqlite backend 2017-10-06 11:09:30 +02:00
klmp200 aa49b2d4ce Fix regex for pages 2017-10-06 11:09:30 +02:00
klmp200 e2078a8c15 Sync club pages with club tree 2017-10-06 11:09:30 +02:00
klmp200 939146bddd Sync pages with club unix_name 2017-10-06 11:09:29 +02:00
klmp200 fe69cbcee1 Add page for clubs and inactive clubs 2017-10-06 11:09:29 +02:00
Skia 13620de754 Merge branch 'facebook-button' into 'master'
Enhanced news

See merge request ae/Sith!117
2017-10-05 19:29:36 +02:00
krophil 3089b484d3 Enhanced news 2017-10-02 14:29:36 +02:00
klmp200 aab589b5d1 Merge branch 'fontawesome' into 'master'
add font-awesome

See merge request ae/Sith!118
2017-09-29 14:55:25 +02:00
krophil acbeb3d3c8 add font-awesome 2017-09-29 14:35:06 +02:00
Skia 13a2cc22dd core: fix some CSS
Signed-off-by: Skia <skia@libskia.so>
2017-09-26 14:05:19 +02:00
Skia b87990e3db com: add birthdays block
Signed-off-by: Skia <skia@libskia.so>
2017-09-26 13:45:40 +02:00
Skia 7b48156259 locale: update translation
Signed-off-by: Skia <skia@libskia.so>
2017-09-26 12:13:36 +02:00
Skia cda89d66cd com: improve news page
Signed-off-by: Skia <skia@libskia.so>
2017-09-26 12:13:23 +02:00
Skia a2dc00f4e5 club: add club logo
Signed-off-by: Skia <skia@libskia.so>
2017-09-25 20:13:35 +02:00
Skia 49b77480e6 sas: clean up old notif trigger
Signed-off-by: Skia <skia@libskia.so>
2017-09-25 12:50:02 +02:00
Skia 144a56570b locale: update translations
Signed-off-by: Skia <skia@libskia.so>
2017-09-25 12:40:39 +02:00
Skia f0c34fe70c sas: add permanent notification for SAS moderation
Signed-off-by: Skia <skia@libskia.so>
2017-09-25 12:35:56 +02:00
Skia 469304585c sas: update models managers
Signed-off-by: Skia <skia@libskia.so>
2017-09-25 12:34:05 +02:00
Skia 3a16c7aab4 trombi: change comments format in export
Signed-off-by: Skia <skia@libskia.so>
2017-09-25 11:08:20 +02:00
Skia c7f5203122 trombi: add dpt/option to export
Signed-off-by: Skia <skia@libskia.so>
2017-09-24 19:39:20 +02:00
Skia d2fccdb09b Merge branch 'bugfix' into 'master'
Small fix on news deletion

See merge request !115
2017-09-18 19:46:54 +02:00
krophil 56b5fa733b Small fixes on news 2017-09-18 16:28:11 +02:00
Skia 3e769195e3 Merge branch 'facebook-button' into 'master'
Add facebook button

See merge request !112
2017-09-17 15:18:07 +02:00
krophil a89109b4e8 Add translations and small fix 2017-09-17 15:04:30 +02:00
klmp200 9318292ed8 Merge branch 'sli' into 'master'
Logo for 18

See merge request !114
2017-09-13 18:34:22 +02:00
klmp200 b1c3ea9e2c Logo for 18 2017-09-13 18:28:18 +02:00
krophil d888a6b68a Add Twitter button 2017-09-12 19:20:12 +02:00
krophil a40c48a792 Add facebook button 2017-09-12 19:04:37 +02:00
Skia d797003028 coverage: blacklist some files
Signed-off-by: Skia <skia@libskia.so>
2017-09-07 11:50:05 +02:00
Skia 04fdb251e2 subscription: fix tests
Signed-off-by: Skia <skia@libskia.so>
2017-09-07 11:21:32 +02:00
Skia 96d0ae36be subscription: rename test
Signed-off-by: Skia <skia@libskia.so>
2017-09-07 01:27:49 +02:00
krophil 2f912a197c Allow to subscribe before subscription end 2017-09-06 19:55:14 +02:00
Skia 53696b7750 locale: make news notif translation
Signed-off-by: Skia <skia@libskia.so>
2017-09-06 13:19:47 +02:00
Skia 0184b9c29b core, com: make permanent notifications for news to moderate
This needs to be made for other stuff, like the SAS or the files...

Signed-off-by: Skia <skia@libskia.so>
2017-09-06 13:17:23 +02:00
Skia dd5926b404 core: fix notif ordering
Signed-off-by: Skia <skia@libskia.so>
2017-09-06 13:05:51 +02:00
Skia 4c1b231ec9 com: add NewsDeleteView
Signed-off-by: Skia <skia@libskia.so>
2017-09-06 12:47:21 +02:00
Skia 6456d18fc4 core, com: tool bar and agenda design updates
Signed-off-by: Skia <skia@libskia.so>
2017-09-03 19:05:45 +02:00
Skia e0067c3956 Merge branch 'krophil' into 'master'
Link to old site updated

See merge request !107
2017-09-03 18:13:22 +02:00
Skia 6bad524ede com: fix news edit display
Signed-off-by: Skia <skia@libskia.so>
2017-09-03 18:12:52 +02:00
Skia 896007aedd com: fix news display
Signed-off-by: Skia <skia@libskia.so>
2017-09-03 18:10:59 +02:00
krophil 97cdf0e9d8 Link to old site updated 2017-09-03 18:04:05 +02:00
Skia 2847a4547e forum: display only viewable topics in "last unread"
Signed-off-by: Skia <skia@libskia.so>
2017-09-03 12:23:26 +02:00
Skia caa0c2099b core: fix notifications colors
Signed-off-by: Skia <skia@libskia.so>
2017-09-03 12:01:52 +02:00
Skia 283e128e93 core: jQuery UI widget theme overrides
Signed-off-by: Skia <skia@libskia.so>
2017-09-02 22:33:13 +02:00
Skia f5abfc3c12 core: still some design improvements
Signed-off-by: Skia <skia@libskia.so>
2017-09-02 20:59:45 +02:00
klmp200 6d09a9e9b0 Merge branch 'krophil' into 'master'
Oups, I did it again...

See merge request !106
2017-09-02 15:39:01 +02:00
krophil 9489b52304 Oups, I did it again... 2017-09-02 15:31:20 +02:00
klmp200 e581de0a94 Merge branch 'krophil' into 'master'
Add color palette creator + add list of refillings

See merge request !105
2017-09-02 15:28:19 +02:00
krophil e71db5a997 Add translations 2017-09-02 15:22:50 +02:00
krophil 39ce14804a Add refillings list 2017-09-02 15:16:29 +02:00
krophil 63ae89b30a Add color palette creator 2017-09-02 13:41:29 +02:00
Skia 9f259b35bd core, counter: add preferences for counter notifications
Signed-off-by: Skia <skia@libskia.so>
2017-09-02 12:42:07 +02:00
Skia 914feffbd8 locale: update translations
Signed-off-by: Skia <skia@libskia.so>
2017-09-02 02:19:48 +02:00
Skia 8b9c3fb5c6 core: improve notification box
Signed-off-by: Skia <skia@libskia.so>
2017-09-02 02:19:34 +02:00
Skia 4ca3aebc77 core: improve alert and info boxes
Signed-off-by: Skia <skia@libskia.so>
2017-09-02 02:06:22 +02:00
Skia 5c709a5416 core: great rework of the header bar
Signed-off-by: Skia <skia@libskia.so>
2017-09-01 18:31:48 +02:00
Skia 22151ef3b3 core: display news page in place of index for logged in users
Signed-off-by: Skia <skia@libskia.so>
2017-09-01 12:33:23 +02:00
Skia 4edb9a78c6 com: add agenda on news page
Signed-off-by: Skia <skia@libskia.so>
2017-09-01 12:22:38 +02:00
Skia 0532f7337a Merge branch 'jewels_subscription' into 'master'
Jewels subscription

See merge request !98
2017-08-31 17:45:54 +02:00
krophil 3be64d6a8f New subscription type for jewels
New condition to consider floats in subscriptions
2017-08-31 16:37:03 +02:00
krophil 94582a2d96 Free subscription for jewels 2017-08-31 16:18:28 +02:00
Skia 02b317eee8 locale: fix translations
Signed-off-by: Skia <skia@libskia.so>
2017-08-31 15:37:05 +02:00
klmp200 bb40d48b62 Merge branch 'nintendo_switch' into 'master'
New Sponsors page

See merge request !104
2017-08-31 14:19:05 +02:00
krophil 2bd1927e39 New Sponsors page 2017-08-31 14:11:18 +02:00
Skia 7ec9d7f8c6 gitignore: ignore coverage artifacts
Signed-off-by: Skia <skia@libskia.so>
2017-08-29 16:45:18 +02:00
Skia 0232953260 CI: add coverage report
Signed-off-by: Skia <skia@libskia.so>
2017-08-29 16:01:01 +02:00
Skia 9ee5c387c5 subscription: add tests
Signed-off-by: Skia <skia@libskia.so>
2017-08-29 15:07:03 +02:00
klmp200 5e8ae83cf2 Merge branch 'mailing' into 'master'
mailing: Oups, forgot some \n in mailing format that I couldn't see at the first time

See merge request !103
2017-08-25 16:23:01 +02:00
klmp200 1f8b035558 mailing: Oups, forgot some \n in mailing format that I couldn't see at the first time 2017-08-25 16:14:02 +02:00
Skia 5504142efa core, templates: fix logo link
Signed-off-by: Skia <skia@libskia.so>
2017-08-25 14:28:17 +02:00
Skia 0d5595c683 core: add test for Markdown syntax
Signed-off-by: Skia <skia@libskia.so>
2017-08-24 16:30:46 +02:00
Skia 30f650ecce core: use more AJAX forms in admin UI
Signed-off-by: Skia <skia@libskia.so>
2017-08-24 15:35:17 +02:00
klmp200 c0b3024cc2 Merge branch 'mailing' into 'master'
Fix permission for club in user profile

See merge request !102
2017-08-24 14:49:04 +02:00
klmp200 b0ce8b1b83 Fix permission for club in user profile 2017-08-24 14:42:57 +02:00
Skia b5e7a0d747 Merge branch 'mailing' into 'master'
Fix error when deleting user from mailing when only email provided

See merge request !101
2017-08-24 00:26:38 +02:00
Skia 6c66ae6b39 Merge branch 'disable_CB' into 'master'
Allow disabling CB in crisis time

See merge request !100
2017-08-24 00:22:29 +02:00
klmp200 f65f261cfd mailing: Fix error when deleting user from mailing when only email provided 2017-08-24 00:20:20 +02:00
klmp200 6f6ad123af Allow disabling CB in crisis time 2017-08-24 00:14:36 +02:00
klmp200 8e166b75e4 Merge branch 'nintendo_switch' into 'master'
Changing urls

See merge request !99
2017-08-22 23:53:56 +02:00
krophil b74600b3f3 Changing urls 2017-08-22 23:47:55 +02:00
Skia 4ad923ff06 Merge branch 'mailing' into 'master'
Mailing list system

See merge request !96
2017-08-22 23:02:46 +02:00
klmp200 4f6109e27c Refactor mailings email 2017-08-22 22:39:12 +02:00
klmp200 c83a990165 Wtf migration blocking me 2017-08-22 16:03:24 +02:00
klmp200 62b59f92fd Translations 2017-08-22 15:51:09 +02:00
klmp200 d179a0a6d0 Fix typo and merge migrations 2017-08-22 15:36:39 +02:00
klmp200 470680e760 Add moderation for mailing lists 2017-08-22 15:36:39 +02:00
klmp200 fe187dae38 Only begining of the mail is now needed 2017-08-22 15:36:39 +02:00
klmp200 ce9e17ea24 Some mailing list fixs 2017-08-22 15:36:39 +02:00
klmp200 9e5159152a Little right fix 2017-08-22 15:36:39 +02:00
klmp200 cc8991a938 Fix migration for mailing 2017-08-22 15:36:39 +02:00
klmp200 51992e1c30 Mailing migration 2017-08-22 15:36:39 +02:00
klmp200 72d968e9a5 Mailing migrations 2017-08-22 15:36:39 +02:00
klmp200 76efb91e40 Move mailing list admin to com 2017-08-22 15:36:39 +02:00
klmp200 69e997d587 Refactoring mailings 2017-08-22 15:36:39 +02:00
klmp200 3a6f7009fd Fix display rights in user profile for mailing 2017-08-22 15:36:39 +02:00
klmp200 e82e338e76 Fix mailing settings position 2017-08-22 15:36:39 +02:00
klmp200 8c9f02a142 Add fetch function for DSI 2017-08-22 15:36:39 +02:00
klmp200 9cb88a878d Even better mailing 2017-08-22 15:36:39 +02:00
klmp200 feaf6b73b7 Begin mailing list system 2017-08-22 15:36:39 +02:00
klmp200 df42617cda Merge branch 'krophil' into 'master'
Add a new subscription for the Welcome Week

See merge request !97
2017-08-21 21:34:20 +02:00
krophil e785ad985f Add a new subscription for the Welcome Week 2017-08-21 21:06:05 +02:00
Skia d511bdef03 Merge branch 'consignes' into 'master'
Wtf forgot this little guy

See merge request !95
2017-08-17 11:51:43 +02:00
klmp200 6cfdcb093f Wtf forgot this little guy 2017-08-17 00:10:12 +02:00
Skia 83b00450eb com: improve news admin view
Signed-off-by: Skia <skia@libskia.so>
2017-08-16 15:37:35 +02:00
klmp200 d864c00472 Merge branch 'matmatronch' into 'master'
Translations fix for matmatronch

See merge request !94
2017-08-15 19:11:12 +02:00
klmp200 f49f889d5b Translations fix 2017-08-15 18:57:50 +02:00
Skia b5599db9bf Merge branch 'matmatronch' into 'master'
Nouveau matmatronch

See merge request !92
2017-08-15 18:13:11 +02:00
klmp200 0f408d9d89 Translations 2017-08-15 18:08:32 +02:00
klmp200 a9e23920ee Matmat renames 2017-08-15 18:05:07 +02:00
klmp200 dc571836ae Fixed issues with department and sex form 2017-08-15 18:05:07 +02:00
klmp200 86d62f12e7 Fully functionnal Matmatronch 2017-08-15 18:05:07 +02:00
klmp200 349475cd37 Functionnal search engine 2017-08-15 18:05:07 +02:00
klmp200 39616874a8 Fix broken pagination by remembering last search 2017-08-15 18:05:07 +02:00
klmp200 9ff8f02a45 Form remember last entered values 2017-08-15 18:05:07 +02:00
klmp200 b7c382a1a8 Basic search structure 2017-08-15 18:05:07 +02:00
Skia 0ffd7485e3 Merge branch 'consignes' into 'master'
Add limit for ecocup recording

See merge request !90
2017-08-15 18:03:51 +02:00
klmp200 3e950e1dd1 Migration fix 2017-08-15 17:37:25 +02:00
klmp200 de4521c192 Ecocup limit comments 2017-08-15 14:03:56 +02:00
klmp200 748e3ae326 Refactor and migration corrections 2017-08-15 13:57:49 +02:00
klmp200 240b68f98d Allow negative amount for customer 2017-08-15 13:57:49 +02:00
klmp200 d60e14a303 Migration from old database 2017-08-15 13:57:49 +02:00
klmp200 7588cc8f73 Hardcoding ecocup values 2017-08-15 13:57:49 +02:00
klmp200 40927fa13d Add limit for ecocup recording 2017-08-15 13:57:49 +02:00
Skia 2058d58db6 Merge branch 'bottomLinks' into 'master'
Bottom links migrations to internal wiki

See merge request !93
2017-08-15 12:00:19 +02:00
klmp200 22407e2f85 Bottom links migrations to internal wiki 2017-08-15 03:30:39 +02:00
Skia 6f79c6c590 core: fix paragraph annoying scroll bar
Signed-off-by: Skia <skia@libskia.so>
2017-08-09 22:02:41 +02:00
Skia d3796479ee core: put the AE logo in the CSS
Signed-off-by: Skia <skia@libskia.so>
2017-08-09 16:40:03 +02:00
Skia 61d2765510 core: refactor user picture page algorithm
Signed-off-by: Skia <skia@libskia.so>
2017-08-02 20:12:41 +02:00
Skia 3eea8ed4e3 trombi: make the export page
Signed-off-by: Skia <skia@libskia.so>
2017-08-01 13:54:35 +02:00
Skia 8bf72daa31 trombi: prevent double comment using "Precedent" browser button
Signed-off-by: Skia <skia@libskia.so>
2017-07-30 11:52:10 +02:00
Skia e4e4eae11b Merge branch 'subscriptions' into 'master'
Some selected club members can now make people subscribe and fix major security …

Le bdf m'as demandé si c'était possible pour eux de faire des cotisations pour les nouveaux
Je retire WIP quand j'ai la confirmation du bureau que je peux faire ça
Par contre il j'y ai patché une grosse faille de sécurité : se mettre curieux à l'AE suffit à avoir tous les droits de board_member

See merge request !91
2017-07-26 20:48:01 +02:00
klmp200 c56094eaaf Some selected club members can now make people subscribe and fix major security hole in board_member verification 2017-07-26 20:31:29 +02:00
Skia b99bbc385a css: fix overflow problem
Signed-off-by: Skia <skia@libskia.so>
2017-07-26 18:41:21 +02:00
Skia e085556def sas: allow ancient subscriber to add people on pictures
Signed-off-by: Skia <skia@libskia.so>
2017-07-26 16:55:00 +02:00
Skia 8501df0bef trombi: improve templates
Signed-off-by: Skia <skia@libskia.so>
2017-07-26 16:53:40 +02:00
Skia e80f5b6f0f Merge branch 'krophil' into 'master'
Add a nice favicon

See merge request !88
2017-07-06 14:14:09 +02:00
krophil 2ae4e36eea Add a nice favicon 2017-07-06 14:04:24 +02:00
Skia 8a95f71596 trombi: add missing quick notif
Signed-off-by: Skia <skia@libskia.so>
2017-07-05 21:54:32 +02:00
Skia de96c07ba8 trombi: allow admins to manually add users
Signed-off-by: Skia <skia@libskia.so>
2017-07-05 21:41:33 +02:00
Skia a108291422 trombi: update people ordering
Signed-off-by: Skia <skia@libskia.so>
2017-07-05 21:41:33 +02:00
Skia 282d9cd180 trombi: add TrombiUser to admin
Signed-off-by: Skia <skia@libskia.so>
2017-07-05 21:41:33 +02:00
Skia 15a9eff599 forum: fix time localization
Signed-off-by: Skia <skia@libskia.so>
2017-07-05 21:41:33 +02:00
Skia 3c22db5bd2 Merge branch 'bugfix' into 'master'
Small fix on accounting permissions

See merge request !87
2017-06-26 11:23:07 +02:00
krophil f8e0147bf5 Small fix on accounting permissions 2017-06-26 11:17:30 +02:00
Skia 71f9e359c0 Merge branch 'forum' into 'master'
Remove ambiguity for topic creation in a category

See merge request !85
2017-06-14 08:35:17 +02:00
krophil 7515e826f8 Remove ambiguity 2017-06-14 00:47:16 +02:00
Skia 58dc179163 Merge branch 'bugfix' into 'master'
Fix import in trombi views

See merge request !84
2017-06-13 11:57:04 +02:00
krophil e08a8c4927 Fix import in trombi views 2017-06-13 11:45:17 +02:00
Skia fbcf525378 Merge branch 'pep8' into 'master'
Pep8

See merge request !81
2017-06-13 11:39:38 +02:00
Skia 753fe0d176 Merge branch 'bugfix' into 'master'
Fix trombi creation

See merge request !83
2017-06-13 11:39:17 +02:00
krophil 890943ea48 Fix trombi creation 2017-06-13 10:55:12 +02:00
krophil 9447de4468 fix merging 2017-06-13 10:49:11 +02:00
krophil 69c95cfd37 Format trombi 2017-06-13 10:22:41 +02:00
krophil 113c9e696b Format subscription 2017-06-13 10:07:57 +02:00
krophil cd46e099b6 Format sith 2017-06-13 10:04:13 +02:00
krophil e2311dcb71 Format sas 2017-06-13 10:04:13 +02:00
krophil 13ec91e7e5 Format launderette 2017-06-13 10:04:13 +02:00
krophil 6a43c2cef6 Format forum 2017-06-13 10:04:13 +02:00
krophil b3466237ca Format settings 2017-06-13 10:04:13 +02:00
krophil 4395d62cd8 Format eboutic 2017-06-13 10:04:13 +02:00
krophil d722efc40f Format counter 2017-06-13 10:04:13 +02:00
krophil e7de8b2aec Format core 2017-06-13 10:04:13 +02:00
krophil 4f4ea5dde9 Format com 2017-06-13 09:48:24 +02:00
krophil 73b2c9d4c5 Format club 2017-06-13 09:48:24 +02:00
krophil 544ff630a5 Format accounting 2017-06-13 09:48:24 +02:00
Skia 38026025af trombi: add safeguard on user deletion
Signed-off-by: Skia <skia@libskia.so>
2017-06-13 00:35:49 +02:00
Skia f85ce96225 trombi: Many UI/UX improvements
Signed-off-by: Skia <skia@libskia.so>
2017-06-13 00:23:56 +02:00
Skia f26f2f4229 trombi: add custom club memberships
Signed-off-by: Skia <skia@libskia.so>
2017-06-12 23:52:59 +02:00
Skia 5df9be9188 Move computing of start of semester to core/utils
Signed-off-by: Skia <skia@libskia.so>
2017-06-12 22:53:25 +02:00
Skia a96efafc8e Merge branch 'counter' into 'master'
Fix operation form

See merge request !82
2017-06-12 22:38:21 +02:00
Skia 8ca455a398 Epic fix
Signed-off-by: Skia <skia@libskia.so>
2017-06-12 22:35:22 +02:00
krophil 43b1d1f3b5 Fix operation form 2017-06-12 19:29:47 +02:00
Skia 37a5db537b Re-fix AnonymousUser
Signed-off-by: Skia <skia@libskia.so>
2017-06-12 14:01:28 +02:00
Skia b06f270ea5 Revert "Fix AnonymousUser"
This reverts commit e7f7c57558.
2017-06-12 13:57:08 +02:00
Skia ecf5465716 Merge branch 'Tresorerie' 2017-06-12 08:13:05 +02:00
Skia 88d81df23d Fix Trombi edit comment view
Signed-off-by: Skia <skia@libskia.so>
2017-06-11 23:16:35 +02:00
Skia b4be40a3a7 Change the Markdown super and sub texts not to break the Ragots
Signed-off-by: Skia <skia@libskia.so>
2017-06-10 21:39:56 +02:00
Skia 58beb551e8 Fix unread messages in topic
Signed-off-by: Skia <skia@libskia.so>
2017-06-10 21:05:36 +02:00
Skia ca047d9655 Damn, I broke the tests!
Signed-off-by: Skia <skia@libskia.so>
2017-06-10 20:28:01 +02:00
Skia a89fb23d33 That's just a ridiculous little fix
Signed-off-by: Skia <skia@libskia.so>
2017-06-10 20:03:37 +02:00
Skia ce46a9d9da Some small clean up and refactoring
Signed-off-by: Skia <skia@libskia.so>
2017-06-10 19:56:47 +02:00
Skia 2925cde8ab Add a MarkdownInput widget, and make use of it
Signed-off-by: Skia <skia@libskia.so>
2017-06-10 19:40:47 +02:00
Skia 4b9fa0cd57 Fix some Markdown and add basic textarea helper
Signed-off-by: Skia <skia@libskia.so>
2017-06-10 19:14:58 +02:00
Skia 457fc36e16 Fix markdown rendering on some pages, and add a link to the syntax help
Signed-off-by: Skia <skia@libskia.so>
2017-06-10 16:54:19 +02:00
krophil 8ba21b94dc add translations 2017-06-09 16:39:38 +02:00
krophil 0e171fbc8f add some validationErrors on OperationForm 2017-06-09 16:06:18 +02:00
Skia 1bcde80a28 Fix cache clearing
Signed-off-by: Skia <skia@libskia.so>
2017-06-07 22:51:17 +02:00
Skia 23293ea88e Small style update to improve Markdown rendering
Signed-off-by: Skia <skia@libskia.so>
2017-06-07 22:49:59 +02:00
Skia 10ee5e1708 Merge branch 'counter' into 'master'
Tests for counter

See merge request !77
2017-06-07 19:45:05 +02:00
Skia 99ed1c0c79 Merge branch 'elections' into 'master'
Amélioration des élections

See merge request !79
2017-06-07 19:41:35 +02:00
klmp200 ea09604b2e Other line fix 2017-06-07 19:36:55 +02:00
krophil eb510e102c Test for click 2017-06-07 19:28:15 +02:00
klmp200 b6a68fa090 Fix some ugly lines 2017-06-07 19:16:55 +02:00
klmp200 41a9bf9953 Elections : Fix tests, cleaned urls and add nice description 2017-06-07 18:49:24 +02:00
klmp200 c4389bb9cd Add a way for admin to delete elections and add archive system 2017-06-07 18:42:16 +02:00
klmp200 0076c9cdb4 Macro for pagination 2017-06-07 18:39:42 +02:00
klmp200 d3fbc65cdc Pep8 for elections 2017-06-07 18:39:42 +02:00
krophil 0af72500c6 Add some tests on counter 2017-06-07 18:36:26 +02:00
Skia 63acf588ca Add basic unfinished counter test 2017-06-07 18:36:26 +02:00
Skia 969d5699fa Merge branch 'subscriptions' into 'master'
Subscriptions stats

Des « statistiques » de cotisations
C'est pratique

See merge request !78
2017-06-07 18:05:55 +02:00
klmp200 801d287c0c Random colors for stats graphs 2017-06-07 15:23:32 +02:00
klmp200 22945483d6 Add some graphics for subscriptions stats 2017-06-07 14:12:03 +02:00
klmp200 88762c492f Subscriptions stats optimisations + form for start and end date 2017-06-06 23:27:57 +02:00
klmp200 1c05671784 Added forgotten column and a link in tools 2017-06-06 22:03:56 +02:00
klmp200 e97135bf47 Add subscriptions stats 2017-06-06 22:03:56 +02:00
Skia e7f7c57558 Fix AnonymousUser
Signed-off-by: Skia <skia@libskia.so>
2017-06-06 19:37:45 +02:00
Skia cef2230640 Merge branch 'bugfix' into 'master'
fix topic creation

See merge request !76
2017-06-02 10:57:24 +02:00
krophil 1ebfcdedec fix topic creation 2017-06-02 10:55:50 +02:00
Skia 3521ad699e forum: fix reply page
Signed-off-by: Skia <skia@libskia.so>
2017-06-02 08:47:47 +02:00
Skia 38622c98e9 Merge branch 'wip' into 'master'
Forum improvements

See merge request !75
2017-06-01 13:31:35 +02:00
Skia f3c1ab4ae4 forum: use short names
Signed-off-by: Skia <skia@libskia.so>
2017-05-31 23:56:47 +02:00
Skia 11d20f43e5 Add some missing translations
Signed-off-by: Skia <skia@libskia.so>
2017-05-31 23:43:22 +02:00
Skia 978b891137 Add a cache clearing mechanism to fix rights update problems
Signed-off-by: Skia <skia@libskia.so>
2017-05-31 21:49:54 +02:00
Skia 22330e6d9f forum: add on_delete=models.SET_NULL on _last_message fields
Signed-off-by: Skia <skia@libskia.so>
2017-05-31 19:50:41 +02:00
Skia e5ce9658ee Fix images and links parsing in doku_to_markdown
Signed-off-by: Skia <skia@libskia.so>
2017-05-31 19:13:43 +02:00
Skia 463e0b7055 Again some small forum improvements
Signed-off-by: Skia <skia@libskia.so>
2017-05-31 00:41:39 +02:00
Skia 136d0f3fa0 Add basic BBcode translator
Signed-off-by: Skia <skia@libskia.so>
2017-05-30 23:40:01 +02:00
Skia 32ac6640ab Small fix with forum topic titles
Signed-off-by: Skia <skia@libskia.so>
2017-05-30 23:37:06 +02:00
Skia 06b67f1d27 Still reducing the number of queries on the Forum
Signed-off-by: Skia <skia@libskia.so>
2017-05-30 23:37:06 +02:00
Skia ba65dc5d46 Fix doku_to_markdown
Signed-off-by: Skia <skia@libskia.so>
2017-05-30 19:33:09 +02:00
Skia 1f0a34fb6c Finish the Forum migrate script 2017-05-30 19:33:09 +02:00
Skia 97a39b0652 Make **a lot** of Forum improvements in reducing the number of queries per page 2017-05-30 19:33:09 +02:00
Skia d7135e4d27 Make a lot of pimp in the Forum 2017-05-30 19:33:09 +02:00
Skia ec307cd5df Add db index in counter 2017-05-30 19:33:09 +02:00
Skia cf062a35d3 Add query reductions in core 2017-05-30 19:33:09 +02:00
Skia e689f7f1db Add index and query reduction in clubs 2017-05-30 19:33:09 +02:00
Skia 2f5bd7d2ef Fix Weekmail article creation view's rights 2017-05-17 10:56:38 +02:00
Skia 23fe797a9e Make less DB queries (particularly in the Forum) 2017-05-14 04:38:33 +02:00
Skia 862a4619b3 Add doku_to_markdown function 2017-05-14 03:17:42 +02:00
Skia 8c151fa498 Add support for image sizing in Markdown 2017-05-14 01:03:50 +02:00
Skia 0a84ef8438 Allow to unmoderate news 2017-05-13 18:32:13 +02:00
Skia 231cb236dc Add moderation tool to Trombi 2017-05-12 18:42:52 +02:00
Skia adeda41b52 Add profiles to Trombi 2017-05-12 10:25:26 +02:00
Skia d88ffae51b Change Trombi permissions 2017-05-12 09:07:35 +02:00
Skia a0bd5ee8ff Some more trombi pimping 2017-05-11 18:34:05 +02:00
Skia a485ff1b8e Remove useless timezone import 2017-05-11 16:18:30 +02:00
krophil d79416f80a fix date format in Trombi model 2017-05-11 13:25:51 +02:00
Skia 47a96829d0 Reset trombi's migrations 2017-05-10 23:33:24 +02:00
Skia d913b8b64f Some more pimp in Trombi + translations 2017-05-10 23:30:20 +02:00
Skia 35f983131f Improve Trombi again with pictures, notifs, and style! 2017-05-10 23:05:05 +02:00
Skia f2b2ff533d Rename Matmat to Trombi 2017-05-10 22:17:05 +02:00
Skia dec1a2cdd7 Add profile form in matmat 2017-05-10 21:59:22 +02:00
Skia e00c948da9 Improve Matmat, still needs a profile form 2017-05-10 19:19:33 +02:00
Skia b3bc33a319 Add first Matmat' app 2017-05-10 19:19:33 +02:00
Skia 5060114305 Add missing forum migration (and tiny translation fix) 2017-05-10 19:18:33 +02:00
Skia 319bb0c2d1 Fix important rights problem in clubs 2017-05-10 19:16:18 +02:00
Skia bf38de2db8 Merge branch 'tempcss' into 'master'
Few modifications in accordance with com

See merge request !74
2017-05-10 16:19:33 +02:00
krophil 05d1f43b55 Few modifications in accordance with com 2017-05-10 15:32:50 +02:00
Skia a0f47cac80 Merge branch 'tempcss' into 'master'
[style|design].[sass|css]

See merge request !69
2017-05-10 11:20:30 +02:00
klmp200 e59d769dac Doc for scss 2017-05-10 11:13:49 +02:00
klmp200 200af57971 Put scss in renderer 2017-05-10 10:49:34 +02:00
klmp200 f87ec1e395 Better lisibility for scss 2017-05-10 10:49:34 +02:00
klmp200 d083a67725 Change year of license on some files 2017-05-10 10:49:34 +02:00
klmp200 acef5be8b3 New lite home made scss processor 2017-05-10 10:49:34 +02:00
klmp200 630fdf93a4 Refactoring for compilestatic 2017-05-10 10:49:34 +02:00
klmp200 79c769351d Add simple way to compile scss files 2017-05-10 10:49:34 +02:00
klmp200 b23d322a29 Instruction for prod with scss 2017-05-10 10:49:34 +02:00
klmp200 ee7fd1c423 Rename temporary_design 2017-05-10 10:49:34 +02:00
krophil 2048f27d58 New temporary design 2017-05-10 10:49:34 +02:00
Skia b401efc6a5 Merge branch 'krophil' into 'master'
Add small explanation in subscriptions

See merge request !67
2017-05-10 10:42:32 +02:00
krophil 95d5907a3e Add translation 2017-05-10 10:37:49 +02:00
krophil 87c457498c Add small explanation in subscriptions 2017-05-10 10:32:30 +02:00
Skia 5920e0e52a Merge branch 'bugfix' into 'master'
Fix crash when no target_type specified on accounting

Il y a aussi d'autres commit que j'ai oublié de faire merge

See merge request !71
2017-05-07 19:43:55 +02:00
klmp200 2ef3c0260a Fix error on accounting when no target_type specified 2017-05-06 21:15:44 +02:00
klmp200 7cb9ea40ac Anonymous users can't edit weekmail 2017-05-06 20:48:48 +02:00
klmp200 5a7b743c83 Try fix right issues in counter admin 2017-05-06 20:48:48 +02:00
Skia 7c069bb3ee Merge branch 'weekmail' into 'master'
color to hexa and change email for weekmail

See merge request !70
2017-05-05 15:33:13 +02:00
krophil 635702b58f color to hexa and change email for weekmail 2017-05-05 15:28:53 +02:00
Skia ca4152aaf2 Reset right public key for Eboutic 2017-05-04 23:25:58 +02:00
Skia 778b7b22f2 Add Eboutic user guides and reference examples 2017-05-02 18:23:46 +02:00
Skia a12b772587 Add some Eboutic tests 2017-05-01 19:39:28 +02:00
Skia c7f48bd5f7 Fix counter view with no stock 2017-05-01 19:39:28 +02:00
Skia 58fdb36911 Merge branch 'Elections' into 'master'
Some tests for election

See merge request !47
2017-05-01 15:58:49 +02:00
Skia 8b1a19e2ff Delete django.mo file that reappeared with the stock app 2017-05-01 15:10:18 +02:00
klmp200 0b81d6a4c6 Merge branch 'weekmail' into 'master'
New css for weekmail

See merge request !68
2017-05-01 13:17:58 +02:00
krophil d7305488b6 Add new banner 2017-04-28 13:59:10 +02:00
krophil 7815796d8b New css for weekmail 2017-04-27 15:31:18 +02:00
Skia c0531feb27 Merge branch 'stock' into 'master'
Stock

See merge request !65
2017-04-25 16:17:24 +02:00
Skia a99cb3e0db Add header to stock files 2017-04-25 16:17:04 +02:00
klmp200 f2aadae8e8 Fix errors on election tests 2017-04-25 15:30:57 +02:00
klmp200 b5363c2987 Firsts tests for elections 2017-04-25 15:30:57 +02:00
Skia e26ad85729 Reset stock migrations 2017-04-25 09:49:05 +02:00
Skia 116aa6b8b5 Update stock URLs 2017-04-25 09:45:13 +02:00
Skia 423313f008 Update stock translations 2017-04-25 09:41:05 +02:00
Skia df20bf6dde Reindent stock app 2017-04-25 08:57:07 +02:00
Skia 20deda8a8e Merge branch 'master' into stock 2017-04-24 18:07:25 +02:00
Skia 83deae5964 Apply GPLv3 to Sith, and add header to every concerned file 2017-04-24 17:51:12 +02:00
Skia 8c82c27483 Add helpers in CONTRIBUTING 2017-04-24 17:35:55 +02:00
Skia 16b6b137d7 Merge branch 'krophil' into 'master'
Proposal for summary sending confirmation

See merge request !66
2017-04-19 11:06:19 +02:00
krophil 553b33c313 Proposal for summary sending confirmation 2017-04-19 11:01:56 +02:00
Skia 6a815e5a21 Small news improvement and bug fixes 2017-04-12 21:08:51 +02:00
Skia 44dacce9f2 Add forum signature 2017-04-12 19:38:54 +02:00
Skia 3aa5070a38 Add preview button in the Forum 2017-04-12 19:26:27 +02:00
Skia 830e94d73c Show that a message exists even if we can't see it 2017-04-10 23:27:34 +02:00
Skia 24c02f4638 Fix last message when the real last is deleted 2017-04-10 16:18:13 +02:00
Skia 9e61b11827 Mark all messages as read even if user can't see them 2017-04-10 15:33:49 +02:00
Skia cbfaf13536 Merge branch 'counter' into 'master'
Add CB sums in invoice calls

See merge request !64
2017-04-05 15:11:46 +02:00
klmp200 edc438bc0e More readability for sum 2017-04-05 15:08:11 +02:00
klmp200 6ca183ad55 Better sum writing 2017-04-05 14:23:51 +02:00
klmp200 53a2a160be Add CB refills sum 2017-04-05 13:48:43 +02:00
Skia ec8ee15d0e Merge branch 'bugfix' into 'master'
Serious counter fix

See merge request !62
2017-04-04 15:48:59 +02:00
klmp200 34f3fadd3d Rename counter mixin 2017-04-04 15:45:02 +02:00
klmp200 d4815df55f Better right counter management 2017-04-03 15:21:07 +02:00
klmp200 824411b13d Rights fix for counters 2017-04-03 13:50:28 +02:00
klmp200 1430479a1d Some rights fix 2017-04-03 11:57:28 +02:00
klmp200 5d89786c8f Serious counter fix 2017-04-03 10:46:53 +02:00
Skia a38d711c62 Merge branch 'bugfix' into 'master'
Hide start_date for non root user from clubs

See merge request !61
2017-04-03 09:47:48 +02:00
klmp200 fb09719317 Hide start_date for non root user from clubs 2017-04-03 09:41:35 +02:00
Skia 41c9f6381a Merge branch 'bugfix' into 'master'
Fix continuous tests

See merge request !60
2017-03-31 11:35:12 +02:00
Skia 231922cbaa Merge branch 'sas' into 'master'
Fixed some issues with filepaths and see the future with some preload

See merge request !59
2017-03-31 11:34:10 +02:00
klmp200 9f2566a244 Fix continuous integration 2017-03-30 22:18:03 +02:00
klmp200 60e2e0d4f9 Better to use os.path.join for paths 2017-03-30 19:13:47 +02:00
klmp200 1f844da005 Preload on sas 2017-03-28 18:46:10 +02:00
Skia 33e4cd6ca4 Merge branch 'bugfix' into 'master'
Better protection for stats

See merge request !58
2017-03-28 15:58:30 +02:00
klmp200 8787e5e708 Better protection for stats 2017-03-28 15:00:09 +02:00
Skia a078bae260 Merge branch 'bugfix' into 'master'
Fix broken accounting + security fixs

See merge request !57
2017-03-28 08:11:02 +02:00
klmp200 63506b1506 Protect stats from other users 2017-03-28 01:03:31 +02:00
klmp200 dfd465c7f9 Fix bug where customer can't buy an item when they have the just amount 2017-03-28 00:55:25 +02:00
klmp200 0d918d80d3 Avoid negative value in refilings 2017-03-28 00:34:58 +02:00
klmp200 ccd67e50b8 Avoid unothorised customer to buy in counter by modifying url 2017-03-27 23:28:06 +02:00
klmp200 5eb1e609cc Fixed tests issues 2017-03-27 22:47:24 +02:00
Skia 50413abf76 Fix a weekmail deleteview, and make some translate fix 2017-03-27 15:16:01 +02:00
Skia b28ce200e6 Fix some translations 2017-03-27 14:31:58 +02:00
Skia 3cf1628435 Fix weekmail new article link 2017-03-24 14:01:05 +01:00
Skia 39b32d456c Some com templates improvments and reordering some models 2017-03-24 09:19:15 +01:00
Skia d2da5716ba Automodere profile files 2017-03-24 08:43:13 +01:00
Skia e56b2476b7 Fix notifications local time 2017-03-17 18:11:30 +01:00
Skia 0887fe6c9e Arg, forgot another Ariadne's thread fix 2017-03-16 08:15:16 +01:00
Skia 825228cad6 Forum cosmetic 2017-03-15 19:24:01 +01:00
Skia 3993d17efe Fix forum Ariadne's thread 2017-03-15 18:35:15 +01:00
Skia f400be3a79 Refactor topic to use paginator instead of custom paging 2017-03-15 18:34:22 +01:00
Skia 701f23b539 Merge branch 'bugfix' into 'master'
forgotten o of shame (not for me)

See merge request !55
2017-03-15 08:15:17 +01:00
klmp200 cfcb671bf0 forgoten o of shame (not for me) 2017-03-14 19:09:12 +01:00
Skia 5e0f790247 Merge branch 'counter' into 'master'
Pagination for cash sumary

See merge request !53
2017-03-14 17:39:03 +01:00
klmp200 493d48bcca Pagination length in settings 2017-03-13 23:33:43 +01:00
klmp200 e4deacbe56 Pagination for cash sumary 2017-03-13 16:32:59 +01:00
Skia 3fd4d4b04b Merge branch 'Tresorerie' into 'master'
Tresorerie

Many modifications linked to the issue #23

See merge request !48
2017-03-12 23:05:44 +01:00
Skia 729a3608ba Add some pagination on forum topics 2017-03-12 20:40:37 +01:00
krophil 5932aad9fa Improve journal removing 2017-03-12 20:33:17 +01:00
krophil 5f9ec9a2ab Merge branch 'Tresorerie' of https://ae-dev.utbm.fr/ae/Sith into Tresorerie 2017-03-12 20:22:52 +01:00
Skia 65e2514df2 Small template fixes in forum 2017-03-12 18:31:35 +01:00
Skia a56d3a3088 Add a help_text to Weekmail edit form 2017-03-12 18:13:04 +01:00
Skia 73cbfd3e82 Add Forum ordering number 2017-03-12 18:06:01 +01:00
klmp200 0bf457de50 Hiding some already forbidden stuff 2017-03-11 11:57:37 +01:00
krophil 8329a19cc2 fix permissions 2017-03-11 11:57:37 +01:00
krophil 95775d3b9b adaptations for settings and deletion checked 2017-03-11 11:57:37 +01:00
klmp200 6c8671c160 Better club roles in settings 2017-03-11 11:57:37 +01:00
krophil 1acac17d7e Several modifications in accounting 2017-03-11 11:57:37 +01:00
krophil 8133db804e fix permission for companies 2017-03-11 11:57:37 +01:00
krophil 554929b4ec small fix in canViewList 2017-03-11 11:57:37 +01:00
Skia ffbad7e2e7 Merge branch 'wiki' into 'master'
Fix accents in wiki page name and allow to delete a page

See merge request !52
2017-03-08 14:37:59 +01:00
klmp200 95f984824a Fix accents in wiki page name and allow to delete a page 2017-03-08 14:11:56 +01:00
Skia b90d930594 Merge branch 'bugfix' into 'master'
No negative values for cash summary

See merge request !51
2017-03-03 00:04:47 +01:00
klmp200 158a140aa4 No negative values for cash summary 2017-03-01 10:21:57 +01:00
Skia 39b102d8aa README: add counting lines of code 2017-02-27 15:41:25 +01:00
krophil ebe76c83c7 fix permissions 2017-02-27 01:10:01 +01:00
krophil 9152688efd adaptations for settings and deletion checked 2017-02-26 18:04:58 +01:00
klmp200 92bc6cf96f Better club roles in settings 2017-02-26 18:04:58 +01:00
krophil c19e2d1cb0 Several modifications in accounting 2017-02-26 18:04:58 +01:00
krophil 346e07f0a8 fix permission for companies 2017-02-26 18:04:58 +01:00
krophil b3c2c79975 small fix in canViewList 2017-02-26 18:04:58 +01:00
klmp200 fa1a4599b6 Merge branch 'sas_right_fix' into 'master'
Sas right fix

See merge request !50
2017-02-26 17:38:20 +01:00
klmp200 86c74b22de Fix sas rights 2017-02-26 17:35:01 +01:00
klmp200 b02d72eab4 Fix debug-toolbar with jinja 2017-02-26 17:00:09 +01:00
Skia 7d99f02a4d forum: reply page, CSS, and first_unread fix 2017-02-25 14:38:10 +01:00
Skia 777fdd7bd5 Again, lot of forum improvements 2017-02-24 17:22:13 +01:00
Skia fe07ee0963 Still lot of forum improvements, both rights and cosmetic 2017-02-24 15:55:50 +01:00
Skia 10d96de385 Translations 2017-02-24 04:37:14 +01:00
Skia f262014f9b Some various forum fixes and improvements 2017-02-24 04:37:01 +01:00
Skia d6b5db4a4b Sanitize page name 2017-02-24 04:36:36 +01:00
Skia 4d6c4314e2 Bugfix with property/callable 2017-02-24 04:36:10 +01:00
Skia 801f6ec786 Translations and small fix in the forum 2017-02-24 03:28:44 +01:00
Skia aa07749a47 Reset forum migrations 2017-02-24 03:16:21 +01:00
Skia 59dfcbd567 Merge branch 'forum' into 'master'
Forum

See merge request !49
2017-02-24 03:08:07 +01:00
Skia dea234f98a Change is_subscriber and was_subscriber to cached_properties 2017-02-24 02:59:59 +01:00
Skia 11e05050f7 Fix tests and force Markdown renderer to escape HTML 2017-02-24 02:45:37 +01:00
Skia daee59f772 Change spans to sub and sup markups 2017-02-24 02:04:39 +01:00
Skia 5f1e4ebede Merge branch 'markdown' into forum 2017-02-24 02:02:59 +01:00
Skia 5897318cc6 Fix user picture view with Jinja update 2017-02-24 01:52:26 +01:00
Skia d3514e85f4 Fix settings to work with toolbar 2017-02-24 01:52:26 +01:00
Skia a4abf50d18 Allow former subscribers to see user profiles 2017-02-24 01:52:26 +01:00
Skia a4984317e9 Add Django debug toolbar 2017-02-24 01:52:22 +01:00
Skia 1e95fb6873 Make use of cached_property in User model 2017-02-24 01:50:14 +01:00
Skia c66b9b0512 Lot of small improvement in the forum 2017-02-24 01:50:09 +01:00
Skia 3b16704227 Add basic moderation to forum 2017-02-24 01:50:05 +01:00
Skia 138711c70c Some tiny fixes in the forum 2017-02-24 01:50:00 +01:00
Skia 6764224856 Fix quote answer and unread messages display 2017-02-24 01:49:48 +01:00
Skia aa93211025 Add support for editing album date 2017-02-21 14:29:58 +01:00
Skia 318c9ff9ad Add trigger to update Whoosh index on User update 2017-02-15 22:01:33 +01:00
Skia 52a671583e Fix blockquote 2017-02-07 00:10:00 +01:00
Skia ecbfe0822f Another version of the indice/exposants 2017-02-06 20:21:34 +01:00
Skia 579a68362d Add some rules 2017-02-06 20:21:34 +01:00
Skia 254126fd79 Add last unread function 2017-02-06 20:20:39 +01:00
Skia 494062fbbe Fix thumbnail generation for album upload view 2017-02-02 23:07:45 +01:00
Skia bf8a2a03ff Allow former subscribers to lookup people 2017-02-02 22:56:05 +01:00
Skia 4cc57c183e Add some better right management to forum 2017-01-28 20:58:54 +01:00
Skia 653d9d4707 Some other great forum improvements 2017-01-21 22:47:30 +01:00
Skia 93f5096140 Improve forum style and templates 2017-01-21 12:28:32 +01:00
Skia ff77df3646 Add basic right management to forum. Need to test it! 2017-01-21 04:51:37 +01:00
Skia 4dd6f01e60 Add Ariadne's thread 2017-01-21 04:19:15 +01:00
Skia ea52462217 Add Forum 2017-01-21 03:42:06 +01:00
Skia fcaa740710 Merge branch 'bilanTresorerie' into 'master'
small fix in pdf generation for operations

See merge request !46
2017-01-20 17:41:23 +01:00
krophil 6f48b4a2b0 small fix in pdf generation for operations 2017-01-20 16:00:02 +01:00
Skia 27e69fd3b8 Bad hack to fix Firefox broken autofocus 2017-01-18 19:09:58 +01:00
Skia e8b69defe7 Add report covers 2017-01-16 14:56:30 +01:00
Skia 4954c610f8 Add basic rights to weekmail 2017-01-15 23:09:30 +01:00
Skia ae0b7699f3 Finish weekmail, and fix preferences page 2017-01-15 23:02:03 +01:00
Skia 147809bb5d Some great weekmail improvements 2017-01-15 22:58:38 +01:00
Skia 83555a3640 Add preferences and improve weekmail 2017-01-15 22:58:38 +01:00
Skia d988c09315 Almost finish the weekmail 2017-01-15 22:58:38 +01:00
Skia 176b1bf588 Fix QuickNotifMixin 2017-01-15 22:58:37 +01:00
Skia 097d238962 Improve weekmail 2017-01-15 22:58:37 +01:00
Skia 0aef7656b8 Add quick notifications prototype 2017-01-15 22:58:37 +01:00
Skia 9d1eaed625 Make some weekmail views 2017-01-15 22:58:37 +01:00
Skia 8bd8191030 WIP: first Weekmail models 2017-01-15 22:58:37 +01:00
Skia d8c9575f88 Finish the report 2017-01-15 22:57:35 +01:00
Skia f6f78533e8 Almost finish the report 2017-01-15 22:57:35 +01:00
Skia 2d808e0724 Finish slides 2017-01-15 22:57:35 +01:00
Skia 3cac563389 Add first slides and continue report 2017-01-15 22:57:35 +01:00
guillaume-renaud 2ed566b75c Stock application report addition 2017-01-15 22:57:34 +01:00
Skia 9083dfb224 First TO report 2017-01-15 22:57:34 +01:00
Skia a826fd40a3 Small update on last operations view 2017-01-13 13:13:31 +01:00
guillaume-renaud 7d10c5d837 Forms initial quantity addition 2017-01-13 12:38:04 +01:00
Skia 93e51776c1 Merge branch 'eticketUpdate' into 'master'
partners banner added

See merge request !33
2017-01-13 08:58:15 +01:00
Skia 5a305354cb Add recursive option to file props form 2017-01-12 20:55:47 +01:00
Skia 9efd85d99b Update README with dependancies 2017-01-11 00:35:04 +01:00
Skia 881afd9e0a Improve SAS main view, and make some translations 2017-01-10 23:32:17 +01:00
Skia 3f6199f6c2 Merge branch 'Elections' into 'master'
Less precise election results

See merge request !45
2017-01-10 20:29:46 +01:00
klmp200 e3711533da Less precise election results 2017-01-10 19:06:34 +01:00
Skia 766d913afe Change SAS upload pool size 2017-01-09 13:05:50 +01:00
Skia cc2caf4ba1 Merge branch 'CR' into 'master'
Add CR 01.05

See merge request !43
2017-01-08 15:01:36 +01:00
guillaume-renaud 6f88d0cf8c Translations update 2017-01-08 11:46:25 +01:00
krophil 41b5be1fba Add CR 01.05 2017-01-07 17:39:47 +01:00
krophil 4a5d789d9f partners banner added 2017-01-07 17:39:21 +01:00
guillaume-renaud 539faccab2 Update shopping list history (ShoppingListItem creation) 2017-01-07 11:17:06 +01:00
Skia d400995e9d Update setup command to ease development 2017-01-07 10:36:54 +01:00
Skia 70aaf0b1c6 Merge branch 'CR' into 'master'
add CR

See merge request !42
2017-01-05 19:55:20 +01:00
krophil 83938a69dd add CR 2017-01-05 19:44:11 +01:00
Skia 57bb072008 Merge branch 'Tresorerie' into 'master'
Add benefit on sellings view

See merge request !41
2017-01-05 18:05:32 +01:00
klmp200 2c71c18d1b --amend 2017-01-05 18:02:02 +01:00
klmp200 86e3c09bae Add benefit on sellings view 2017-01-05 15:48:06 +01:00
guillaume-renaud 62200827c2 Finish back up app Stock 2017-01-05 11:24:54 +01:00
guillaume-renaud fa97929da8 Some classes defined twice -- correction 2017-01-05 11:24:26 +01:00
guillaume-renaud 8f88f7cb70 Take item from stock form addition 2017-01-05 11:16:25 +01:00
guillaume-renaud 2f721592f1 Update stock items quantity after shopping 2017-01-05 11:15:45 +01:00
guillaume-renaud 0660ea5e64 MAJ translations ; stock acces addition in user tool 2017-01-05 11:15:04 +01:00
guillaume-renaud 21c05cc779 Addition of the ShoppingList view to know the item to buy 2017-01-05 11:14:41 +01:00
guillaume-renaud 75af525945 Addition of the StockItem class
addition of Stock app, model, templates, urls

Addition of the stock parameter to the counter admin list

Fix translation files

Creation of the Stock list, edit, create views and creation StockItem create view

Stock application creation

Addition of the StockItem class

addition of Stock app, model, templates, urls

Addition of the stock parameter to the counter admin list

Fix translation files

Creation of the Stock list, edit, create views and creation StockItem create view

Initial StockItem create form value addition

general modifications

Stock admin gestion, items list views, create and edit items

remove stock_main.jinja

Stock application creation

Addition of the StockItem class

addition of Stock app, model, templates, urls

Addition of the stock parameter to the counter admin list

Fix translation files

Creation of the Stock list, edit, create views and creation StockItem create view

Addition of the StockItem class

addition of Stock app, model, templates, urls

Addition of the stock parameter to the counter admin list

Fix translation files

Creation of the Stock list, edit, create views and creation StockItem create view

Initial StockItem create form value addition

general modifications

Stock admin gestion, items list views, create and edit items

Shopping list structure view addition

correct missing endif

a

correct missing endif

Stock application creation

addition of Stock app, model, templates, urls

Addition of the stock parameter to the counter admin list

Fix translation files

Creation of the Stock list, edit, create views and creation StockItem create view

Stock application creation

addition of Stock app, model, templates, urls

Fix translation files

Creation of the Stock list, edit, create views and creation StockItem create view

Initial StockItem create form value addition

general modifications

Stock admin gestion, items list views, create and edit items

remove stock_main.jinja

Stock application creation

addition of Stock app, model, templates, urls

Addition of the stock parameter to the counter admin list

Fix translation files

Creation of the Stock list, edit, create views and creation StockItem create view

Fix translation files

Creation of the Stock list, edit, create views and creation StockItem create view

Initial StockItem create form value addition

general modifications

Shopping list structure view addition

correct missing endif
2017-01-05 11:07:34 +01:00
guillaume-renaud c6310c5315 correct missing endif 2017-01-05 11:07:05 +01:00
guillaume-renaud 5b2f126eee Shopping list structure view addition 2017-01-05 11:06:55 +01:00
guillaume-renaud 9d8264bcbb remove stock_main.jinja 2017-01-05 11:04:58 +01:00
guillaume-renaud 6c54b246ca Stock admin gestion, items list views, create and edit items 2017-01-05 11:04:12 +01:00
guillaume-renaud 5cb75ec3eb general modifications 2017-01-05 11:02:21 +01:00
guillaume-renaud 587ad96326 Initial StockItem create form value addition 2017-01-05 11:00:09 +01:00
guillaume-renaud 887893fb2d Creation of the Stock list, edit, create views and creation StockItem create view 2017-01-05 11:00:08 +01:00
guillaume-renaud ccb339b9bd Fix translation files 2017-01-05 11:00:08 +01:00
guillaume-renaud 29fb0af893 Addition of the stock parameter to the counter admin list 2017-01-05 11:00:08 +01:00
guillaume-renaud 33c7e7db9f addition of Stock app, model, templates, urls 2017-01-05 11:00:08 +01:00
guillaume-renaud fdfd7e7388 Addition of the StockItem class 2017-01-05 11:00:08 +01:00
guillaume-renaud 402a14d69a Stock application creation 2017-01-05 11:00:08 +01:00
Skia a90a553939 Some fixes on SAS upload form 2017-01-05 10:05:27 +01:00
Skia 72685618a6 Many right fix on counters 2017-01-04 19:39:37 +01:00
Skia 114272df2f Add simple club stats 2017-01-04 17:38:54 +01:00
Skia c48449cd50 Add barman stats 2017-01-04 17:38:09 +01:00
Skia dcd0c1fe75 Allow more than one bar if someone can connect to the counter 2017-01-04 16:14:17 +01:00
Skia 52a0913993 Tiny fix in the counter 2017-01-03 16:42:45 +01:00
Skia b347b87433 Many typo fixes and some updates in the TW report 2017-01-02 16:46:46 +01:00
Skia 0a9eb2fd33 Fix club tests 2016-12-29 01:30:37 +01:00
Skia fbb41c3cd5 Improve UX for accounting linked operation 2016-12-29 01:08:08 +01:00
Skia 17b4e24aaa Small club update 2016-12-29 00:42:26 +01:00
klmp200 2f2d5292de Some permissions fixs and security for atomic vote 2016-12-26 23:30:13 +01:00
Skia 729659e358 Don't ignore */static 2016-12-26 01:59:54 +01:00
Skia c6422fdd30 Add SYNTAX.md 2016-12-26 01:42:45 +01:00
Skia 1dd28672b0 Add Markdown test to populate 2016-12-26 01:36:07 +01:00
Skia f77856852d Working file:// link 2016-12-26 01:34:44 +01:00
Skia 323b946e1f First dfile:// parsing, not working into links, need to investigate 2016-12-26 01:34:44 +01:00
Skia 15e52d1ae8 Reset election migrations 2016-12-26 00:56:22 +01:00
Skia 78e00c3bd4 Merge branch 'Elections' into 'master'
Election app

See merge request !27
2016-12-26 00:45:40 +01:00
klmp200 3609952db5 Some translation fixs 2016-12-26 00:37:32 +01:00
Skia bf4d0693c6 Reformat templates to fit with the rest of the Sith 2016-12-26 00:10:41 +01:00
klmp200 61e67898e1 Coherent create/edit/delete templates for elections 2016-12-25 23:49:02 +01:00
klmp200 cd97901db1 Some date fix 2016-12-25 23:37:42 +01:00
klmp200 772a3b5827 Squashmigrations for elections 2016-12-25 22:09:59 +01:00
klmp200 5449a4fca2 Little permission fix 2016-12-25 22:04:31 +01:00
klmp200 e17fd22a37 Fix populate after rebase 2016-12-25 20:24:18 +01:00
klmp200 4d067165aa Election's trad 2016-12-25 20:09:18 +01:00
klmp200 c07f49305b Full CRUD for elections 2016-12-25 19:54:10 +01:00
klmp200 4f62863599 Pimp role and list forms and add edit for election 2016-12-25 19:54:10 +01:00
klmp200 d7387005c0 Better role creation 2016-12-25 19:54:10 +01:00
klmp200 02913d91e6 Refactors Candidate form 2016-12-25 19:54:10 +01:00
klmp200 9d9c86ea0f Refactored has_voted 2016-12-25 19:54:10 +01:00
klmp200 37decde04d Adds an S in electionS 2016-12-25 19:54:10 +01:00
Jean-Baptiste Lenglet da77c18871 Really display results when election is finished. 2016-12-25 19:54:10 +01:00
Jean-Baptiste Lenglet 64f5fef89f Display results only when the polls close 2016-12-25 19:54:10 +01:00
Jean-Baptiste Lenglet 1c761f9db2 Added results when the user is not voting 2016-12-25 19:54:10 +01:00
klmp200 e8d54764bd Add election results 2016-12-25 19:54:10 +01:00
Jean-Baptiste Lenglet baf39d8f3b Hide input if user can not vote 2016-12-25 19:54:10 +01:00
Jean-Baptiste Lenglet 9bb5951dac Removed request.user as user bc it already exists 2016-12-25 19:54:10 +01:00
Jean-Baptiste Lenglet 1a34dcdafe Changed plain form action to reversed URL. 2016-12-25 19:54:10 +01:00
Jean-Baptiste Lenglet fa9e4e5dc6 Tweaked Election view and added request.user as user 2016-12-25 19:54:10 +01:00
Jean-Baptiste Lenglet a9d154506f Added js validation for max_choice 2016-12-25 19:54:10 +01:00
klmp200 33d8c14da5 can_vote in Election 2016-12-25 19:54:10 +01:00
klmp200 2c76784007 Fixed Election.has_voted 2016-12-25 19:54:10 +01:00
Jean-Baptiste Lenglet 89362bae79 Hide inputs when user already voted. 2016-12-25 19:54:10 +01:00
Jean-Baptiste Lenglet dfcddbd1fa Hide election detail parts when user cannot candidate or edit. 2016-12-25 19:54:10 +01:00
Jean-Baptiste Lenglet a3a5a0446d Finished main view. Some tuning are to be done. 2016-12-25 19:54:10 +01:00
klmp200 9ac1cab983 Add vote in database 2016-12-25 19:54:10 +01:00
klmp200 97f835eb4e Convert indent with space, fix populate and add an s 2016-12-25 19:54:10 +01:00
klmp200 a27fd267d7 Remove useless methods on elections 2016-12-25 19:54:10 +01:00
klmp200 1f60fbd484 Uses election_detail for vote form 2016-12-25 19:54:10 +01:00
klmp200 938e2ce0a9 Fix rights in election 2016-12-25 19:54:10 +01:00
Skia 177e39bd6e Fix RuntimeWarning in populate 2016-12-25 19:54:10 +01:00
klmp200 67630fc9f8 Vote template 2016-12-25 19:53:04 +01:00
Jean-Baptiste Lenglet 9dbff0cd50 Finished election details. 2016-12-25 19:53:04 +01:00
Jean-Baptiste Lenglet 94d15684b7 Added profile pictures for users 2016-12-25 19:53:04 +01:00
Jean-Baptiste Lenglet 6784d66403 Building the new vote/display for a election. 2016-12-25 19:52:14 +01:00
Jean-Baptiste Lenglet 2095dd621e Reworked election list view with datetime ranges and a description. 2016-12-25 19:52:14 +01:00
Jean-Baptiste Lenglet e6b37ef332 Added date ranges in the elections list view. 2016-12-25 19:52:14 +01:00
klmp200 521b61517b Functionnal vote form 2016-12-25 19:52:14 +01:00
klmp200 e8ead338d0 Removed useless widget added previously + began voteform 2016-12-25 19:52:14 +01:00
klmp200 03754aba8a Can now add candidature 2016-12-25 19:52:14 +01:00
klmp200 51bb6c8472 Can add ElectionList and start of candidature form 2016-12-25 19:52:14 +01:00
klmp200 d72d8366cf Add new widget (not tested) and new bdd scheme for elections 2016-12-25 19:52:14 +01:00
klmp200 7956067686 Election right update 2016-12-25 19:52:14 +01:00
klmp200 2764f6d2d2 Refactor List Model 2016-12-25 19:52:14 +01:00
klmp200 c604282b77 Nice display for elections 2016-12-25 19:52:14 +01:00
klmp200 52e69b0ac1 Refactor elections 2016-12-25 19:52:14 +01:00
klmp200 a284637190 Normally fixs tests 2016-12-25 19:52:14 +01:00
klmp200 d14af8e452 New bdd arch 2016-12-25 19:52:14 +01:00
klmp200 fd3309fc5f Refactor election bdd 2016-12-25 19:52:14 +01:00
klmp200 135fa00e25 Fix database and add some view 2016-12-25 19:52:14 +01:00
klmp200 d685e9ba29 Election bdd + first view 2016-12-25 19:52:14 +01:00
Skia 0280a65623 Merge branch 'bilanTresorerie' into 'master'
Accounting tests

See merge request !37
2016-12-25 18:24:57 +01:00
krophil 16979aa3c1 tests for accounting 2016-12-25 12:09:32 +01:00
krophil 493148f761 new tests for operations 2016-12-24 16:16:14 +01:00
krophil f7b4258f20 populate updated 2016-12-24 16:16:14 +01:00
krophil 418537bc8e tests for accounting added 2016-12-24 16:16:14 +01:00
Skia df7b0a5ffe Clean migrations for news system 2016-12-24 02:12:46 +01:00
Skia b79c77f268 Add notification with a fresh new 2016-12-23 20:11:27 +01:00
Skia be44a3ab0b Add preview button to news 2016-12-23 19:43:59 +01:00
Skia 1dc1a0a42c Add news moderation tool 2016-12-23 18:40:37 +01:00
Skia c95e7565e7 Make news translations 2016-12-23 03:17:38 +01:00
Skia 1ca6bf7c62 Add news system, still miss nices templates and moderation tools 2016-12-23 03:02:46 +01:00
Skia f79ffbee7d Merge branch 'bilanTresorerie' into 'master'
Bilan tresorerie

See merge request !36
2016-12-21 20:24:49 +01:00
Skia b07b408ecf Fix statements 2016-12-21 13:09:40 +01:00
Skia f6d34baf59 Refactor statement by person, make it work 2016-12-21 05:42:33 +01:00
Skia 33ee449fb5 Make translations 2016-12-21 05:23:01 +01:00
Skia e6e4929eff Rename bilan to statement 2016-12-21 05:19:16 +01:00
Skia bdcc0bf6e9 Remake the statement by nature 2016-12-21 05:19:16 +01:00
krophil 6d756423d9 tabs added 2016-12-21 05:19:16 +01:00
krophil 93211d8ada operations added in populate 2016-12-21 05:19:16 +01:00
krophil 1457a7bf74 Bilan for accounting added 2016-12-21 05:19:16 +01:00
krophil 96c6bf8067 bilan added 2016-12-21 05:19:16 +01:00
krophil 5cd64fb384 bilan in development 2016-12-21 05:19:16 +01:00
krophil 6bb1e0e418 person bilan added and renamed classes 2016-12-21 05:19:16 +01:00
krophil 147287f9a9 Now, I understand how ORM works... or not 2016-12-21 05:19:16 +01:00
krophil bfa09c0bcd template added for bilan 2016-12-21 05:19:16 +01:00
Skia 168622a04d Add com app with first parametric texts 2016-12-21 02:38:21 +01:00
Skia 13785fd520 Prevent users that have never subscribed to subscribe on Eboutic 2016-12-20 23:27:54 +01:00
Skia 4edd535460 Change DateField to DateTimeField to improve indexing efficency 2016-12-20 16:28:30 +01:00
Skia bdd29a4d65 Allow quick index updates 2016-12-20 15:19:11 +01:00
Skia e66b274f0e Add index to search function 2016-12-20 14:46:08 +01:00
Skia 5b95299bde Add Whoosh index 2016-12-20 14:46:08 +01:00
Skia ac31c182c5 Merge branch 'companiesManagement' into 'master'
Management for companies added

See merge request !35
2016-12-20 14:39:54 +01:00
krophil c372b22197 Management for companies added 2016-12-20 12:29:13 +01:00
Skia 397778af1c Quick counter fix 2016-12-19 16:58:43 +01:00
Skia 68517a5d33 Merge branch 'Tresorerie' into 'master'
Separate counter for account refounding

See merge request !28
2016-12-19 16:50:44 +01:00
Skia 4ae4d2b6db Add overwrite mode and change compressed size width in picture resizing 2016-12-19 16:20:50 +01:00
Skia f09cea4033 Merge branch 'krophil' into 'master'
Signature and date added

See merge request !32
2016-12-19 11:35:40 +01:00
krophil 9567c8efca remove translations 2016-12-18 23:11:23 +01:00
Skia 352b8f0b4f Add recursive option to apply rights in the SAS 2016-12-18 19:08:25 +01:00
Skia dd2be2a31e Auto generate album thumbnails 2016-12-18 18:34:48 +01:00
Skia 94e740fb04 Small improvement in file prop view 2016-12-18 17:59:08 +01:00
Skia 9f35f74082 Huge performance improvement in SAS, miss the album thumbnail in most cases 2016-12-18 12:35:23 +01:00
Skia 4a7df31f5e Some other performance improvements 2016-12-18 11:55:45 +01:00
Skia bf6483039d Fix performance issue in rights check 2016-12-18 11:55:03 +01:00
Skia 8de0d54940 Allow to delete a launderette slot 2016-12-15 16:11:43 +01:00
Skia 57d8926a3f Improve SAS moderation interface 2016-12-15 13:10:05 +01:00
klmp200 7227a5d6f9 Refactor refounding function 2016-12-15 12:17:19 +01:00
klmp200 e231c612c6 Separate counter for account refounding 2016-12-15 11:46:36 +01:00
Skia 39b7349034 Add CSS to the notifications 2016-12-14 19:15:53 +01:00
Skia 81e11b4c33 Refactor Can*Mixin 2016-12-14 18:05:30 +01:00
Skia 642249e7fb Notification fix 2016-12-14 09:11:26 +01:00
Skia 97f7214f01 Small right fix 2016-12-14 09:10:41 +01:00
Skia d7a065c4e2 Update SAS rights 2016-12-13 18:36:08 +01:00
Skia e3c86c1d05 Add "Mark all as read" 2016-12-13 17:53:44 +01:00
Skia bf9aa29a54 Add clipboard to SAS 2016-12-13 17:17:58 +01:00
Skia f594a99751 Clean up, fix, and improve templates around clipboard 2016-12-13 01:24:23 +01:00
Skia 0859648bd4 Add cut/paste function in files 2016-12-13 00:45:38 +01:00
Skia 8b63fa9aea Store file moderator 2016-12-12 17:23:06 +01:00
Skia 2919f3a133 Allow former subscribers to see pictures 2016-12-12 16:35:52 +01:00
Skia 7be4f00440 Fix is_in_group 2016-12-11 17:51:44 +01:00
Skia 7ee4d36c3d Merge branch 'fixLaunderette' into 'master'
small fix for launderette

just a little fix for laverie. maybe I'm wrong

See merge request !29
2016-12-11 16:52:35 +01:00
krophil 77aa7d8561 small fix for launderette 2016-12-11 16:22:16 +01:00
Skia 28431ec9be Big refactor: remove Subscriber class 2016-12-10 01:58:30 +01:00
Skia 0d4b697079 Refactor group settings 2016-12-10 01:29:56 +01:00
Skia 1649d14518 Fix migration scripts 2016-12-10 00:30:52 +01:00
Skia d92a706920 Refactor notifications 2016-12-10 00:06:17 +01:00
Skia b53531c391 Add another method to moderate pictures in SAS 2016-12-09 19:35:23 +01:00
Skia 66d73d69ec Improve SAS moderation page 2016-12-09 18:42:02 +01:00
Skia 4542753812 Add two tests for file upload 2016-12-09 15:48:17 +01:00
Skia a02d5a65cb Improve a bit SAS moderation 2016-12-09 15:46:47 +01:00
Skia 80fa99d2ac Add notification 2016-12-08 19:47:28 +01:00
Skia c1397ef5a5 Small fix, episode two 2016-12-08 15:30:41 +01:00
Skia 9847186b06 Small fixes 2016-12-08 15:16:42 +01:00
Skia d2c580dd81 Close issue #26: improve SAS ergonomy 2016-12-06 13:53:16 +01:00
Skia b7b9820d70 Revert "Père 200, Père 200, tralalalalère!!!!"
This reverts commit edaa1b0082.
2016-12-06 12:37:25 +01:00
Skia edaa1b0082 Père 200, Père 200, tralalalalère!!!! 2016-12-05 02:58:53 +01:00
Skia 3970965781 Merge branch 'Tresorerie' into 'master'
Refound Account

See merge request !26
2016-11-30 15:44:43 +01:00
Skia 8771cc9b86 Enhance user picture view 2016-11-30 12:59:03 +01:00
Skia 7453b857fb Add thumbnails to albums 2016-11-30 09:28:54 +01:00
Skia 7e335cfbd7 Update rotating function 2016-11-30 09:28:53 +01:00
klmp200 3c8a4f068e Refound Account 2016-11-30 08:19:52 +01:00
Skia 00feca44d8 Merge branch 'krophil' into 'master'
pdf generation for operations

See merge request !21
2016-11-29 12:38:18 +01:00
krophil 0b4f826594 Add PDF operations generation 2016-11-29 12:35:37 +01:00
Skia a60063f009 Oops, syntax error + styling footer 2016-11-29 11:49:41 +01:00
Skia 7f0561234f SAS fixes 2016-11-29 11:35:31 +01:00
Skia 7969e9ba5f Update SAS migration script 2016-11-29 11:29:53 +01:00
Skia 47cb5e60ce Merge branch 'juste' into 'master'
First footer + css improvements

Just little improvements such as a footer and deletion of border-radius on log header, it's rather a first try.

See merge request !13
2016-11-29 11:28:49 +01:00
Skia c1861755bc Translation update 2016-11-29 11:26:18 +01:00
juste ff9ed9002e a simple footer + traductions 2016-11-28 11:26:06 +01:00
Skia 064abe0741 UTF-8 fix 2016-11-25 18:59:22 +01:00
Skia cfbb6f4e1f Lot of small improvement in SAS 2016-11-25 13:47:09 +01:00
Skia 0b23d39e15 Fix migrations after rebase 2016-11-23 11:55:10 +01:00
Skia b8c9aa4e7f WIP: Begin SAS migration script 2016-11-23 11:46:45 +01:00
Skia 9bccc6a5d1 Small fix in the JS 2016-11-23 11:46:45 +01:00
Jean-Baptiste Lenglet e66d9bd472 Added asynchronous image upload. 2016-11-23 11:46:45 +01:00
Skia 1c5e658e4b Remove shitty AJAX upload 2016-11-23 11:46:45 +01:00
Skia da35292cd5 Add is_in_sas field, to perform queries on it 2016-11-23 11:46:45 +01:00
Skia 5481a79f64 WIP: AJAX upload 2016-11-23 11:46:45 +01:00
Skia 0e788dd876 Small refactoring 2016-11-23 11:46:45 +01:00
Skia 0e0e57458f Improve SAS UX 2016-11-23 11:46:45 +01:00
Skia 7dff98d853 Small template improvements 2016-11-23 11:46:45 +01:00
Skia f900db0dd2 Make SAS translations 2016-11-23 11:46:45 +01:00
Skia 815ef03860 Better handle rotations 2016-11-23 11:46:45 +01:00
Skia 869634d6e1 Add thumbnail generation 2016-11-23 11:46:45 +01:00
Skia 71d22e367b Add picture view to users 2016-11-23 11:46:45 +01:00
Skia 22ab21e4e1 Add picture-people relation and ask for removal thing 2016-11-23 11:46:45 +01:00
Skia b619619b85 Improve moderation tool in SAS 2016-11-23 11:46:45 +01:00
Skia e681cc65fe Add SAS moderation tool 2016-11-23 11:46:45 +01:00
Skia 157b1e4c78 Add file moderation tool 2016-11-23 11:46:45 +01:00
Skia 5ea41de91d WIP SAS 2016-11-23 11:46:45 +01:00
Skia 585ba55e5e Continue SAS 2016-11-23 11:46:40 +01:00
Skia d554a5ee8d Begin SAS 2016-11-23 11:38:01 +01:00
Skia 0b068d3e92 Improve file moderation 2016-11-23 11:30:57 +01:00
Skia 9e32840549 Add file moderation tool 2016-11-23 00:51:20 +01:00
Skia 02be5e1629 Protect query on Eboutic to prevend double basket validation 2016-11-22 17:04:12 +01:00
Skia cfbd610305 Revert "Merge branch 'fond-gala' into 'master'"
This reverts merge request !25
2016-11-21 14:10:29 +01:00
Skia 98d47727e0 Merge branch 'fond-gala' into 'master'
Add background for gala 2016

See merge request !25
2016-11-13 23:38:13 +01:00
klmp200 d418da679b Add background for gala 2016 2016-11-13 22:55:32 +01:00
Skia e98ffb5cd5 Fix unappropriate behavior when delete selling 2016-11-10 13:51:56 +01:00
Skia 11c263b6e7 Hotfix: better handle atomicity in eboutic basket validation 2016-11-10 00:35:13 +01:00
Skia 9f4f3bf436 Fix CI 2016-11-08 19:27:04 +01:00
Skia e9c19438d4 Fix tests and CI 2016-11-08 19:07:25 +01:00
Skia 321dead0de Translation updates, and make the binary compiled translation file ignored 2016-11-08 18:56:57 +01:00
guillaume-renaud 57b663c4c5 counter inactive state with settings variable, traduction file problem fixed 2016-11-08 18:48:27 +01:00
guillaume-renaud 7f6424d51e Fix the number of minutes for a counter to be inactive to 10 2016-11-08 18:47:50 +01:00
guillaume-renaud 0d6b93d085 Add inactive state for counters 2016-11-08 18:47:40 +01:00
guillaume-renaud be7e0401dd Fix the number of minutes for a counter to be inactive to 10 2016-11-08 18:42:31 +01:00
guillaume-renaud 63f10c13d4 Add inactive state for counters 2016-11-08 18:42:12 +01:00
Skia ba6e2c3712 Merge branch 'sli' into 'master'
Download sellings as csv

See merge request !24
2016-11-08 15:00:58 +01:00
klmp200 2dd2189314 Download sellings as csv 2016-11-08 14:57:09 +01:00
Skia fa57d6cd63 Merge branch 'diagramUpdate' into 'master'
Diagram update

See merge request !23
2016-11-07 23:23:14 +01:00
krophil 4527407b93 final correction 2016-11-07 01:53:32 +01:00
krophil 9d8d86dd47 Correction on graphs 2016-11-07 01:53:32 +01:00
krophil 66b4f06c34 graphs corrected 2016-11-07 01:53:32 +01:00
krophil fa98339bcd new diagrams added 2016-11-07 01:53:32 +01:00
Skia 7e71ffcb75 Merge branch 'sli' into 'master'
Fix company display for operation creation

See merge request !22
2016-11-06 23:38:42 +01:00
klmp200 5d5f2522c4 Fix company display for operation creation 2016-11-06 23:34:38 +01:00
Skia 54d3ca8e65 Merge branch 'sli' into 'master'
Edit CONTRIBUTING instructions

See merge request !20
2016-11-06 23:27:00 +01:00
klmp200 160c7806df Fix contributing.md and fix quantity display on eticket 2016-11-06 23:15:43 +01:00
Skia 20ff409547 Fix tests 2016-11-06 11:36:54 +01:00
Skia 59f5917b8c Fix Page locking 2016-11-05 13:37:39 +01:00
klmp200 d0cd8a8997 Fix the contributing fix 2016-11-04 00:45:10 +01:00
klmp200 b6966c9502 Add number of places on ebticket 2016-11-04 00:43:28 +01:00
klmp200 ea0eb89410 Edit CONTRIBUTING instructions 2016-11-04 00:38:49 +01:00
krophil c0c8b295ba Update CONTRIBUTING.md 2016-11-03 19:58:58 +01:00
krophil 2f8b069118 Update CONTRIBUTING.md 2016-11-03 19:57:41 +01:00
Skia ea85d26cdd Almost revert "Add link to create club in rootplace"
Keep the links, but revert and fix the translation file

This reverts commit 029bc7cc7c.
2016-11-03 11:52:04 +01:00
Skia 9cfc029fb2 Permission fix 2016-10-27 18:39:40 +02:00
Skia 6251e38668 Tiny translation fix 2016-10-26 20:01:05 +02:00
Skia 7fe0964ae1 Merge branch 'sli' into 'master'
Add automatic mail when an eticket has been bought

See merge request !19
2016-10-26 19:03:05 +02:00
klmp200 677c50a4b1 Add unknown event translation 2016-10-25 21:53:40 +02:00
klmp200 bafa9ac10c Small fix for auto-mail about eticket 2016-10-25 18:25:59 +02:00
klmp200 b00fc23fc4 Add automatic mail when an eticket has been bought 2016-10-21 17:47:56 +02:00
Skia 3e99f97b7a Merge branch 'sli' into 'master'
Add ban for alcohol



See merge request !17
2016-10-21 11:00:40 +02:00
Skia 933afd4fb7 Update eboutic main template 2016-10-19 21:30:41 +02:00
klmp200 224374f5e8 More readable user_account 2016-10-19 01:57:54 +02:00
klmp200 029bc7cc7c Add link to create club in rootplace 2016-10-18 23:36:26 +02:00
klmp200 c40171fe86 Clean permission check for alcohol and counter ban 2016-10-18 23:02:53 +02:00
Skia 47c01d6d10 Fix request in cash summary list 2016-10-18 14:48:47 +02:00
klmp200 2daaf992f2 Add groups, allow to ban users from counters and from buying alcohol 2016-10-16 03:45:06 +02:00
klmp200 1c97c8a74f Swag dropdown on user account + autofocus for refillings on counters 2016-10-16 02:47:21 +02:00
klmp200 132bae72a7 Fix club account name display for clubs 2016-10-16 00:23:13 +02:00
klmp200 c9005e2c31 Fix for etickets 2016-10-15 19:58:51 +02:00
klmp200 ba86219b74 Translations for alcool ban 2016-10-15 19:58:32 +02:00
klmp200 257cb9cfe7 Add ban for alcohol 2016-10-15 02:33:38 +02:00
Skia a0319887c8 Merge branch 'sli' into 'master'
Deny date of birth, first and last name modification for non board or root user



See merge request !16
2016-10-13 23:24:12 +02:00
klmp200 178a4af196 Add lazy way to make an user property editable once only 2016-10-13 22:58:26 +02:00
klmp200 579c25d63a Deny date of birth, first and last name modification for non board or root user 2016-10-13 22:32:13 +02:00
Skia 5931351c0a Another tiny template improvement 2016-10-12 12:32:04 +02:00
Skia 0d8bebcd80 Tiny template update 2016-10-10 18:43:40 +02:00
Skia 13265e6a0d Allow more control on the dates for cash summaries sums 2016-10-10 18:29:13 +02:00
Skia 31d62532be Merge branch 'sli' into 'master'
Add account number and suscription on counter



See merge request !15
2016-10-09 16:08:48 +02:00
klmp200 d285fbe04a Add account number and suscription on counter 2016-10-08 23:07:10 +02:00
Skia c66d61ee85 Merge branch 'LoJ' into 'master'
Lo j : Addition of the user's club page

When a user check his profile, he can access a new tab "Clubs" to see his currents and olds Clubs

See merge request !14
2016-10-07 13:36:35 +02:00
guillaume-renaud 5b50cc9598 Traduction's addition for user_clubs templates 2016-10-07 13:17:43 +02:00
guillaume-renaud 760b33728b Addition of the user's club tab as table 2016-10-06 11:08:32 +02:00
guillaume-renaud 1b63d58586 Addition of the user's club tab 2016-10-06 11:08:32 +02:00
Skia 0acc97fa90 Fix operation create view 2016-10-05 20:17:37 +02:00
Skia 63217b2ead Improve product display 2016-10-05 15:57:04 +02:00
Skia 7fdcb0c815 Finish labels in accounting 2016-10-05 15:54:11 +02:00
Skia e169e4ff6f Update .gitlab-ci.yml, try to fix CI 2016-10-04 11:26:20 +02:00
Skia 64b4484620 Some templating 2016-10-04 00:41:08 +02:00
Skia deeb2b5b6f Migrate and fix etickets 2016-10-04 00:32:07 +02:00
Skia cd23fdf3ef Add missing eticket banner 2016-10-03 19:43:22 +02:00
Skia d6138a7a0c Make the etickets 2016-10-03 19:30:05 +02:00
Skia a12f9dd53e Fix club sellings 2016-10-03 13:55:20 +02:00
Skia 2ef5a4d37b Runtime error fix 2016-09-30 18:43:53 +02:00
Skia ca3b7fda5a Improve invoice call template 2016-09-29 18:34:58 +02:00
Skia 51f342a7d3 Add invoices calls 2016-09-29 18:19:58 +02:00
Skia ddceb82abf Display uncategorized products 2016-09-29 16:19:05 +02:00
Skia 52184c4012 Merge branch 'sli' into 'master'
Godfathers deletion



See merge request !11
2016-09-29 15:12:19 +02:00
klmp200 2c6f17063a Can delete Godfathers 2016-09-29 15:06:39 +02:00
Skia db07b54ed1 Allow the counter admin to edit cash registers summaries 2016-09-29 14:54:03 +02:00
Skia c2276dab2b Remove useless mixin 2016-09-29 12:53:09 +02:00
klmp200 a008f34288 Fix bug where slots appears when slot expired 2016-09-28 17:22:34 +02:00
Skia 2e7e78b8ce Add last ops view to the bars 2016-09-28 11:09:54 +02:00
Skia fd482195f8 Merge branch 'sli' into 'master'
AutoCompleteSelectField on clubs



See merge request !10
2016-09-28 10:59:13 +02:00
klmp200 8ef45bf03c Rename is_token to check_token 2016-09-28 10:53:27 +02:00
klmp200 1c6df0909b Fixes double check on board member in club view 2016-09-28 10:46:06 +02:00
klmp200 17b098ca2a Fixed lookup for loged barmen 2016-09-27 22:57:06 +02:00
klmp200 17b483bd21 AutoCompleteSelectField on clubs 2016-09-27 21:05:57 +02:00
Skia f152791d90 Merge branch 'sli' into 'master'
Only club members can view counter's stats

N'importe qui peut accéder aux tops 100, c'est pas très cool de voir ce que dépensent les autres…

See merge request !9
2016-09-27 20:12:57 +02:00
klmp200 3c408551aa Remove nested exception for stats and added property on AnonymusUser 2016-09-27 16:56:30 +02:00
klmp200 f7722ed564 Fixed permissions on stats 2016-09-27 16:44:12 +02:00
klmp200 f22f2cbde6 Only club members can view counter's stats 2016-09-26 23:56:24 +02:00
Skia 303db0bc7d Translation and explicit string 2016-09-26 11:31:45 +02:00
Skia a4ad7f0e85 Add token to counter to see pictures and to prevend misuses 2016-09-26 11:17:56 +02:00
Skia 37072e1640 Clean up some useless prints 2016-09-26 11:17:55 +02:00
Skia 7a2985b186 Add product top 10 2016-09-26 11:17:55 +02:00
Skia 24d744ee9c Merge branch 'krophil' into 'master'
Krophil

Few changes in css

See merge request !7
2016-09-26 09:25:13 +02:00
Skia 4749c45c97 Merge branch 'sli' into 'master'
Hided launderette slots and tokens for non authorized users and added is_office and is_launderette



See merge request !8
2016-09-26 09:23:35 +02:00
klmp200 380f41445a Modify property names 2016-09-22 13:07:22 +02:00
klmp200 e250acf82d Used settings for office and launderette 2016-09-22 13:00:00 +02:00
Skia ffd4dac2e2 Allow club staff to delete their sellings 2016-09-22 12:52:15 +02:00
Skia ae6a613f9a Add promo_17.png 2016-09-21 15:41:12 +02:00
Skia 9e4e9597d1 Add the merge user function 2016-09-21 14:09:26 +02:00
klmp200 748ad1c5c2 Fixed some mistakes 2016-09-21 14:01:44 +02:00
klmp200 2d16b9c296 Hided launderette slots and tokens for non authorized users and added is_office and is_launderette 2016-09-21 13:33:02 +02:00
Skia f1e54439e1 Small stats fix 2016-09-21 12:19:34 +02:00
Skia 324bd69312 Small templates fixes 2016-09-20 20:38:12 +02:00
krophil 1d9c058132 Revert "radius removed"
This reverts commit 26a1300417.
2016-09-20 17:12:09 +02:00
krophil 521c2f2afb Merge branch 'krophil' of https://ae-dev.utbm.fr/ae/Sith into krophil 2016-09-20 13:23:36 +02:00
krophil 62c4036dee radius removed 2016-09-20 13:22:05 +02:00
krophil b11c5bbd1d Merging 2016-09-20 13:19:44 +02:00
krophil 4ee858c130 README updated 2016-09-20 13:18:05 +02:00
Skia 1e0904b48e Merge branch 'sli' into 'master'
Quick fix to hide account number in profile page when not owner user or root

Faut vite cacher les numéros de compte des gens à qui ils n'apartiennent pas, sinon c'est la faille de sécu D:

See merge request !6
2016-09-19 20:43:33 +02:00
Skia 5b83aff351 Small UI fix 2016-09-19 20:40:38 +02:00
Skia d88da0abd8 Make translations for godfathers 2016-09-19 20:32:30 +02:00
Skia 5ba2ab925d Add godfathers 2016-09-19 20:29:43 +02:00
krophil 26a1300417 radius removed 2016-09-19 11:20:37 +02:00
klmp200 584025acf0 Quick fix to hide account number in profile page when not owner user or root 2016-09-18 22:50:10 +02:00
Skia 95b22cafe0 Template fixes 2016-09-15 11:51:05 +02:00
Skia 35d811317c Add top 100 to counters 2016-09-15 11:07:03 +02:00
Skia 6aaeb7cdc9 Rename membership to memberships 2016-09-15 11:06:51 +02:00
Skia 3d9dfbc43a Fix gitignore 2016-09-14 13:46:43 +02:00
Skia f29e5ecabb Fix static files for dev 2016-09-14 13:46:17 +02:00
Skia 64761a83ed Don't come with MySQL by default 2016-09-14 13:19:56 +02:00
Skia 6cf253365b Add cash register summary view 2016-09-13 02:04:49 +02:00
Skia b0ce448ec7 Add missing translation 2016-09-12 17:38:35 +02:00
Skia 09f61eb61c Only root can create a new launderette 2016-09-12 17:35:25 +02:00
Skia 6cacfb8d8d Add counter activity 2016-09-12 17:34:33 +02:00
Skia c748bb8450 Fix slow selling page in clubs 2016-09-12 17:34:17 +02:00
Skia b63923d956 Refactor settings 2016-09-12 14:04:50 +02:00
Skia 54444b31ba Some template improvements 2016-09-11 19:00:12 +02:00
krophil 07363c607b Few proposals in CSS 2016-09-11 14:53:55 +02:00
krophil 1b728e3a8b README updated 2016-09-11 14:53:55 +02:00
Skia 7aec32cef0 Some quick improvement on account view 2016-09-09 20:38:27 +02:00
Skia 5e26e5bde7 Merge branch 'sli' 2016-09-09 19:56:48 +02:00
Skia 5b5006892d Make sellings for clubs 2016-09-09 16:23:35 +02:00
Skia 90e47c9d7d Add a restriction on the counter login view to authorize only the sellers 2016-09-09 01:54:26 +02:00
klmp200 2f7dc9ec19 Used lambda function in user detail 2016-09-08 04:15:34 +02:00
klmp200 41d5a02d77 Fixed account order and detail account view 2016-09-08 03:38:28 +02:00
klmp200 8d060af46c Removed wierd hack 2016-09-08 03:21:39 +02:00
Skia 4c2bf9cbf9 Launderette and product list fixes 2016-09-08 02:09:17 +02:00
klmp200 bca8dc039a Added macros for slots and tokens display 2016-09-07 23:06:38 +02:00
klmp200 61c77a7877 Added address on profile 2016-09-07 02:07:01 +02:00
klmp200 c0296b9ada Added slots on user profile 2016-09-07 01:51:34 +02:00
klmp200 a64b10776e Monthly user account 2016-09-06 22:13:48 +02:00
klmp200 78bf4b7b84 Fixed markdown api issue 2016-09-06 21:59:13 +02:00
Skia d23e07363d Fix settings 2016-09-04 19:26:50 +02:00
Skia b1f6754e6e Refactor lots of tabed templates, and create TabedViewMixin 2016-09-04 19:25:03 +02:00
Skia 976ae09e55 Fix subscriptions with Sith account 2016-09-04 18:35:20 +02:00
Skia 4503fae287 Merge branch 'sli' into 'master'
Fixed get_age



See merge request !3
2016-09-04 16:54:30 +02:00
klmp200 80549c7a33 Fixed get_age 2016-09-04 16:26:02 +02:00
Skia e1ce661a04 Improvements in counter admin templates 2016-09-04 15:50:43 +02:00
Skia d93dda1c0e Merge branch 'sli' into 'master'
Fixed old database bug in dev env



See merge request !2
2016-09-04 15:00:16 +02:00
klmp200 b0215e7445 Organized settings 2016-09-04 14:56:47 +02:00
klmp200 5ca8a22123 Fixed Settings 2016-09-04 14:19:56 +02:00
Skia 25dea832be Display bar list with "openness" 2016-09-04 14:17:49 +02:00
klmp200 8328e668bd Fixed old database bug in dev env 2016-09-02 21:24:10 +02:00
Skia c62d3f4f4a Add old membership views 2016-09-02 21:21:57 +02:00
Skia c5fd9d0076 Small template fixes 2016-09-02 19:31:47 +02:00
Skia a0b1fa32e7 Fix subscription form 2016-09-02 12:29:50 +02:00
Skia bae34c4b1c Fix double user creation 2016-09-02 09:47:33 +02:00
Skia 29f565f514 Improve club templates 2016-09-02 09:23:21 +02:00
Skia b2df8fbf18 Fix LoginForm 2016-09-01 17:50:13 +02:00
Skia 3239a2e481 Fix counter if no date of birth 2016-09-01 16:55:43 +02:00
Skia d27f62dca9 Small fixes 2016-09-01 16:43:21 +02:00
Skia f7e3251ae5 Right fix and translation 2016-09-01 11:27:00 +02:00
Skia a4c5d48159 Some bug fixes 2016-09-01 10:00:31 +02:00
Skia 1f31d3b56f Send a mail when someone is subscribed 2016-08-31 18:40:17 +02:00
Skia 6af16cc893 Some basic templating 2016-08-31 17:18:21 +02:00
Skia 37d303634c Fix form with files 2016-08-31 15:29:16 +02:00
Skia a47cca1b1e Very small CSS improvement 2016-08-31 04:08:28 +02:00
Skia 0db7180d43 Do some user profile templating 2016-08-31 04:04:28 +02:00
Skia 55ea2ac763 Change link color 2016-08-31 03:32:55 +02:00
Skia 4a29a431af Display user amount without the account page 2016-08-31 03:25:26 +02:00
Skia f66b999f24 Improve login form 2016-08-31 02:44:46 +02:00
Skia fcfbfb3a0b Small file fix 2016-08-31 02:05:04 +02:00
Skia cb90ab8e57 Fix link to old site 2016-08-30 17:41:42 +02:00
Skia b21d9f6ff2 Add price for subscriptions 2016-08-30 17:33:45 +02:00
Skia 9cfdf4798d Fix OperationEditView 2016-08-29 20:13:53 +02:00
Skia e8713b3c22 Merge remote-tracking branch 'origin/api' 2016-08-29 19:50:38 +02:00
Skia fe2438ef0c Fix subscription right and typo 2016-08-29 19:48:29 +02:00
Skia 3305a19f44 Fix permissions on sellings and refillings 2016-08-29 16:07:14 +02:00
Skia 3667a12174 Fix webcam upload 2016-08-29 04:58:25 +02:00
Skia c4b1494eee Update settings 2016-08-29 03:34:43 +02:00
Skia f0499cdb26 Make a better index page 2016-08-29 03:25:47 +02:00
Skia 4215baec26 Make the bar menu 2016-08-29 03:14:53 +02:00
Skia 325da79e45 Add support for subscription typed products in eboutic 2016-08-29 03:02:13 +02:00
Skia dfb13c37f2 Add INSERT to old DB for subscriptions and users 2016-08-29 02:19:29 +02:00
Skia 2b4a623e4a First link to old site's DB 2016-08-29 01:34:08 +02:00
Skia e61b5e7690 Small fixes 2016-08-29 01:31:58 +02:00
Skia b2f13e935e Add missing migration 2016-08-26 23:31:25 +02:00
Skia 3e0b964e9b Small AnonymousUser fix (le gaulois) 2016-08-26 21:09:32 +02:00
Skia 01c3991988 Add cash register summaries 2016-08-26 20:57:04 +02:00
Skia 9927310f6e Update login system to support the multiple threads of UWSGI 2016-08-26 20:56:16 +02:00
Skia b33c3b20bb Add account check to migration 2016-08-26 18:34:49 +02:00
Skia ce7230751e Fix email sending by setting password to all migrated users + refactor migrate.py 2016-08-25 17:43:28 +02:00
Skia bea7b71f2c Delete unwanted obsolete migration files 2016-08-24 22:10:58 +02:00
Skia 4f67bf4c04 Reset all migrations and migrate companies 2016-08-24 22:09:23 +02:00
Skia fb8e7ceb5b Some templating and migration fix 2016-08-24 21:49:46 +02:00
Skia 078b63d970 Migrate accounting 2016-08-24 19:50:22 +02:00
Skia a4df1ae9a5 Add language chooser 2016-08-24 19:11:09 +02:00
Skia f2c3c7dc25 Add viewable flag for user 2016-08-22 18:44:03 +02:00
Skia eef5dfd275 Make JPEG progressive when resizing 2016-08-22 14:21:17 +02:00
Skia 8e3eb1e2bf Some templating and add webcam support for profile editing 2016-08-22 02:56:27 +02:00
Skia 4cbfd58660 Add pictures to products 2016-08-21 03:07:15 +02:00
Skia a49d9850ab Pimp the counter click view 2016-08-21 02:30:49 +02:00
Skia 7797f87dd0 Clean up some useless prints 2016-08-20 22:15:54 +02:00
Skia dbf0653baf Add support for product buying groups + many cosmetics and form pimping 2016-08-20 22:12:46 +02:00
Skia 00f05c71c5 Fix migrate script 2016-08-20 16:10:16 +02:00
Skia d54f0f4c65 At last we support trays! 2016-08-20 16:09:46 +02:00
Skia 62745e89fa User profile template fix 2016-08-20 13:57:27 +02:00
Skia 84efcd87e7 Translate datepicker and add age limit to products 2016-08-20 02:55:48 +02:00
Skia 7e90e657a7 Add ajax-select app and improve some templates 2016-08-19 23:24:23 +02:00
klmp200 2f7030d964 Fixed api's list bug 2016-08-19 17:25:23 +02:00
klmp200 6c107ed3d4 Splited api across sevral files, deactivated readonly 2016-08-19 16:13:40 +02:00
klmp200 cc619daf45 Renaming and commenting in api 2016-08-19 14:41:33 +02:00
Skia bfb2dc5f82 Kinda fix the refilling migration: there were some traps! 2016-08-19 14:39:28 +02:00
klmp200 8455ff3f7b Turned the api readonly and fixed permissions on it 2016-08-19 12:37:30 +02:00
Skia da96e9da84 Search improvement 2016-08-19 03:12:20 +02:00
Skia f1105d704e Add basic search bar 2016-08-19 02:53:44 +02:00
Skia 0689f864d2 Migrate permanencies and add user stats view 2016-08-18 21:32:18 +02:00
Skia b69c3a6792 Improve and fix user accounts 2016-08-18 21:06:10 +02:00
Skia 05bd177a9d Migrate invoices and lot of eboutic improvements 2016-08-18 19:52:20 +02:00
Skia 50c452c287 Fix migrate script 2016-08-18 03:06:46 +02:00
Skia 84364d9018 Improve counter app and migrate products/producttypes/refillings/sellings 2016-08-18 03:04:50 +02:00
Skia d4f87e7581 Improve file popup 2016-08-15 21:04:06 +02:00
Skia 66fdf6cbf7 Migrate and improve subscriptions 2016-08-14 19:28:14 +02:00
Skia e1474c7a74 Add is_root property to user 2016-08-14 04:35:08 +02:00
Skia 792563999b Allow root to reset user password 2016-08-13 17:15:45 +02:00
Skia a033c4dfd2 Improve launderette rights to match with launderette club 2016-08-13 16:39:09 +02:00
Skia 4ec328556e Migrate clubs 2016-08-13 16:08:22 +02:00
Skia 2e9fa1a27d Begin migration script 2016-08-13 05:33:24 +02:00
Skia c0a66f9a38 Finish profile of users 2016-08-13 05:33:09 +02:00
Skia 5113d8fda5 Small user profile fix 2016-08-11 04:57:07 +02:00
Skia 43b709bfd5 Make file modale chooser and complete user profile 2016-08-11 04:30:24 +02:00
Skia a8858fa781 Add home for users and clubs 2016-08-10 16:23:12 +02:00
Skia 830c15a585 Better right handling in files 2016-08-10 14:48:18 +02:00
Skia 1775569ecf Reset all migrations 2016-08-10 13:52:57 +02:00
Skia 792d66da33 Add nice whole file support 2016-08-10 05:48:06 +02:00
Skia 6fbf607492 Fix settings 2016-08-08 00:35:35 +02:00
klmp200 cefb3828bc Started launderette API 2016-08-08 00:33:02 +02:00
klmp200 bfa966e3d8 Birthday API and some more enhacements 2016-08-07 22:57:38 +02:00
klmp200 8e8ee808b5 Fixed api permissions 2016-08-07 20:52:53 +02:00
klmp200 2822d947d9 Enhaced API : look for permissions, automaticly add /{pk}/id, added
users, groups and clubs
2016-08-07 20:45:06 +02:00
Skia 1a6373e9ce Add barman list in API 2016-08-07 20:45:06 +02:00
klmp200 b9ea687df1 Fixed comment 2016-08-07 20:45:06 +02:00
klmp200 c2ccf63021 Added counters in api 2016-08-07 20:45:06 +02:00
klmp200 feb7b4689b First steps with the api 2016-08-07 20:45:06 +02:00
Skia ad36c1c6f6 Better handle 403 with next argument 2016-08-07 20:36:06 +02:00
Skia a0f7150c55 Update accounting to have a target 2016-08-07 20:10:50 +02:00
Skia d824d0d928 Uppercase some choices in settings 2016-08-07 20:06:47 +02:00
Skia 1529af32c5 Add token handling form in launderette 2016-08-06 15:20:38 +02:00
Skia 31ecb50c1d Move user account view into core 2016-08-05 09:52:19 +02:00
Skia aa17c44bcc Add location when subscribing 2016-08-05 00:51:04 +02:00
Skia 260a17ae4f Improve generation of account id 2016-08-05 00:51:04 +02:00
Skia 44a6621aac Update settings 2016-08-04 13:36:33 +02:00
Skia 70e723337d Update settings 2016-08-02 22:32:13 +02:00
Skia db712c86b8 Fix tests 2016-08-02 22:20:06 +02:00
Skia 7002139176 Finish the launderette click view 2016-08-02 00:32:55 +02:00
Skia 2cf39671e2 Make some more validation on the token click form 2016-08-01 19:59:22 +02:00
Skia 4d8e7b0875 Improve launderette, need to finish the click view 2016-08-01 16:36:16 +02:00
Skia ba48adab6d Improve launderette plannings and admin part 2016-07-29 13:00:32 +02:00
Skia fc170cfc49 Delete unwanted templates 2016-07-29 12:17:11 +02:00
Skia ef17e66351 Improve launderette plannings 2016-07-29 01:38:46 +02:00
Skia a01fc63a82 Begin launderette 2016-07-28 20:05:56 +02:00
Skia 4c62816816 Add rights to Product and Product Type views 2016-07-28 16:11:18 +02:00
Skia 3c4a9a89a8 Fix README 2016-07-28 13:02:10 +02:00
Skia e3705f9fe2 Make sliding subscriptions for 1 or 2 semesters 2016-07-28 12:41:29 +02:00
Skia 80f72df1de Add product type management views 2016-07-27 20:05:45 +02:00
Skia f230fbc135 Add product management views 2016-07-27 17:23:02 +02:00
Skia 4408890ab2 Templating and translation 2016-07-27 00:13:20 +02:00
Skia 4e6b592911 Fix eboutic 2016-07-26 19:58:36 +02:00
Skia 45f5a58b4a Improve Eboutic basket 2016-07-26 19:39:19 +02:00
Skia c099f1c5d7 Make eboutic working 2016-07-26 18:28:36 +02:00
Skia 60e606b370 Improve ET auto answer view 2016-07-26 15:10:48 +02:00
Skia d837b624e2 Implement parts of the ET API 2016-07-24 18:26:03 +02:00
Skia 0ecb78a101 Fix some counter stuff 2016-07-22 13:34:34 +02:00
Skia 256651f580 Translation fix 2016-07-22 02:20:13 +02:00
Skia a0322fa931 Templating pages 2016-07-22 02:05:29 +02:00
Skia f04cf9d4d4 Add basics of eboutic, still need to implement the ET API to get bank payment 2016-07-22 01:19:50 +02:00
Skia 525d7e6709 Add atomic transaction in counters 2016-07-22 01:19:04 +02:00
Skia 1f3e186e27 Update counters and some views 2016-07-21 20:03:56 +02:00
Skia 724f3d8d6f Templates and views 2016-07-21 12:09:57 +02:00
Skia 28aa143f39 Improve Operation numbering in accounting 2016-07-20 18:48:18 +02:00
Skia 150147c69f Fix the removing of built in permissions for admin app 2016-07-20 16:34:18 +02:00
Skia 7a267dbc3f Create the customer when subscribing if it does not exists yet 2016-07-20 00:28:49 +02:00
Skia 97ff4341a7 Translate most of the Sith 2016-07-19 19:03:16 +02:00
Skia 1b4324f38f Add french translation file 2016-07-18 17:47:43 +02:00
Skia beebe6361c Update gitlab-ci.yml to change ln to cp 2016-07-18 13:27:47 +02:00
Skia 46eb659d7d Update gitlab-ci.yml to fix the builds with new settings.py 2016-07-18 13:24:31 +02:00
Skia 2147f6a468 Add permanencies tracking to counters 2016-07-18 13:22:50 +02:00
Skia 593050d9e2 Improve greatly the counter right management 2016-07-18 00:47:56 +02:00
Skia e92a73dfb1 Add basic account view for user and refactor user tool bar 2016-07-17 12:38:02 +02:00
Skia c099cc489b Improve refilling form to handle the checks and the banks 2016-07-17 11:38:19 +02:00
Skia 14595936e2 Some design 2016-07-17 11:37:52 +02:00
Skia 4498877283 Small fix on counters 2016-07-16 16:48:56 +02:00
Skia f600e174b1 CSS and templating, Sith begins to look nice 2016-07-16 16:35:45 +02:00
Skia 171303cfcc Delete settings.py 2016-07-14 17:55:02 +02:00
Skia 67114f51e1 Fix populate to work with Postgres 2016-07-14 17:51:26 +02:00
Skia e29e94711a Move settings to settings_sample 2016-07-14 16:15:38 +02:00
Skia 0eb203b18b Fix populate with subscriptions 2016-07-14 16:13:43 +02:00
Skia 0248bdf6d1 Update SubscriptionForm to allow creating user on the fly 2016-07-07 00:52:30 +02:00
Skia bab3a38a2e Small subscription fix 2016-07-06 01:32:41 +02:00
Skia 5355492c76 Date of birth is no longer mandatory 2016-07-06 01:09:31 +02:00
Skia 1feea061f6 Add basic refill support 2016-06-26 20:07:29 +02:00
Skia 9989b75b3e Add string parser in counters 2016-06-26 19:30:28 +02:00
Skia 9429dbccc2 Add link to counters in club tools 2016-06-26 18:15:23 +02:00
Skia 50efc07eaa Add basic close journal functions 2016-06-24 21:55:52 +02:00
Skia e9544f2581 Update CanCreateView and fix accounting views in consequence 2016-06-24 21:07:59 +02:00
Skia 1396f2ca84 Improve accounting ease of use 2016-06-24 19:59:49 +02:00
Skia ace58f54b5 Update Doxyfile 2016-06-22 14:52:53 +02:00
Skia e25c4a4e4a Add some TODOs 2016-06-22 13:40:30 +02:00
Skia d244618dd0 Improve accounting views 2016-06-22 13:19:35 +02:00
Skia d06540086d Small orhtograph fix 2016-06-21 11:52:45 +02:00
Skia 95a3dd02e1 Add final PDF report 2016-06-21 00:49:20 +02:00
Skia 3a746d010a Finish the report 2016-06-21 00:47:11 +02:00
Skia 13461268d0 Add license 2016-06-21 00:42:33 +02:00
Skia 3023d6d744 Add CanCreateMixin, and add amount in journals 2016-06-20 15:47:26 +02:00
Skia 18db95cfd2 Update again the report 2016-06-20 12:24:44 +02:00
Skia 109e23cee0 Update report, again 2016-06-20 00:01:26 +02:00
Skia aa92bc9467 Update report 2016-06-19 21:16:04 +02:00
Skia 12b361be70 Update report 2016-06-18 18:06:57 +02:00
Skia 4ca431877e Update report 2016-06-17 14:55:55 +02:00
Skia e5d60b8c72 Begin report 2016-06-17 14:55:55 +02:00
Skia aafcc9c174 Almost finish the counter views, still need the plateaux 2016-06-02 14:55:12 +02:00
Skia b6904ad88c WIP: Improve counters view (counter is broken for now) 2016-06-02 00:26:31 +02:00
Skia ffe2aec980 Implement barman prices and improve counter views 2016-06-01 01:33:20 +02:00
Skia 6c48b7c718 Add Selling and Refilling classes 2016-05-31 19:32:15 +02:00
Skia 356a2d2683 Refactor page handling 2016-05-31 13:00:52 +02:00
Skia 8da149c979 Some refactoring between accounting and counter 2016-05-31 13:00:52 +02:00
Skia e75da927c3 Improve group views 2016-05-31 13:00:52 +02:00
Skia ac37d3328c Merge branch 'undefined' into 'master'
Added data model for the BdF app.



See merge request !1
2016-05-10 10:54:49 +02:00
Skia b388b96da8 Fix club test 2016-05-10 10:52:16 +02:00
Skia 27805640a1 Improve right handling for accounting 2016-05-09 11:49:01 +02:00
François Brachais 1b974c6d45 Added data model for the BdF app. 2016-05-07 18:47:59 +02:00
Skia 39661b8de7 Add new club view 2016-05-03 12:06:03 +02:00
Skia 6ef39257ee Fix user template 2016-05-03 09:01:54 +02:00
Skia 6e05207e84 "Finish" the accounting views 2016-05-03 08:50:54 +02:00
Skia 9c0b17a9ae Fix custom special views 403,404 to return the right HTTP code 2016-05-02 11:33:38 +02:00
Skia 08ae6a19bc Remove setup step from CI, it was not needed 2016-04-20 03:33:03 +02:00
Skia b4c3f2f4dc Fix tests 2016-04-20 03:30:49 +02:00
Skia e5c085c706 Add setup step to CI 2016-04-20 03:05:23 +02:00
Skia 5fcb3e1412 Add basic accounting views 2016-04-20 03:01:14 +02:00
Skia c6a3559bf5 Improve accounting model according to current site's one 2016-04-20 02:07:01 +02:00
Skia 9a135ade50 Refactor counters view a bit, and protect ClickView if no barman is logged 2016-04-19 19:58:57 +02:00
Skia 6eb0ec1620 Tiny fix (le gaulois) 2016-04-19 03:43:13 +02:00
Skia 25c1e6dc58 Add the basket handling in the click view of the counter
Now there is still to handle the validation by generating the appropriate invoice(s)
2016-04-19 01:54:55 +02:00
Skia 7a9689a20d Improve the click view, the total is computed, but there is still a lot of work 2016-04-18 17:34:21 +02:00
Skia 1f98993871 It worked, really deleting APT lines! We have now CI! :) 2016-04-18 05:09:23 +02:00
Skia 8bc19d8e73 New CI test, without APT 2016-04-18 05:06:16 +02:00
Skia 785e34b2d6 Add CI file, testing 2016-04-18 04:58:15 +02:00
Skia a5118ef457 Finish the functionnality of CounterMain
We now redirect correctly to CounterClick, providing a valid user
2016-04-18 04:37:37 +02:00
Skia 478d1ed876 Continue the counter views 2016-04-15 11:50:31 +02:00
Skia c1a151d754 Add timeout for barmen 2016-04-12 13:08:37 +02:00
Skia 20a97526d4 Make counter login forms 2016-04-12 10:00:47 +02:00
Skia 3302fdc6f2 Small club fix 2016-04-12 10:00:15 +02:00
Skia e4070c86fd Add contacts 2016-04-07 10:44:34 +02:00
Skia 52153438ac Rename and refactor some settings 2016-03-31 10:36:00 +02:00
Skia be826ed616 Add the Guide to the Tresorerie 2016-03-30 18:33:21 +02:00
Skia debba55350 Add MetaGroup system 2016-03-29 12:45:10 +02:00
Skia 5bcc94f992 Improve counters views 2016-03-29 10:30:48 +02:00
Skia 21f1393097 Add basic counter model 2016-03-28 14:54:35 +02:00
Skia 7d7652e319 Small fix (le gaulois) 2016-03-24 11:55:39 +01:00
Skia c3fb581f97 Refactor a bit right handling 2016-03-22 17:46:26 +01:00
Skia 18f856af24 Small right fix 2016-03-22 12:00:57 +01:00
Skia 2e84ee7d4f Fix subscription and improve views 2016-03-22 11:42:00 +01:00
Skia 0dba76e02e Make some tests for clubs 2016-03-22 09:01:24 +01:00
Skia 6aed36c31f Add club migration 2016-03-21 17:49:22 +01:00
Skia fe8f5bb2e3 Fix club rights 2016-03-15 18:26:03 +01:00
Skia d90c0f86f4 Update requirements.txt 2016-03-10 13:53:40 +01:00
krophil bad581fec7 jumplines 2016-03-07 13:36:06 +01:00
krophil bdc164e1ac Jumplines 2016-03-07 13:34:22 +01:00
krophil ed8f5856d4 Tuto updated 2016-03-07 13:31:38 +01:00
krophil d5c44d6be6 Initialize contribution guide 2016-03-07 13:11:48 +01:00
Skia e2b0668ee8 Improve Club views 2016-02-08 17:09:52 +01:00
Skia a14d940db2 Some refactoring and misc improvements 2016-02-05 16:59:42 +01:00
Skia ed080b76a2 WIP: Club member form 2016-02-04 08:59:03 +01:00
Skia d51ab088d8 Add first club views, this still sucks, particularly on the right managment 2016-02-02 16:34:36 +01:00
Skia afc87888a6 Finish the move to Jinja2 2016-02-02 11:00:08 +01:00
Skia 239133e355 Fix generate_username for accents 2016-02-02 10:59:00 +01:00
Skia 6b81210ba1 Fix permissions Mixins 2016-02-02 10:15:50 +01:00
Skia 03bc0973fe WIP: Move to Jinja2 2016-02-01 17:35:55 +01:00
Skia abb8dc0c5e Add Subscription to setup 2016-02-01 09:55:23 +01:00
Skia bc7ab19e86 Update README 2016-01-29 16:29:24 +01:00
Skia 7f163ffc9e Add Doxyfile for generating doc 2016-01-29 16:23:41 +01:00
Skia 4322318c31 Club model implementation, various other changes 2016-01-29 15:20:00 +01:00
Skia 7f4955d15c Update diagramm 2016-01-29 09:45:59 +01:00
Skia 8fc360a977 Improve subscription and add it to admin app 2016-01-28 17:42:22 +01:00
Skia f71ce2f7df Add first accounting implementation 2016-01-28 16:53:37 +01:00
Skia 2b999d87ba Another date field update 2016-01-28 10:13:45 +01:00
Skia 367fddbdab Alter date_of_birth 2016-01-28 09:36:24 +01:00
Skia 8ea1727475 Fix URLs 2016-01-11 10:13:30 +01:00
Skia 8b0939ca79 Core: rename full_name in _full_name because this attribute is for internal use only 2016-01-11 10:02:41 +01:00
Skia 1f4c49ac49 Make a previsualization button in page edit 2016-01-11 09:56:42 +01:00
Skia 771056d6e4 Add a begining of API and CSS+JS (static files folder) 2016-01-08 17:11:38 +01:00
Skia f5b07887a5 Fix typo in setup 2016-01-08 16:27:59 +01:00
Skia 8ebd6c64a7 Add Markdown support and better url tolerance for pages 2016-01-08 16:15:06 +01:00
Skia b35483d2a9 WIP: Begin ae app with subscription handling 2015-12-15 17:50:50 +01:00
Skia a6aac76d75 Alter date_join field in User 2015-12-15 09:27:50 +01:00
Skia 787fd2f484 Settingize some stuff and add custom AnonymousUser 2015-12-14 15:43:30 +01:00
Skia a6edfcc048 Update UserPropForm 2015-12-14 10:49:15 +01:00
Skia 376b5101c1 Add docstring to PageRev 2015-12-09 11:22:50 +01:00
Skia 268a33255b Refactor user groups to user prop 2015-12-09 11:01:11 +01:00
Skia 77803596fb Add class wide permissions and clean up migrations 2015-12-09 10:33:55 +01:00
Skia e3cbe70319 WIP: Improve many views and a bit user permissions (idea for class scale perm) 2015-12-08 17:22:50 +01:00
Skia 475bff14cb Refactor rights handling 2015-12-08 11:10:29 +01:00
Skia dc37e79f14 WIP: Refactor permissions 2015-12-08 09:46:48 +01:00
Skia f7bfd6daed Add getattribute to PageRev for getting owner_group&co 2015-12-08 09:46:40 +01:00
Skia aa732a4ec0 WIP: Add custom 403 and 404, but break a bit the permissions! To be fixed 2015-12-07 17:23:52 +01:00
Skia 6cc7851487 Repair all tests and update requirements.txt 2015-12-07 16:08:24 +01:00
Skia 185b35ed18 Improve setup script 2015-12-04 16:14:05 +01:00
Skia 078276cead Merge branch 'sli' 2015-12-03 20:36:53 +01:00
Skia 2557af270a Merge branch 'krophil' 2015-12-03 20:33:40 +01:00
klmp200 e750b5a12f Edited gitignore and README to make everything work proprely with virtualenv 2015-12-03 20:29:07 +01:00
krophil f3896cb22e SimpleTestCase -> TestCase. Now, test are almost ok 2015-12-03 18:41:22 +01:00
Skia 2c4bac7c9f Add setup custom command to manage.py 2015-12-03 18:00:08 +01:00
Skia 5f07237d70 Improve a bit user views's rights 2015-12-03 16:47:03 +01:00
Skia 50f53e7a6e Fix users tests and pages fixtures 2015-12-02 17:14:47 +01:00
Skia f17fb6e466 Add lock handling in Wiki 2015-12-02 16:43:40 +01:00
Skia 92f68f5b42 Add complete revision and history handling in the wiki 2015-12-02 11:09:50 +01:00
Skia 80926dd4ac Revert "Begin a PageRevision implementation, but this breaks currently everything!"
This reverts commit 979fc7bcb7.
2015-11-30 13:04:46 +01:00
Skia 979fc7bcb7 Begin a PageRevision implementation, but this breaks currently everything! 2015-11-27 16:40:16 +01:00
Skia edcbf7a367 Update fixture and PagePropFrom 2015-11-27 16:09:47 +01:00
Skia 0b962e2380 Make the group management more generic in the model 2015-11-27 16:05:43 +01:00
Skia 5c9e5a24ab Implement generic right checking for any View with the right parents 2015-11-27 15:39:42 +01:00
Skia b19ec084b6 Basic group view and permissions management on the pages 2015-11-26 17:40:31 +01:00
Skia 48e3f88b87 Improve user views 2015-11-26 16:32:56 +01:00
Skia 385f91a9db Add a missing template 2015-11-26 11:27:52 +01:00
Skia 431b81cd42 Make all the lost password procedure 2015-11-26 10:57:26 +01:00
Skia 6e54fa075e WIP: password change/reset forms 2015-11-25 17:03:18 +01:00
Skia 04bbf0db5b Refactor login and logout with built-in views 2015-11-25 16:20:28 +01:00
Skia b237cdbaae Refactor page view with Django's black magic powered DetailView&co 2015-11-25 14:45:18 +01:00
Skia d72b18c120 Add basic page view permission, not really working 2015-11-25 10:29:25 +01:00
Skia 5b8b3746e6 Update README 2015-11-25 08:47:35 +01:00
Skia cdcf4099fc Prevent loop in Wiki 2015-11-24 20:09:44 +01:00
Skia 18115a0dc4 Put view into a module 2015-11-24 16:09:46 +01:00
Skia ebcdcf4245 Basic user profile edit form 2015-11-24 15:52:27 +01:00
Skia 259182c1c4 Add page properties view 2015-11-24 14:01:10 +01:00
Skia 7b093f6fbd Fix page table integrity 2015-11-24 14:00:41 +01:00
Skia ce8ceb80d6 Update README again 2015-11-24 10:57:30 +01:00
Skia 611779ce76 Update README 2015-11-24 10:55:15 +01:00
Skia 9a9541088d Fix wiki, plus clean up and add tests 2015-11-24 10:53:16 +01:00
Skia 8753e020a1 Wiki is working quit well 2015-11-23 17:32:31 +01:00
Skia d2005ff997 Almost working wiki before refactoring again 2015-11-23 17:23:37 +01:00
Skia ace66bba0a Almost working wiki before refactoring 2015-11-23 13:30:30 +01:00
Skia e9c18748b0 Make date of birth mandatory 2015-11-22 18:23:21 +01:00
Skia c434e093a0 Update diagrams 2015-11-20 16:21:51 +01:00
Skia 6253c06235 Add very basic and not safe pages 2015-11-20 15:47:01 +01:00
Skia c6b35071db Amend: add migration file 2015-11-19 17:36:05 +01:00
Skia c877fa7b84 Fix default date of birth with aware timezone 2015-11-19 17:34:11 +01:00
Skia 7a65215bb5 Basic user permissions for user editing 2015-11-19 16:33:40 +01:00
Skia d3896ad676 Update login system and add tests 2015-11-19 14:44:48 +01:00
Skia 5ee2baedba Add registering tests 2015-11-19 11:23:08 +01:00
Skia 898490324a Basic user profile 2015-11-19 09:46:05 +01:00
Skia c8680ec87d Update README.md 2015-11-19 08:47:24 +01:00
Skia 6c8f2c5555 Add README 2015-11-19 08:45:21 +01:00
Skia 619e27eb52 Basic auth system 2015-11-18 17:09:06 +01:00
Skia 5bd40b2ec4 First commit: basic users 2015-11-18 09:44:06 +01:00
1011 changed files with 90708 additions and 381560 deletions
+17
View File
@@ -0,0 +1,17 @@
[run]
source = .
branch = False
omit =
*test*
*/migrations/*
doc/*
env/*
sith/toolbar_debug.py
sith/wsgi.py
migrate.py
[report]
show_missing = False
include = *.py
[html]
title = Sith Code Coverage
directory = coverage_report
+18
View File
@@ -0,0 +1,18 @@
HTTPS=off
SITH_DEBUG=true
# This is not the real key used in prod
SECRET_KEY=(4sjxvhz@m5$0a$j0_pqicnc$s!vbve)z+&++m%g%bjhlz4+g2
# comment the sqlite line and uncomment the postgres one to switch the dbms
DATABASE_URL=sqlite:///db.sqlite3
#DATABASE_URL=postgres://user:password@127.0.0.1:5432/sith
REDIS_PORT=7963
CACHE_URL=redis://127.0.0.1:${REDIS_PORT}/0
TASK_BROKER_URL=redis://127.0.0.1:${REDIS_PORT}/1
# Used to select which other services to run alongside
# manage.py, pytest and runserver
PROCFILE_STATIC=Procfile.static
PROCFILE_SERVICE=Procfile.service
+6
View File
@@ -0,0 +1,6 @@
if [[ ! -d .venv ]]; then
log_error 'No .venv folder found. Use `uv sync` to create one first.'
exit 2
fi
. .venv/bin/activate
+2
View File
@@ -0,0 +1,2 @@
/locale/fr/LC_MESSAGES/django.po gitlab-language=python
*.jinja gitlab-language=jinja
+65
View File
@@ -0,0 +1,65 @@
name: "Setup project"
description: "Setup Python and Poetry"
inputs:
full:
description: >
If true, do a full setup, else install
only python, uv and non-xapian python deps
required: false
default: "false"
runs:
using: composite
steps:
- name: Install apt packages
if: ${{ inputs.full == 'true' }}
uses: awalsh128/cache-apt-pkgs-action@v1.4.3
with:
packages: gettext
version: 1.0 # increment to reset cache
- name: Install Redis
if: ${{ inputs.full == 'true' }}
uses: shogo82148/actions-setup-redis@v1
with:
redis-version: "7.x"
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
version: "0.5.14"
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: "Set up Python"
uses: actions/setup-python@v5
with:
python-version-file: ".python-version"
- name: Restore cached virtualenv
uses: actions/cache/restore@v4
with:
key: venv-${{ runner.os }}-${{ hashFiles('.python-version') }}-${{ hashFiles('pyproject.toml') }}-${{ env.CACHE_SUFFIX }}
path: .venv
- name: Install dependencies
run: uv sync
shell: bash
- name: Install Xapian
if: ${{ inputs.full == 'true' }}
run: uv run ./manage.py install_xapian
shell: bash
# compiling xapian accounts for almost the entirety of the virtualenv setup,
# so we save the virtual environment only on workflows where it has been installed
- name: Save cached virtualenv
if: ${{ inputs.full == 'true' }}
uses: actions/cache/save@v4
with:
key: venv-${{ runner.os }}-${{ hashFiles('.python-version') }}-${{ hashFiles('pyproject.toml') }}-${{ env.CACHE_SUFFIX }}
path: .venv
- name: Compile gettext messages
if: ${{ inputs.full == 'true' }}
run: uv run ./manage.py compilemessages
shell: bash
+13
View File
@@ -0,0 +1,13 @@
# Set to true to add reviewers to pull requests
addReviewers: true
# Set to true to add assignees to pull requests
addAssignees: author
# A list of team reviewers to be added to pull requests (GitHub team slug)
reviewers:
- ae-utbm/developpeurs
# Number of reviewers has no impact on GitHub teams
# Set 0 to add all the reviewers (default: 0)
numberOfReviewers: 0
+31
View File
@@ -0,0 +1,31 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
multi-ecosystem-groups:
common:
directory: "/"
schedule:
interval: "weekly"
target-branch: "taiste"
commit-message:
prefix: "[UPDATE] "
updates:
- package-ecosystem: "uv"
patterns: ["*"]
multi-ecosystem-group: "common"
- package-ecosystem: "npm"
patterns: ["*"]
multi-ecosystem-group: "common"
groups:
# npm supports production and development groups, but not uv
# cf. https://docs.github.com/en/code-security/dependabot/working-with-dependabot/dependabot-options-reference#dependency-type-groups
main-deps:
dependency-type: "production"
dev-deps:
dependency-type: "development"
+55
View File
@@ -0,0 +1,55 @@
name: Sith CI
on:
push:
branches: [master, taiste]
pull_request:
branches: [master, taiste]
workflow_dispatch:
env:
SECRET_KEY: notTheRealOne
DATABASE_URL: sqlite:///db.sqlite3
CACHE_URL: redis://127.0.0.1:6379/0
TASK_BROKER_URL: redis://127.0.0.1:6379/1
jobs:
pre-commit:
name: Launch pre-commits checks (ruff)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version-file: ".python-version"
- uses: pre-commit/action@v3.0.1
with:
extra_args: --all-files
tests:
name: Run tests and generate coverage report
runs-on: ubuntu-latest
strategy:
fail-fast: false # don't interrupt the other test processes
matrix:
pytest-mark: [not slow]
steps:
- name: Check out repository
uses: actions/checkout@v4
- uses: ./.github/actions/setup_project
with:
full: true
env:
# To avoid race conditions on environment cache
CACHE_SUFFIX: ${{ matrix.pytest-mark }}
- name: Run tests
run: uv run coverage run -m pytest -m "${{ matrix.pytest-mark }}"
- name: Generate coverage report
run: |
uv run coverage report
uv run coverage html
- name: Archive code coverage results
uses: actions/upload-artifact@v4
with:
name: coverage-report-${{ matrix.pytest-mark }}
path: coverage_report
+65
View File
@@ -0,0 +1,65 @@
name: Deploy to production
concurrency: production
on:
push:
branches: [master]
workflow_dispatch:
jobs:
deployment:
runs-on: ubuntu-latest
environment: production
timeout-minutes: 30
steps:
- name: SSH Remote Commands
uses: appleboy/ssh-action@v1.1.0
with:
# Proxy
proxy_host : ${{secrets.PROXY_HOST}}
proxy_port : ${{secrets.PROXY_PORT}}
proxy_username : ${{secrets.PROXY_USER}}
proxy_passphrase: ${{secrets.PROXY_PASSPHRASE}}
proxy_key: ${{secrets.PROXY_KEY}}
# Serveur web
host: ${{secrets.HOST}}
port : ${{secrets.PORT}}
username : ${{secrets.USER}}
key: ${{secrets.KEY}}
script_stop: true
# See https://github.com/ae-utbm/sith/wiki/GitHub-Actions#deployment-action
script: |
cd ${{secrets.SITH_PATH}}
git fetch
git reset --hard origin/master
uv sync --group prod
npm install
uv run ./manage.py install_xapian
uv run ./manage.py migrate
uv run ./manage.py collectstatic --clear --noinput
uv run ./manage.py compilemessages
sudo systemctl restart uwsgi
sentry:
runs-on: ubuntu-latest
environment: production
timeout-minutes: 30
needs: deployment
steps:
- uses: actions/checkout@v4
- name: Sentry Release
uses: getsentry/action-release@v1.7.0
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
SENTRY_URL: ${{ secrets.SENTRY_URL }}
with:
environment: production
+21
View File
@@ -0,0 +1,21 @@
name: deploy_docs
on:
push:
branches:
- taiste
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup_project
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
- uses: actions/cache@v3
with:
key: mkdocs-material-${{ env.cache_id }}
path: .cache
restore-keys: |
mkdocs-material-
- run: uv run mkdocs gh-deploy --force
+46
View File
@@ -0,0 +1,46 @@
name: Sith taiste
on:
push:
branches: [taiste]
workflow_dispatch:
jobs:
deployment:
runs-on: ubuntu-latest
environment: taiste
timeout-minutes: 30
steps:
- name: SSH Remote Commands
uses: appleboy/ssh-action@v1.1.0
with:
# Proxy
proxy_host : ${{secrets.PROXY_HOST}}
proxy_port : ${{secrets.PROXY_PORT}}
proxy_username : ${{secrets.PROXY_USER}}
proxy_passphrase: ${{secrets.PROXY_PASSPHRASE}}
proxy_key: ${{secrets.PROXY_KEY}}
# Serveur web
host: ${{secrets.HOST}}
port : ${{secrets.PORT}}
username : ${{secrets.USER}}
key: ${{secrets.KEY}}
script_stop: true
# See https://github.com/ae-utbm/sith/wiki/GitHub-Actions#deployment-action
script: |
cd ${{secrets.SITH_PATH}}
git fetch
git reset --hard origin/taiste
uv sync --group prod
npm install
uv run ./manage.py install_xapian
uv run ./manage.py migrate
uv run ./manage.py collectstatic --clear --noinput
uv run ./manage.py compilemessages
sudo systemctl restart uwsgi
+34
View File
@@ -0,0 +1,34 @@
*.sqlite3
*.log
*.pyc
*.mo
*__pycache__*
.DS_Store
pyrightconfig.json
dist/
.vscode/
.idea/
.venv/
doc/html
data/
galaxy/test_galaxy_state.json
/static/
sith/settings_custom.py
sith/search_indexes/
.coverage
coverage_report/
node_modules/
.env
*.pid
# compiled documentation
site/
# rollup-bundle-visualizer report
.bundle-size-report.html
### Redis ###
# Ignore redis binary dump (dump.rdb) files
*.rdb
+19
View File
@@ -0,0 +1,19 @@
Code <gregoire.duvauchelle@utbm.fr>
Cyl <labetowiez@aol.fr>
Juste <maaxleblanc@gmail.com>
Krophil <pierre.brunet@krophil.fr>
Lo-J <renaudg779@gmail.com>
Nabos <gnikwo@hotmail.com>
Och <francescowitz68@gmail.com>
Partoo <joqaste@gmail.com>
Skia <skia@hya.sk> <lordbanana25@mailoo.org>
Skia <skia@hya.sk> <skia@libskia.so>
Sli <klmp200@klmp200.net> <antoine@bartuccio.fr>
Soldat <ryan-68@live.fr>
Terre <jbaptiste.lenglet+git@gmail.com>
Vial <robin.trioux@utbm.fr>
Zar <antoine.charmeau@utbm.fr> <antoine.charmeau@laposte.net>
root <root@localhost.localdomain>
tleb <tleb@openmailbox.org> <theo.lebrun@live.fr>
tleb <tleb@openmailbox.org> <theo.lebrun@utbm.fr>
Maréchal <thgirod@hotmail.com>
+1
View File
@@ -0,0 +1 @@
@jsr:registry=https://npm.jsr.io
+26
View File
@@ -0,0 +1,26 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.15.5
hooks:
- id: ruff-check # just check the code, and print the errors
- id: ruff-check # actually fix the fixable errors, but print nothing
args: ["--fix", "--silent"]
# Run the formatter.
- id: ruff-format
- repo: https://github.com/biomejs/pre-commit
rev: v0.6.1
hooks:
- id: biome-check
additional_dependencies: ["@biomejs/biome@2.4.6"]
- repo: https://github.com/rtts/djhtml
rev: 3.0.10
hooks:
- id: djhtml
name: format templates
entry: djhtml --tabwidth 2
types: ["jinja"]
- id: djcss
name: format scss files
entry: djcss --tabwidth 2
types: ["scss"]
+1
View File
@@ -0,0 +1 @@
3.12
-3576
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -0,0 +1,3 @@
Pour contribuer au projet, vous pouvez vous référer à la documentation disponible à https://sith-ae.readthedocs.io/.
Et n'oubliez pas, contribuer c'est la vie !
+674
View File
@@ -0,0 +1,674 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+2
View File
@@ -0,0 +1,2 @@
redis: redis-server --port $REDIS_PORT
celery: uv run celery -A sith worker --beat -l INFO
+1
View File
@@ -0,0 +1 @@
bundler: npm run serve
+21
View File
@@ -0,0 +1,21 @@
# Sith
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](#)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![CI status](https://github.com/ae-utbm/sith/actions/workflows/ci.yml/badge.svg)](#)
[![Docs status](https://github.com/ae-utbm/sith/actions/workflows/deploy_docs.yml/badge.svg)](https://ae-utbm.github.io/sith)
[![Built with Material for MkDocs](https://img.shields.io/badge/Material_for_MkDocs-526CFE?style=default&logo=MaterialForMkDocs&logoColor=white)](https://squidfunk.github.io/mkdocs-material/)
[![Checked with Biome](https://img.shields.io/badge/Checked_with-Biome-60a5fa?style=flat&logo=biome)](https://biomejs.dev)
[![discord](https://img.shields.io/discord/971448179075731476?label=discord&logo=discord&style=default)](https://discord.gg/xk9wfpsufm)
### This is the source code of the UTBM's student association available at [https://ae.utbm.fr/](https://ae.utbm.fr/).
All documentation is in the `docs` directory and online at [https://ae-utbm.github.io/sith](https://ae-utbm.github.io/sith). This documentation is written in French because it targets a French audience and it's too much work to maintain two versions. The code and code comments are strictly written in English.
#### If you want to contribute, here's how we recommend to read the docs:
* First, it's advised to read the about part of the project to understand the goals and the mindset of the current and previous maintainers and know what to expect to learn.
* If in the first part you realize that you need more background about what we use, we provide some links to tutorials and documentation at the end of our documentation. Feel free to use it and complete it with what you found helpful.
* Keep in mind that this documentation is thought to be read in order.
> This project is licensed under GNU GPL, see the LICENSE file at the top of the repository for more details.
View File
+10
View File
@@ -0,0 +1,10 @@
from django.contrib import admin
from antispam.models import ToxicDomain
@admin.register(ToxicDomain)
class ToxicDomainAdmin(admin.ModelAdmin):
list_display = ("domain", "is_externally_managed", "created")
search_fields = ("domain", "is_externally_managed", "created")
list_filter = ("is_externally_managed",)
+7
View File
@@ -0,0 +1,7 @@
from django.apps import AppConfig
class AntispamConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
verbose_name = "antispam"
name = "antispam"
+22
View File
@@ -0,0 +1,22 @@
from django import forms
from django.core.validators import EmailValidator
from django.utils.translation import gettext_lazy as _
from antispam.models import ToxicDomain
class AntiSpamEmailValidator(EmailValidator):
def __call__(self, value: str):
super().__call__(value)
domain_part = value.rsplit("@", 1)[1]
if ToxicDomain.objects.filter(domain=domain_part).exists():
raise forms.ValidationError(_("Email domain is not allowed."))
validate_antispam_email = AntiSpamEmailValidator()
class AntiSpamEmailField(forms.EmailField):
"""An email field that email addresses with a known toxic domain."""
default_validators = [validate_antispam_email]
@@ -0,0 +1,69 @@
import requests
from django.conf import settings
from django.core.management import BaseCommand
from django.db.models import Max
from django.utils import timezone
from antispam.models import ToxicDomain
class Command(BaseCommand):
"""Update blocked ips/mails database"""
help = "Update blocked ips/mails database"
def add_arguments(self, parser):
parser.add_argument(
"--force", action="store_true", help="Force re-creation even if up to date"
)
def _should_update(self, *, force: bool = False) -> bool:
if force:
return True
oldest = ToxicDomain.objects.filter(is_externally_managed=True).aggregate(
res=Max("created")
)["res"]
return not (oldest and timezone.now() < (oldest + timezone.timedelta(days=1)))
def _download_domains(self, providers: list[str]) -> set[str]:
domains = set()
for provider in providers:
res = requests.get(provider)
if not res.ok:
self.stderr.write(
f"Source {provider} responded with code {res.status_code}"
)
continue
domains |= set(res.text.splitlines())
return domains
def _update_domains(self, domains: set[str]):
# Cleanup database
ToxicDomain.objects.filter(is_externally_managed=True).delete()
# Create database
ToxicDomain.objects.bulk_create(
[
ToxicDomain(domain=domain, is_externally_managed=True)
for domain in domains
],
ignore_conflicts=True,
)
self.stdout.write("Domain database updated")
def handle(self, *args, **options):
if not self._should_update(force=options["force"]):
self.stdout.write("Domain database is up to date")
return
self.stdout.write("Updating domain database")
domains = self._download_domains(settings.TOXIC_DOMAINS_PROVIDERS)
if not domains:
self.stderr.write(
"No domains could be fetched from settings.TOXIC_DOMAINS_PROVIDERS. "
"Please, have a look at your settings."
)
return
self._update_domains(domains)
+35
View File
@@ -0,0 +1,35 @@
# Generated by Django 4.2.14 on 2024-08-03 23:05
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="ToxicDomain",
fields=[
(
"domain",
models.URLField(
max_length=253,
primary_key=True,
serialize=False,
verbose_name="domain",
),
),
("created", models.DateTimeField(auto_now_add=True)),
(
"is_externally_managed",
models.BooleanField(
default=False,
help_text="True if kept up-to-date using external toxic domain providers, else False",
verbose_name="is externally managed",
),
),
],
),
]
View File
+19
View File
@@ -0,0 +1,19 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
class ToxicDomain(models.Model):
"""Domain marked as spam in public databases"""
domain = models.URLField(_("domain"), max_length=253, primary_key=True)
created = models.DateTimeField(auto_now_add=True)
is_externally_managed = models.BooleanField(
_("is externally managed"),
default=False,
help_text=_(
"True if kept up-to-date using external toxic domain providers, else False"
),
)
def __str__(self) -> str:
return self.domain
View File
+55
View File
@@ -0,0 +1,55 @@
from django.contrib import admin, messages
from django.db.models import QuerySet
from django.http import HttpRequest
from django.utils.translation import gettext_lazy as _
from api.hashers import generate_key
from api.models import ApiClient, ApiKey
@admin.register(ApiClient)
class ApiClientAdmin(admin.ModelAdmin):
list_display = ("name", "owner", "created_at", "updated_at")
search_fields = (
"name",
"owner__first_name",
"owner__last_name",
"owner__nick_name",
)
autocomplete_fields = ("owner", "groups", "client_permissions")
@admin.register(ApiKey)
class ApiKeyAdmin(admin.ModelAdmin):
list_display = ("name", "client", "created_at", "revoked")
list_filter = ("revoked",)
date_hierarchy = "created_at"
readonly_fields = ("prefix", "hashed_key")
actions = ("revoke_keys",)
def save_model(self, request: HttpRequest, obj: ApiKey, form, change):
if not change:
key, hashed = generate_key()
obj.prefix = key[: ApiKey.PREFIX_LENGTH]
obj.hashed_key = hashed
self.message_user(
request,
_(
"The API key for %(name)s is: %(key)s. "
"Please store it somewhere safe: "
"you will not be able to see it again."
)
% {"name": obj.name, "key": key},
level=messages.WARNING,
)
return super().save_model(request, obj, form, change)
def get_readonly_fields(self, request, obj: ApiKey | None = None):
if obj is None or obj.revoked:
return ["revoked", *self.readonly_fields]
return self.readonly_fields
@admin.action(description=_("Revoke selected API keys"))
def revoke_keys(self, _request: HttpRequest, queryset: QuerySet[ApiKey]):
queryset.update(revoked=True)
+6
View File
@@ -0,0 +1,6 @@
from django.apps import AppConfig
class ApiConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "api"
+22
View File
@@ -0,0 +1,22 @@
from django.http import HttpRequest
from ninja.security import APIKeyHeader
from api.hashers import get_hasher
from api.models import ApiClient, ApiKey
class ApiKeyAuth(APIKeyHeader):
"""Authentication through client api keys."""
param_name = "X-APIKey"
def authenticate(self, request: HttpRequest, key: str | None) -> ApiClient | None:
if not key or len(key) != ApiKey.KEY_LENGTH:
return None
hasher = get_hasher()
hashed_key = hasher.encode(key)
try:
key_obj = ApiKey.objects.get(revoked=False, hashed_key=hashed_key)
except ApiKey.DoesNotExist:
return None
return key_obj.client
+43
View File
@@ -0,0 +1,43 @@
import functools
import hashlib
import secrets
from django.contrib.auth.hashers import BasePasswordHasher
from django.utils.crypto import constant_time_compare
class Sha512ApiKeyHasher(BasePasswordHasher):
"""
An API key hasher using the sha512 algorithm.
This hasher shouldn't be used in Django's `PASSWORD_HASHERS` setting.
It is insecure for use in hashing passwords, but is safe for hashing
high entropy, randomly generated API keys.
"""
algorithm = "sha512"
def salt(self) -> str:
# No need for a salt on a high entropy key.
return ""
def encode(self, password: str, salt: str = "") -> str:
hashed = hashlib.sha512(password.encode()).hexdigest()
return f"{self.algorithm}$${hashed}"
def verify(self, password: str, encoded: str) -> bool:
encoded_2 = self.encode(password, "")
return constant_time_compare(encoded, encoded_2)
@functools.cache
def get_hasher():
return Sha512ApiKeyHasher()
def generate_key() -> tuple[str, str]:
"""Generate a [key, hash] couple."""
# this will result in key with a length of 72
key = str(secrets.token_urlsafe(54))
hasher = get_hasher()
return key, hasher.encode(key)
+113
View File
@@ -0,0 +1,113 @@
# Generated by Django 5.2 on 2025-06-01 08:53
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
("auth", "0012_alter_user_first_name_max_length"),
("core", "0046_permissionrights"),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name="ApiClient",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(max_length=64, verbose_name="name")),
("created_at", models.DateTimeField(auto_now_add=True)),
("updated_at", models.DateTimeField(auto_now=True)),
(
"client_permissions",
models.ManyToManyField(
blank=True,
help_text="Specific permissions for this api client.",
related_name="clients",
to="auth.permission",
verbose_name="client permissions",
),
),
(
"groups",
models.ManyToManyField(
blank=True,
related_name="api_clients",
to="core.group",
verbose_name="groups",
),
),
(
"owner",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="api_clients",
to=settings.AUTH_USER_MODEL,
verbose_name="owner",
),
),
],
options={
"verbose_name": "api client",
"verbose_name_plural": "api clients",
},
),
migrations.CreateModel(
name="ApiKey",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(blank=True, default="", verbose_name="name")),
(
"prefix",
models.CharField(
editable=False, max_length=5, verbose_name="prefix"
),
),
(
"hashed_key",
models.CharField(
db_index=True,
editable=False,
max_length=136,
verbose_name="hashed key",
),
),
("revoked", models.BooleanField(default=False, verbose_name="revoked")),
("created_at", models.DateTimeField(auto_now_add=True)),
(
"client",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="api_keys",
to="api.apiclient",
verbose_name="api client",
),
),
],
options={
"verbose_name": "api key",
"verbose_name_plural": "api keys",
"permissions": [("revoke_apikey", "Revoke API keys")],
},
),
]
View File
+94
View File
@@ -0,0 +1,94 @@
from typing import Iterable
from django.contrib.auth.models import Permission
from django.db import models
from django.utils.translation import gettext_lazy as _
from django.utils.translation import pgettext_lazy
from core.models import Group, User
class ApiClient(models.Model):
name = models.CharField(_("name"), max_length=64)
owner = models.ForeignKey(
User,
verbose_name=_("owner"),
related_name="api_clients",
on_delete=models.CASCADE,
)
groups = models.ManyToManyField(
Group, verbose_name=_("groups"), related_name="api_clients", blank=True
)
client_permissions = models.ManyToManyField(
Permission,
verbose_name=_("client permissions"),
blank=True,
help_text=_("Specific permissions for this api client."),
related_name="clients",
)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
_perm_cache: set[str] | None = None
class Meta:
verbose_name = _("api client")
verbose_name_plural = _("api clients")
def __str__(self):
return self.name
def has_perm(self, perm: str):
"""Return True if the client has the specified permission."""
if self._perm_cache is None:
group_permissions = (
Permission.objects.filter(group__group__in=self.groups.all())
.values_list("content_type__app_label", "codename")
.order_by()
)
client_permissions = self.client_permissions.values_list(
"content_type__app_label", "codename"
).order_by()
self._perm_cache = {
f"{content_type}.{name}"
for content_type, name in (*group_permissions, *client_permissions)
}
return perm in self._perm_cache
def has_perms(self, perm_list):
"""
Return True if the client has each of the specified permissions. If
object is passed, check if the client has all required perms for it.
"""
if not isinstance(perm_list, Iterable) or isinstance(perm_list, str):
raise ValueError("perm_list must be an iterable of permissions.")
return all(self.has_perm(perm) for perm in perm_list)
class ApiKey(models.Model):
PREFIX_LENGTH = 5
KEY_LENGTH = 72
HASHED_KEY_LENGTH = 136
name = models.CharField(_("name"), blank=True, default="")
prefix = models.CharField(_("prefix"), max_length=PREFIX_LENGTH, editable=False)
hashed_key = models.CharField(
_("hashed key"), max_length=HASHED_KEY_LENGTH, db_index=True, editable=False
)
client = models.ForeignKey(
ApiClient,
verbose_name=_("api client"),
related_name="api_keys",
on_delete=models.CASCADE,
)
revoked = models.BooleanField(pgettext_lazy("api key", "revoked"), default=False)
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name = _("api key")
verbose_name_plural = _("api keys")
permissions = [("revoke_apikey", "Revoke API keys")]
def __str__(self):
return f"{self.name} ({self.prefix}***)"
+197
View File
@@ -0,0 +1,197 @@
"""Permission classes to be used within ninja-extra controllers.
Some permissions are global (like `IsInGroup` or `IsRoot`),
and some others are per-object (like `CanView` or `CanEdit`).
Example:
```python
# restrict all the routes of this controller
# to subscribed users
@api_controller("/foo", permissions=[IsSubscriber])
class FooController(ControllerBase):
@route.get("/bar")
def bar_get(self):
# This route inherits the permissions of the controller
# ...
@route.bar("/bar/{bar_id}", permissions=[CanView])
def bar_get_one(self, bar_id: int):
# per-object permission resolution happens
# when calling either the `get_object_or_exception`
# or `get_object_or_none` method.
bar = self.get_object_or_exception(Counter, pk=bar_id)
# you can also call the `check_object_permission` manually
other_bar = Counter.objects.first()
self.check_object_permissions(other_bar)
# ...
# This route is restricted to counter admins and root users
@route.delete(
"/bar/{bar_id}",
permissions=[IsRoot | IsInGroup(settings.SITH_GROUP_COUNTER_ADMIN_ID)
]
def bar_delete(self, bar_id: int):
# ...
```
"""
import operator
from functools import reduce
from typing import Any, Callable
from django.contrib.auth.models import Permission
from django.http import HttpRequest
from ninja_extra import ControllerBase
from ninja_extra.permissions import BasePermission
from counter.models import Counter
class IsInGroup(BasePermission):
"""Check that the user is in the group whose primary key is given."""
def __init__(self, group_pk: int):
self._group_pk = group_pk
def has_permission(self, request: HttpRequest, controller: ControllerBase) -> bool:
return request.user.is_in_group(pk=self._group_pk)
class HasPerm(BasePermission):
"""Check that the user has the required perm.
If multiple perms are given, a comparer function can also be passed,
in order to change the way perms are checked.
Example:
```python
@api_controller("/foo")
class FooController(ControllerBase):
# this route will require both permissions
@route.put("/foo", permissions=[HasPerm(["foo.change_foo", "foo.add_foo"])]
def foo(self): ...
# This route will require at least one of the perm,
# but it's not mandatory to have all of them
@route.put(
"/bar",
permissions=[HasPerm(["foo.change_bar", "foo.add_bar"], op=operator.or_)],
)
def bar(self): ...
```
"""
def __init__(
self,
perms: str | Permission | list[str | Permission],
op: Callable[[bool, bool], bool] = operator.and_,
):
"""
Args:
perms: a permission or a list of permissions the user must have
op: An operator to combine multiple permissions (in most cases,
it will be either `operator.and_` or `operator.or_`)
"""
super().__init__()
if not isinstance(perms, (list, tuple, set)):
perms = [perms]
self._operator = op
self._perms = perms
def has_permission(self, request: HttpRequest, controller: ControllerBase) -> bool:
# if the request has the `auth` property,
# it means that the user has been explicitly authenticated
# using a django-ninja authentication backend
# (whether it is SessionAuth or ApiKeyAuth).
# If not, this authentication has not been done, but the user may
# still be implicitly authenticated through AuthenticationMiddleware
user = request.auth if hasattr(request, "auth") else request.user
# `user` may either be a `core.User` or an `api.ApiClient` ;
# they are not the same model, but they both implement the `has_perm` method
return reduce(self._operator, (user.has_perm(p) for p in self._perms))
class IsRoot(BasePermission):
"""Check that the user is root."""
def has_permission(self, request: HttpRequest, controller: ControllerBase) -> bool:
return request.user.is_root
class IsSubscriber(BasePermission):
"""Check that the user is currently subscribed."""
def has_permission(self, request: HttpRequest, controller: ControllerBase) -> bool:
return request.user.is_subscribed
class IsOldSubscriber(BasePermission):
"""Check that the user has at least one subscription in its history."""
def has_permission(self, request: HttpRequest, controller: ControllerBase) -> bool:
return request.user.was_subscribed
class CanView(BasePermission):
"""Check that this user has the permission to view the object of this route.
Wrap the `user.can_view(obj)` method.
To see an example, look at the example in the module docstring.
"""
def has_permission(self, request: HttpRequest, controller: ControllerBase) -> bool:
return True
def has_object_permission(
self, request: HttpRequest, controller: ControllerBase, obj: Any
) -> bool:
return request.user.can_view(obj)
class CanEdit(BasePermission):
"""Check that this user has the permission to edit the object of this route.
Wrap the `user.can_edit(obj)` method.
To see an example, look at the example in the module docstring.
"""
def has_permission(self, request: HttpRequest, controller: ControllerBase) -> bool:
return True
def has_object_permission(
self, request: HttpRequest, controller: ControllerBase, obj: Any
) -> bool:
return request.user.can_edit(obj)
class IsOwner(BasePermission):
"""Check that this user owns the object of this route.
Wrap the `user.is_owner(obj)` method.
To see an example, look at the example in the module docstring.
"""
def has_permission(self, request: HttpRequest, controller: ControllerBase) -> bool:
return True
def has_object_permission(
self, request: HttpRequest, controller: ControllerBase, obj: Any
) -> bool:
return request.user.is_owner(obj)
class IsLoggedInCounter(BasePermission):
"""Check that a user is logged in a counter."""
def has_permission(self, request: HttpRequest, controller: ControllerBase) -> bool:
if "/counter/" not in request.META.get("HTTP_REFERER", ""):
return False
token = request.session.get("counter_token")
if not token:
return False
return Counter.objects.filter(token=token).exists()
CanAccessLookup = IsLoggedInCounter | HasPerm("core.access_lookup")
View File
+29
View File
@@ -0,0 +1,29 @@
import pytest
from django.test import RequestFactory
from model_bakery import baker
from api.auth import ApiKeyAuth
from api.hashers import generate_key
from api.models import ApiClient, ApiKey
@pytest.mark.django_db
def test_api_key_auth():
key, hashed = generate_key()
client = baker.make(ApiClient)
baker.make(ApiKey, client=client, hashed_key=hashed)
auth = ApiKeyAuth()
assert auth.authenticate(RequestFactory().get(""), key) == client
@pytest.mark.django_db
@pytest.mark.parametrize(
("key", "hashed"), [(generate_key()[0], generate_key()[1]), (generate_key()[0], "")]
)
def test_api_key_auth_invalid(key, hashed):
client = baker.make(ApiClient)
baker.make(ApiKey, client=client, hashed_key=hashed)
auth = ApiKeyAuth()
assert auth.authenticate(RequestFactory().get(""), key) is None
+48
View File
@@ -0,0 +1,48 @@
import pytest
from django.test import Client
from django.urls import path
from model_bakery import baker
from ninja import NinjaAPI
from ninja.security import SessionAuth
from api.auth import ApiKeyAuth
from api.hashers import generate_key
from api.models import ApiClient, ApiKey
api = NinjaAPI()
@api.post("", auth=[ApiKeyAuth(), SessionAuth()])
def post_method(*args, **kwargs) -> None:
"""Dummy POST route authenticated by either api key or session cookie."""
pass
urlpatterns = [path("", api.urls)]
@pytest.mark.django_db
@pytest.mark.urls(__name__)
@pytest.mark.parametrize("user_logged_in", [False, True])
def test_csrf_token(user_logged_in):
"""Test that CSRF check happens only when no api key is used."""
client = Client(enforce_csrf_checks=True)
key, hashed = generate_key()
api_client = baker.make(ApiClient)
baker.make(ApiKey, client=api_client, hashed_key=hashed)
if user_logged_in:
client.force_login(api_client.owner)
response = client.post("")
assert response.status_code == 403
assert response.json()["detail"] == "CSRF check Failed"
# if using a valid API key, CSRF check should not occur
response = client.post("", headers={"X-APIKey": key})
assert response.status_code == 200
# if using a wrong API key, ApiKeyAuth should fail,
# leading to a fallback into SessionAuth and a CSRF check
response = client.post("", headers={"X-APIKey": generate_key()[0]})
assert response.status_code == 403
assert response.json()["detail"] == "CSRF check Failed"
+11
View File
@@ -0,0 +1,11 @@
from ninja.security import SessionAuth
from ninja_extra import NinjaExtraAPI
api = NinjaExtraAPI(
title="PICON",
description="Portail Interactif de Communication avec les Outils Numériques",
version="0.2.0",
urls_namespace="api",
auth=[SessionAuth()],
)
api.auto_discover_controllers()
-237
View File
@@ -1,237 +0,0 @@
/* Avoid breaking parameter names, etc. in table cells. */
.doc-contents td code {
word-break: normal !important;
}
/* No line break before first paragraph of descriptions. */
.doc-md-description,
.doc-md-description>p:first-child {
display: inline;
}
/* No text transformation from Material for MkDocs for H5 headings. */
.md-typeset h5 .doc-object-name {
text-transform: none;
}
/* Max width for docstring sections tables. */
.doc .md-typeset__table,
.doc .md-typeset__table table {
display: table !important;
width: 100%;
}
.doc .md-typeset__table tr {
display: table-row;
}
/* Defaults in Spacy table style. */
.doc-param-default,
.doc-type_param-default {
float: right;
}
/* Parameter headings must be inline, not blocks. */
.doc-heading-parameter,
.doc-heading-type_parameter {
display: inline;
}
/* Default font size for parameter headings. */
.md-typeset .doc-heading-parameter {
font-size: inherit;
}
/* Prefer space on the right, not the left of parameter permalinks. */
.doc-heading-parameter .headerlink,
.doc-heading-type_parameter .headerlink {
margin-left: 0 !important;
margin-right: 0.2rem;
}
/* Backward-compatibility: docstring section titles in bold. */
.doc-section-title {
font-weight: bold;
}
/* Backlinks crumb separator. */
.doc-backlink-crumb {
display: inline-flex;
gap: .2rem;
white-space: nowrap;
align-items: center;
vertical-align: middle;
}
.doc-backlink-crumb:not(:first-child)::before {
background-color: var(--md-default-fg-color--lighter);
content: "";
display: inline;
height: 1rem;
--md-path-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6z"/></svg>');
-webkit-mask-image: var(--md-path-icon);
mask-image: var(--md-path-icon);
width: 1rem;
}
.doc-backlink-crumb.last {
font-weight: bold;
}
/* Symbols in Navigation and ToC. */
:root, :host,
[data-md-color-scheme="default"] {
--doc-symbol-parameter-fg-color: #df50af;
--doc-symbol-type_parameter-fg-color: #df50af;
--doc-symbol-attribute-fg-color: #953800;
--doc-symbol-function-fg-color: #8250df;
--doc-symbol-method-fg-color: #8250df;
--doc-symbol-class-fg-color: #0550ae;
--doc-symbol-type_alias-fg-color: #0550ae;
--doc-symbol-module-fg-color: #5cad0f;
--doc-symbol-parameter-bg-color: #df50af1a;
--doc-symbol-type_parameter-bg-color: #df50af1a;
--doc-symbol-attribute-bg-color: #9538001a;
--doc-symbol-function-bg-color: #8250df1a;
--doc-symbol-method-bg-color: #8250df1a;
--doc-symbol-class-bg-color: #0550ae1a;
--doc-symbol-type_alias-bg-color: #0550ae1a;
--doc-symbol-module-bg-color: #5cad0f1a;
}
[data-md-color-scheme="slate"] {
--doc-symbol-parameter-fg-color: #ffa8cc;
--doc-symbol-type_parameter-fg-color: #ffa8cc;
--doc-symbol-attribute-fg-color: #ffa657;
--doc-symbol-function-fg-color: #d2a8ff;
--doc-symbol-method-fg-color: #d2a8ff;
--doc-symbol-class-fg-color: #79c0ff;
--doc-symbol-type_alias-fg-color: #79c0ff;
--doc-symbol-module-fg-color: #baff79;
--doc-symbol-parameter-bg-color: #ffa8cc1a;
--doc-symbol-type_parameter-bg-color: #ffa8cc1a;
--doc-symbol-attribute-bg-color: #ffa6571a;
--doc-symbol-function-bg-color: #d2a8ff1a;
--doc-symbol-method-bg-color: #d2a8ff1a;
--doc-symbol-class-bg-color: #79c0ff1a;
--doc-symbol-type_alias-bg-color: #79c0ff1a;
--doc-symbol-module-bg-color: #baff791a;
}
code.doc-symbol {
border-radius: .1rem;
font-size: .85em;
padding: 0 .3em;
font-weight: bold;
}
code.doc-symbol-parameter,
a code.doc-symbol-parameter {
color: var(--doc-symbol-parameter-fg-color);
background-color: var(--doc-symbol-parameter-bg-color);
}
code.doc-symbol-parameter::after {
content: "param";
}
code.doc-symbol-type_parameter,
a code.doc-symbol-type_parameter {
color: var(--doc-symbol-type_parameter-fg-color);
background-color: var(--doc-symbol-type_parameter-bg-color);
}
code.doc-symbol-type_parameter::after {
content: "type-param";
}
code.doc-symbol-attribute,
a code.doc-symbol-attribute {
color: var(--doc-symbol-attribute-fg-color);
background-color: var(--doc-symbol-attribute-bg-color);
}
code.doc-symbol-attribute::after {
content: "attr";
}
code.doc-symbol-function,
a code.doc-symbol-function {
color: var(--doc-symbol-function-fg-color);
background-color: var(--doc-symbol-function-bg-color);
}
code.doc-symbol-function::after {
content: "func";
}
code.doc-symbol-method,
a code.doc-symbol-method {
color: var(--doc-symbol-method-fg-color);
background-color: var(--doc-symbol-method-bg-color);
}
code.doc-symbol-method::after {
content: "meth";
}
code.doc-symbol-class,
a code.doc-symbol-class {
color: var(--doc-symbol-class-fg-color);
background-color: var(--doc-symbol-class-bg-color);
}
code.doc-symbol-class::after {
content: "class";
}
code.doc-symbol-type_alias,
a code.doc-symbol-type_alias {
color: var(--doc-symbol-type_alias-fg-color);
background-color: var(--doc-symbol-type_alias-bg-color);
}
code.doc-symbol-type_alias::after {
content: "type";
}
code.doc-symbol-module,
a code.doc-symbol-module {
color: var(--doc-symbol-module-fg-color);
background-color: var(--doc-symbol-module-bg-color);
}
code.doc-symbol-module::after {
content: "mod";
}
.doc-signature .autorefs {
color: inherit;
border-bottom: 1px dotted currentcolor;
}
/* Source code blocks (admonitions). */
:root {
--md-admonition-icon--mkdocstrings-source: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.22 4.97a.75.75 0 0 1 1.06 0l6.5 6.5a.75.75 0 0 1 0 1.06l-6.5 6.5a.749.749 0 0 1-1.275-.326.75.75 0 0 1 .215-.734L21.19 12l-5.97-5.97a.75.75 0 0 1 0-1.06m-6.44 0a.75.75 0 0 1 0 1.06L2.81 12l5.97 5.97a.749.749 0 0 1-.326 1.275.75.75 0 0 1-.734-.215l-6.5-6.5a.75.75 0 0 1 0-1.06l6.5-6.5a.75.75 0 0 1 1.06 0"/></svg>')
}
.md-typeset .admonition.mkdocstrings-source,
.md-typeset details.mkdocstrings-source {
border: none;
padding: 0;
}
.md-typeset .admonition.mkdocstrings-source:focus-within,
.md-typeset details.mkdocstrings-source:focus-within {
box-shadow: none;
}
.md-typeset .mkdocstrings-source > .admonition-title,
.md-typeset .mkdocstrings-source > summary {
background-color: inherit;
}
.md-typeset .mkdocstrings-source > .admonition-title::before,
.md-typeset .mkdocstrings-source > summary::before {
background-color: var(--md-default-fg-color);
-webkit-mask-image: var(--md-admonition-icon--mkdocstrings-source);
mask-image: var(--md-admonition-icon--mkdocstrings-source);
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-18
View File
@@ -1,18 +0,0 @@
/*!
* Lunr languages, `Danish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWordFilter,e.da.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.da.stemmer))},e.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.da.trimmer=e.trimmerSupport.generateTrimmer(e.da.wordCharacters),e.Pipeline.registerFunction(e.da.trimmer,"trimmer-da"),e.da.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){var e,r=f.cursor+3;if(d=f.limit,0<=r&&r<=f.limit){for(a=r;;){if(e=f.cursor,f.in_grouping(w,97,248)){f.cursor=e;break}if(f.cursor=e,e>=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}d=f.cursor,d<a&&(d=a)}}function n(){var e,r;if(f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}});
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWordFilter,e.hi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hi.stemmer))},e.hi.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿa-zA-Z-zA-0-9-",e.hi.trimmer=e.trimmerSupport.generateTrimmer(e.hi.wordCharacters),e.Pipeline.registerFunction(e.hi.trimmer,"trimmer-hi"),e.hi.stopWordFilter=e.generateStopWordFilter("अत अपना अपनी अपने अभी अंदर आदि आप इत्यादि इन इनका इन्हीं इन्हें इन्हों इस इसका इसकी इसके इसमें इसी इसे उन उनका उनकी उनके उनको उन्हीं उन्हें उन्हों उस उसके उसी उसे एक एवं एस ऐसे और कई कर करता करते करना करने करें कहते कहा का काफ़ी कि कितना किन्हें किन्हों किया किर किस किसी किसे की कुछ कुल के को कोई कौन कौनसा गया घर जब जहाँ जा जितना जिन जिन्हें जिन्हों जिस जिसे जीधर जैसा जैसे जो तक तब तरह तिन तिन्हें तिन्हों तिस तिसे तो था थी थे दबारा दिया दुसरा दूसरे दो द्वारा न नके नहीं ना निहायत नीचे ने पर पहले पूरा पे फिर बनी बही बहुत बाद बाला बिलकुल भी भीतर मगर मानो मे में यदि यह यहाँ यही या यिह ये रखें रहा रहे ऱ्वासा लिए लिये लेकिन व वग़ैरह वर्ग वह वहाँ वहीं वाले वुह वे वो सकता सकते सबसे सभी साथ साबुत साभ सारा से सो संग ही हुआ हुई हुए है हैं हो होता होती होते होना होने".split(" ")),e.hi.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.hi.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var t=i.toString().toLowerCase().replace(/^\s+/,"");return r.cut(t).split("|")},e.Pipeline.registerFunction(e.hi.stemmer,"stemmer-hi"),e.Pipeline.registerFunction(e.hi.stopWordFilter,"stopWordFilter-hi")}});
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hy=function(){this.pipeline.reset(),this.pipeline.add(e.hy.trimmer,e.hy.stopWordFilter)},e.hy.wordCharacters="[A-Za-z԰-֏ff-ﭏ]",e.hy.trimmer=e.trimmerSupport.generateTrimmer(e.hy.wordCharacters),e.Pipeline.registerFunction(e.hy.trimmer,"trimmer-hy"),e.hy.stopWordFilter=e.generateStopWordFilter("դու և եք էիր էիք հետո նաև նրանք որը վրա է որ պիտի են այս մեջ ն իր ու ի այդ որոնք այն կամ էր մի ես համար այլ իսկ էին ենք հետ ին թ էինք մենք նրա նա դուք եմ էի ըստ որպես ում".split(" ")),e.Pipeline.registerFunction(e.hy.stopWordFilter,"stopWordFilter-hy"),e.hy.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}(),e.Pipeline.registerFunction(e.hy.stemmer,"stemmer-hy")}});
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n<p.length;n++)r?a.push(new e.Token(p[n],{position:[f,p[n].length],index:a.length})):a.push(p[n]),f+=p[n].length;l=c+1}return a},e.ja.stemmer=function(){return function(e){return e}}(),e.Pipeline.registerFunction(e.ja.stemmer,"stemmer-ja"),e.ja.wordCharacters="一二三四五六七八九十百千万億兆一-龠々〆ヵヶぁ-んァ-ヴーア-ン゙a-zA-Z-zA-0-9-",e.ja.trimmer=e.trimmerSupport.generateTrimmer(e.ja.wordCharacters),e.Pipeline.registerFunction(e.ja.trimmer,"trimmer-ja"),e.ja.stopWordFilter=e.generateStopWordFilter("これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし".split(" ")),e.Pipeline.registerFunction(e.ja.stopWordFilter,"stopWordFilter-ja"),e.jp=e.ja,e.Pipeline.registerFunction(e.jp.stemmer,"stemmer-jp"),e.Pipeline.registerFunction(e.jp.trimmer,"trimmer-jp"),e.Pipeline.registerFunction(e.jp.stopWordFilter,"stopWordFilter-jp")}});
-1
View File
@@ -1 +0,0 @@
module.exports=require("./lunr.ja");
-1
View File
@@ -1 +0,0 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.kn=function(){this.pipeline.reset(),this.pipeline.add(e.kn.trimmer,e.kn.stopWordFilter,e.kn.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.kn.stemmer))},e.kn.wordCharacters="ಀ-಄ಅ-ಔಕ-ಹಾ-ೌ಼-ಽೕ-ೖೝ-ೞೠ-ೡೢ-ೣ೤೥೦-೯ೱ-ೳ",e.kn.trimmer=e.trimmerSupport.generateTrimmer(e.kn.wordCharacters),e.Pipeline.registerFunction(e.kn.trimmer,"trimmer-kn"),e.kn.stopWordFilter=e.generateStopWordFilter("ಮತ್ತು ಈ ಒಂದು ರಲ್ಲಿ ಹಾಗೂ ಎಂದು ಅಥವಾ ಇದು ರ ಅವರು ಎಂಬ ಮೇಲೆ ಅವರ ತನ್ನ ಆದರೆ ತಮ್ಮ ನಂತರ ಮೂಲಕ ಹೆಚ್ಚು ನ ಆ ಕೆಲವು ಅನೇಕ ಎರಡು ಹಾಗು ಪ್ರಮುಖ ಇದನ್ನು ಇದರ ಸುಮಾರು ಅದರ ಅದು ಮೊದಲ ಬಗ್ಗೆ ನಲ್ಲಿ ರಂದು ಇತರ ಅತ್ಯಂತ ಹೆಚ್ಚಿನ ಸಹ ಸಾಮಾನ್ಯವಾಗಿ ನೇ ಹಲವಾರು ಹೊಸ ದಿ ಕಡಿಮೆ ಯಾವುದೇ ಹೊಂದಿದೆ ದೊಡ್ಡ ಅನ್ನು ಇವರು ಪ್ರಕಾರ ಇದೆ ಮಾತ್ರ ಕೂಡ ಇಲ್ಲಿ ಎಲ್ಲಾ ವಿವಿಧ ಅದನ್ನು ಹಲವು ರಿಂದ ಕೇವಲ ದ ದಕ್ಷಿಣ ಗೆ ಅವನ ಅತಿ ನೆಯ ಬಹಳ ಕೆಲಸ ಎಲ್ಲ ಪ್ರತಿ ಇತ್ಯಾದಿ ಇವು ಬೇರೆ ಹೀಗೆ ನಡುವೆ ಇದಕ್ಕೆ ಎಸ್ ಇವರ ಮೊದಲು ಶ್ರೀ ಮಾಡುವ ಇದರಲ್ಲಿ ರೀತಿಯ ಮಾಡಿದ ಕಾಲ ಅಲ್ಲಿ ಮಾಡಲು ಅದೇ ಈಗ ಅವು ಗಳು ಎ ಎಂಬುದು ಅವನು ಅಂದರೆ ಅವರಿಗೆ ಇರುವ ವಿಶೇಷ ಮುಂದೆ ಅವುಗಳ ಮುಂತಾದ ಮೂಲ ಬಿ ಮೀ ಒಂದೇ ಇನ್ನೂ ಹೆಚ್ಚಾಗಿ ಮಾಡಿ ಅವರನ್ನು ಇದೇ ಯ ರೀತಿಯಲ್ಲಿ ಜೊತೆ ಅದರಲ್ಲಿ ಮಾಡಿದರು ನಡೆದ ಆಗ ಮತ್ತೆ ಪೂರ್ವ ಆತ ಬಂದ ಯಾವ ಒಟ್ಟು ಇತರೆ ಹಿಂದೆ ಪ್ರಮಾಣದ ಗಳನ್ನು ಕುರಿತು ಯು ಆದ್ದರಿಂದ ಅಲ್ಲದೆ ನಗರದ ಮೇಲಿನ ಏಕೆಂದರೆ ರಷ್ಟು ಎಂಬುದನ್ನು ಬಾರಿ ಎಂದರೆ ಹಿಂದಿನ ಆದರೂ ಆದ ಸಂಬಂಧಿಸಿದ ಮತ್ತೊಂದು ಸಿ ಆತನ ".split(" ")),e.kn.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.kn.tokenizer=function(t){if(!arguments.length||null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var n=t.toString().toLowerCase().replace(/^\s+/,"");return r.cut(n).split("|")},e.Pipeline.registerFunction(e.kn.stemmer,"stemmer-kn"),e.Pipeline.registerFunction(e.kn.stopWordFilter,"stopWordFilter-kn")}});
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){e.multiLanguage=function(){for(var t=Array.prototype.slice.call(arguments),i=t.join("-"),r="",n=[],s=[],p=0;p<t.length;++p)"en"==t[p]?(r+="\\w",n.unshift(e.stopWordFilter),n.push(e.stemmer),s.push(e.stemmer)):(r+=e[t[p]].wordCharacters,e[t[p]].stopWordFilter&&n.unshift(e[t[p]].stopWordFilter),e[t[p]].stemmer&&(n.push(e[t[p]].stemmer),s.push(e[t[p]].stemmer)));var o=e.trimmerSupport.generateTrimmer(r);return e.Pipeline.registerFunction(o,"lunr-multi-trimmer-"+i),n.unshift(o),function(){this.pipeline.reset(),this.pipeline.add.apply(this.pipeline,n),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add.apply(this.searchPipeline,s))}}}});
File diff suppressed because one or more lines are too long
-18
View File
@@ -1,18 +0,0 @@
/*!
* Lunr languages, `Norwegian` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,a<s&&(a=s)}}function i(){var e,r,n;if(w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}});
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sa=function(){this.pipeline.reset(),this.pipeline.add(e.sa.trimmer,e.sa.stopWordFilter,e.sa.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sa.stemmer))},e.sa.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿ꣠-꣱ꣲ-ꣷ꣸-ꣻ꣼-ꣽꣾ-ꣿᆰ0-ᆰ9",e.sa.trimmer=e.trimmerSupport.generateTrimmer(e.sa.wordCharacters),e.Pipeline.registerFunction(e.sa.trimmer,"trimmer-sa"),e.sa.stopWordFilter=e.generateStopWordFilter('तथा अयम्‌ एकम्‌ इत्यस्मिन्‌ तथा तत्‌ वा अयम्‌ इत्यस्य ते आहूत उपरि तेषाम्‌ किन्तु तेषाम्‌ तदा इत्यनेन अधिकः इत्यस्य तत्‌ केचन बहवः द्वि तथा महत्वपूर्णः अयम्‌ अस्य विषये अयं अस्ति तत्‌ प्रथमः विषये इत्युपरि इत्युपरि इतर अधिकतमः अधिकः अपि सामान्यतया ठ इतरेतर नूतनम्‌ द न्यूनम्‌ कश्चित्‌ वा विशालः द सः अस्ति तदनुसारम् तत्र अस्ति केवलम्‌ अपि अत्र सर्वे विविधाः तत्‌ बहवः यतः इदानीम्‌ द दक्षिण इत्यस्मै तस्य उपरि नथ अतीव कार्यम्‌ सर्वे एकैकम्‌ इत्यादि। एते सन्ति उत इत्थम्‌ मध्ये एतदर्थं . स कस्य प्रथमः श्री. करोति अस्मिन् प्रकारः निर्मिता कालः तत्र कर्तुं समान अधुना ते सन्ति स एकः अस्ति सः अर्थात् तेषां कृते . स्थितम् विशेषः अग्रिम तेषाम्‌ समान स्रोतः ख म समान इदानीमपि अधिकतया करोतु ते समान इत्यस्य वीथी सह यस्मिन् कृतवान्‌ धृतः तदा पुनः पूर्वं सः आगतः किम्‌ कुल इतर पुरा मात्रा स विषये उ अतएव अपि नगरस्य उपरि यतः प्रतिशतं कतरः कालः साधनानि भूत तथापि जात सम्बन्धि अन्यत्‌ ग अतः अस्माकं स्वकीयाः अस्माकं इदानीं अन्तः इत्यादयः भवन्तः इत्यादयः एते एताः तस्य अस्य इदम् एते तेषां तेषां तेषां तान् तेषां तेषां तेषां समानः सः एकः च तादृशाः बहवः अन्ये च वदन्ति यत् कियत् कस्मै कस्मै यस्मै यस्मै यस्मै यस्मै न अतिनीचः किन्तु प्रथमं सम्पूर्णतया ततः चिरकालानन्तरं पुस्तकं सम्पूर्णतया अन्तः किन्तु अत्र वा इह इव श्रद्धाय अवशिष्यते परन्तु अन्ये वर्गाः सन्ति ते सन्ति शक्नुवन्ति सर्वे मिलित्वा सर्वे एकत्र"'.split(" ")),e.sa.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.sa.tokenizer=function(t){if(!arguments.length||null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var i=t.toString().toLowerCase().replace(/^\s+/,"");return r.cut(i).split("|")},e.Pipeline.registerFunction(e.sa.stemmer,"stemmer-sa"),e.Pipeline.registerFunction(e.sa.stopWordFilter,"stopWordFilter-sa")}});
@@ -1 +0,0 @@
!function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s<t;s++)i[s]=r.charCodeAt(s);return i},!r&&""!=r||!t&&0!=t||!i)throw"Bad Among initialisation: s:"+r+", substring_i: "+t+", result: "+i;this.s_size=r.length,this.s=this.toCharArray(r),this.substring_i=t,this.result=i,this.method=s},SnowballProgram:function(){var r;return{bra:0,ket:0,limit:0,cursor:0,limit_backward:0,setCurrent:function(t){r=t,this.cursor=0,this.limit=t.length,this.limit_backward=0,this.bra=this.cursor,this.ket=this.limit},getCurrent:function(){var t=r;return r=null,t},in_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e>s||e<i)return this.cursor++,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e<i)return this.cursor--,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor+s)!=i.charCodeAt(s))return!1;return this.cursor+=t,!0},eq_s_b:function(t,i){if(this.cursor-this.limit_backward<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor-t+s)!=i.charCodeAt(s))return!1;return this.cursor-=t,!0},find_among:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=l;m<_.s_size;m++){if(n+l==u){f=-1;break}if(f=r.charCodeAt(n+l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=_.s_size-1-l;m>=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}});
-18
View File
@@ -1,18 +0,0 @@
/*!
* Lunr languages, `Swedish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o<a&&(o=a)}}function t(){var e,r=w.limit_backward;if(w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}});
-1
View File
@@ -1 +0,0 @@
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ta=function(){this.pipeline.reset(),this.pipeline.add(e.ta.trimmer,e.ta.stopWordFilter,e.ta.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ta.stemmer))},e.ta.wordCharacters="஀-உஊ-ஏஐ-ஙச-ட஠-னப-யர-ஹ஺-ிீ-௉ொ-௏ௐ-௙௚-௟௠-௩௪-௯௰-௹௺-௿a-zA-Z-zA-0-9-",e.ta.trimmer=e.trimmerSupport.generateTrimmer(e.ta.wordCharacters),e.Pipeline.registerFunction(e.ta.trimmer,"trimmer-ta"),e.ta.stopWordFilter=e.generateStopWordFilter("அங்கு அங்கே அது அதை அந்த அவர் அவர்கள் அவள் அவன் அவை ஆக ஆகவே ஆகையால் ஆதலால் ஆதலினால் ஆனாலும் ஆனால் இங்கு இங்கே இது இதை இந்த இப்படி இவர் இவர்கள் இவள் இவன் இவை இவ்வளவு உனக்கு உனது உன் உன்னால் எங்கு எங்கே எது எதை எந்த எப்படி எவர் எவர்கள் எவள் எவன் எவை எவ்வளவு எனக்கு எனது எனவே என் என்ன என்னால் ஏது ஏன் தனது தன்னால் தானே தான் நாங்கள் நாம் நான் நீ நீங்கள்".split(" ")),e.ta.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var t=e.wordcut;t.init(),e.ta.tokenizer=function(r){if(!arguments.length||null==r||void 0==r)return[];if(Array.isArray(r))return r.map(function(t){return isLunr2?new e.Token(t.toLowerCase()):t.toLowerCase()});var i=r.toString().toLowerCase().replace(/^\s+/,"");return t.cut(i).split("|")},e.Pipeline.registerFunction(e.ta.stemmer,"stemmer-ta"),e.Pipeline.registerFunction(e.ta.stopWordFilter,"stopWordFilter-ta")}});
-1
View File
@@ -1 +0,0 @@
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.te=function(){this.pipeline.reset(),this.pipeline.add(e.te.trimmer,e.te.stopWordFilter,e.te.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.te.stemmer))},e.te.wordCharacters="ఀ-ఄఅ-ఔక-హా-ౌౕ-ౖౘ-ౚౠ-ౡౢ-ౣ౦-౯౸-౿఼ఽ్ౝ౷౤౥",e.te.trimmer=e.trimmerSupport.generateTrimmer(e.te.wordCharacters),e.Pipeline.registerFunction(e.te.trimmer,"trimmer-te"),e.te.stopWordFilter=e.generateStopWordFilter("అందరూ అందుబాటులో అడగండి అడగడం అడ్డంగా అనుగుణంగా అనుమతించు అనుమతిస్తుంది అయితే ఇప్పటికే ఉన్నారు ఎక్కడైనా ఎప్పుడు ఎవరైనా ఎవరో ఏ ఏదైనా ఏమైనప్పటికి ఒక ఒకరు కనిపిస్తాయి కాదు కూడా గా గురించి చుట్టూ చేయగలిగింది తగిన తర్వాత దాదాపు దూరంగా నిజంగా పై ప్రకారం ప్రక్కన మధ్య మరియు మరొక మళ్ళీ మాత్రమే మెచ్చుకో వద్ద వెంట వేరుగా వ్యతిరేకంగా సంబంధం".split(" ")),e.te.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var t=e.wordcut;t.init(),e.te.tokenizer=function(r){if(!arguments.length||null==r||void 0==r)return[];if(Array.isArray(r))return r.map(function(t){return isLunr2?new e.Token(t.toLowerCase()):t.toLowerCase()});var i=r.toString().toLowerCase().replace(/^\s+/,"");return t.cut(i).split("|")},e.Pipeline.registerFunction(e.te.stemmer,"stemmer-te"),e.Pipeline.registerFunction(e.te.stopWordFilter,"stopWordFilter-te")}});
-1
View File
@@ -1 +0,0 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[฀-๿]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}});
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}});
-1
View File
@@ -1 +0,0 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("@node-rs/jieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 為 以 于 於 上 他 而 后 後 之 来 來 及 了 因 下 可 到 由 这 這 与 與 也 此 但 并 並 个 個 其 已 无 無 小 我 们 們 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 當 从 從 得 打 凡 儿 兒 尔 爾 该 該 各 给 給 跟 和 何 还 還 即 几 幾 既 看 据 據 距 靠 啦 另 么 麽 每 嘛 拿 哪 您 凭 憑 且 却 卻 让 讓 仍 啥 如 若 使 谁 誰 虽 雖 随 隨 同 所 她 哇 嗡 往 些 向 沿 哟 喲 用 咱 则 則 怎 曾 至 致 着 著 诸 諸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}});
-206
View File
@@ -1,206 +0,0 @@
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function () {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
// TinySegmenter 0.1 -- Super compact Japanese tokenizer in Javascript
// (c) 2008 Taku Kudo <taku@chasen.org>
// TinySegmenter is freely distributable under the terms of a new BSD licence.
// For details, see http://chasen.org/~taku/software/TinySegmenter/LICENCE.txt
function TinySegmenter() {
var patterns = {
"[一二三四五六七八九十百千万億兆]":"M",
"[一-龠々〆ヵヶ]":"H",
"[ぁ-ん]":"I",
"[ァ-ヴーア-ン゙ー]":"K",
"[a-zA-Z-zA-]":"A",
"[0-9-]":"N"
}
this.chartype_ = [];
for (var i in patterns) {
var regexp = new RegExp(i);
this.chartype_.push([regexp, patterns[i]]);
}
this.BIAS__ = -332
this.BC1__ = {"HH":6,"II":2461,"KH":406,"OH":-1378};
this.BC2__ = {"AA":-3267,"AI":2744,"AN":-878,"HH":-4070,"HM":-1711,"HN":4012,"HO":3761,"IA":1327,"IH":-1184,"II":-1332,"IK":1721,"IO":5492,"KI":3831,"KK":-8741,"MH":-3132,"MK":3334,"OO":-2920};
this.BC3__ = {"HH":996,"HI":626,"HK":-721,"HN":-1307,"HO":-836,"IH":-301,"KK":2762,"MK":1079,"MM":4034,"OA":-1652,"OH":266};
this.BP1__ = {"BB":295,"OB":304,"OO":-125,"UB":352};
this.BP2__ = {"BO":60,"OO":-1762};
this.BQ1__ = {"BHH":1150,"BHM":1521,"BII":-1158,"BIM":886,"BMH":1208,"BNH":449,"BOH":-91,"BOO":-2597,"OHI":451,"OIH":-296,"OKA":1851,"OKH":-1020,"OKK":904,"OOO":2965};
this.BQ2__ = {"BHH":118,"BHI":-1159,"BHM":466,"BIH":-919,"BKK":-1720,"BKO":864,"OHH":-1139,"OHM":-181,"OIH":153,"UHI":-1146};
this.BQ3__ = {"BHH":-792,"BHI":2664,"BII":-299,"BKI":419,"BMH":937,"BMM":8335,"BNN":998,"BOH":775,"OHH":2174,"OHM":439,"OII":280,"OKH":1798,"OKI":-793,"OKO":-2242,"OMH":-2402,"OOO":11699};
this.BQ4__ = {"BHH":-3895,"BIH":3761,"BII":-4654,"BIK":1348,"BKK":-1806,"BMI":-3385,"BOO":-12396,"OAH":926,"OHH":266,"OHK":-2036,"ONN":-973};
this.BW1__ = {",と":660,",同":727,"B1あ":1404,"B1同":542,"、と":660,"、同":727,"」と":1682,"あっ":1505,"いう":1743,"いっ":-2055,"いる":672,"うし":-4817,"うん":665,"から":3472,"がら":600,"こう":-790,"こと":2083,"こん":-1262,"さら":-4143,"さん":4573,"した":2641,"して":1104,"すで":-3399,"そこ":1977,"それ":-871,"たち":1122,"ため":601,"った":3463,"つい":-802,"てい":805,"てき":1249,"でき":1127,"です":3445,"では":844,"とい":-4915,"とみ":1922,"どこ":3887,"ない":5713,"なっ":3015,"など":7379,"なん":-1113,"にし":2468,"には":1498,"にも":1671,"に対":-912,"の一":-501,"の中":741,"ませ":2448,"まで":1711,"まま":2600,"まる":-2155,"やむ":-1947,"よっ":-2565,"れた":2369,"れで":-913,"をし":1860,"を見":731,"亡く":-1886,"京都":2558,"取り":-2784,"大き":-2604,"大阪":1497,"平方":-2314,"引き":-1336,"日本":-195,"本当":-2423,"毎日":-2113,"目指":-724,"B1あ":1404,"B1同":542,"」と":1682};
this.BW2__ = {"..":-11822,"11":-669,"――":-5730,"−−":-13175,"いう":-1609,"うか":2490,"かし":-1350,"かも":-602,"から":-7194,"かれ":4612,"がい":853,"がら":-3198,"きた":1941,"くな":-1597,"こと":-8392,"この":-4193,"させ":4533,"され":13168,"さん":-3977,"しい":-1819,"しか":-545,"した":5078,"して":972,"しな":939,"その":-3744,"たい":-1253,"たた":-662,"ただ":-3857,"たち":-786,"たと":1224,"たは":-939,"った":4589,"って":1647,"っと":-2094,"てい":6144,"てき":3640,"てく":2551,"ては":-3110,"ても":-3065,"でい":2666,"でき":-1528,"でし":-3828,"です":-4761,"でも":-4203,"とい":1890,"とこ":-1746,"とと":-2279,"との":720,"とみ":5168,"とも":-3941,"ない":-2488,"なが":-1313,"など":-6509,"なの":2614,"なん":3099,"にお":-1615,"にし":2748,"にな":2454,"によ":-7236,"に対":-14943,"に従":-4688,"に関":-11388,"のか":2093,"ので":-7059,"のに":-6041,"のの":-6125,"はい":1073,"はが":-1033,"はず":-2532,"ばれ":1813,"まし":-1316,"まで":-6621,"まれ":5409,"めて":-3153,"もい":2230,"もの":-10713,"らか":-944,"らし":-1611,"らに":-1897,"りし":651,"りま":1620,"れた":4270,"れて":849,"れば":4114,"ろう":6067,"われ":7901,"を通":-11877,"んだ":728,"んな":-4115,"一人":602,"一方":-1375,"一日":970,"一部":-1051,"上が":-4479,"会社":-1116,"出て":2163,"分の":-7758,"同党":970,"同日":-913,"大阪":-2471,"委員":-1250,"少な":-1050,"年度":-8669,"年間":-1626,"府県":-2363,"手権":-1982,"新聞":-4066,"日新":-722,"日本":-7068,"日米":3372,"曜日":-601,"朝鮮":-2355,"本人":-2697,"東京":-1543,"然と":-1384,"社会":-1276,"立て":-990,"第に":-1612,"米国":-4268,"11":-669};
this.BW3__ = {"あた":-2194,"あり":719,"ある":3846,"い.":-1185,"い。":-1185,"いい":5308,"いえ":2079,"いく":3029,"いた":2056,"いっ":1883,"いる":5600,"いわ":1527,"うち":1117,"うと":4798,"えと":1454,"か.":2857,"か。":2857,"かけ":-743,"かっ":-4098,"かに":-669,"から":6520,"かり":-2670,"が,":1816,"が、":1816,"がき":-4855,"がけ":-1127,"がっ":-913,"がら":-4977,"がり":-2064,"きた":1645,"けど":1374,"こと":7397,"この":1542,"ころ":-2757,"さい":-714,"さを":976,"し,":1557,"し、":1557,"しい":-3714,"した":3562,"して":1449,"しな":2608,"しま":1200,"す.":-1310,"す。":-1310,"する":6521,"ず,":3426,"ず、":3426,"ずに":841,"そう":428,"た.":8875,"た。":8875,"たい":-594,"たの":812,"たり":-1183,"たる":-853,"だ.":4098,"だ。":4098,"だっ":1004,"った":-4748,"って":300,"てい":6240,"てお":855,"ても":302,"です":1437,"でに":-1482,"では":2295,"とう":-1387,"とし":2266,"との":541,"とも":-3543,"どう":4664,"ない":1796,"なく":-903,"など":2135,"に,":-1021,"に、":-1021,"にし":1771,"にな":1906,"には":2644,"の,":-724,"の、":-724,"の子":-1000,"は,":1337,"は、":1337,"べき":2181,"まし":1113,"ます":6943,"まっ":-1549,"まで":6154,"まれ":-793,"らし":1479,"られ":6820,"るる":3818,"れ,":854,"れ、":854,"れた":1850,"れて":1375,"れば":-3246,"れる":1091,"われ":-605,"んだ":606,"んで":798,"カ月":990,"会議":860,"入り":1232,"大会":2217,"始め":1681,"市":965,"新聞":-5055,"日,":974,"日、":974,"社会":2024,"カ月":990};
this.TC1__ = {"AAA":1093,"HHH":1029,"HHM":580,"HII":998,"HOH":-390,"HOM":-331,"IHI":1169,"IOH":-142,"IOI":-1015,"IOM":467,"MMH":187,"OOI":-1832};
this.TC2__ = {"HHO":2088,"HII":-1023,"HMM":-1154,"IHI":-1965,"KKH":703,"OII":-2649};
this.TC3__ = {"AAA":-294,"HHH":346,"HHI":-341,"HII":-1088,"HIK":731,"HOH":-1486,"IHH":128,"IHI":-3041,"IHO":-1935,"IIH":-825,"IIM":-1035,"IOI":-542,"KHH":-1216,"KKA":491,"KKH":-1217,"KOK":-1009,"MHH":-2694,"MHM":-457,"MHO":123,"MMH":-471,"NNH":-1689,"NNO":662,"OHO":-3393};
this.TC4__ = {"HHH":-203,"HHI":1344,"HHK":365,"HHM":-122,"HHN":182,"HHO":669,"HIH":804,"HII":679,"HOH":446,"IHH":695,"IHO":-2324,"IIH":321,"III":1497,"IIO":656,"IOO":54,"KAK":4845,"KKA":3386,"KKK":3065,"MHH":-405,"MHI":201,"MMH":-241,"MMM":661,"MOM":841};
this.TQ1__ = {"BHHH":-227,"BHHI":316,"BHIH":-132,"BIHH":60,"BIII":1595,"BNHH":-744,"BOHH":225,"BOOO":-908,"OAKK":482,"OHHH":281,"OHIH":249,"OIHI":200,"OIIH":-68};
this.TQ2__ = {"BIHH":-1401,"BIII":-1033,"BKAK":-543,"BOOO":-5591};
this.TQ3__ = {"BHHH":478,"BHHM":-1073,"BHIH":222,"BHII":-504,"BIIH":-116,"BIII":-105,"BMHI":-863,"BMHM":-464,"BOMH":620,"OHHH":346,"OHHI":1729,"OHII":997,"OHMH":481,"OIHH":623,"OIIH":1344,"OKAK":2792,"OKHH":587,"OKKA":679,"OOHH":110,"OOII":-685};
this.TQ4__ = {"BHHH":-721,"BHHM":-3604,"BHII":-966,"BIIH":-607,"BIII":-2181,"OAAA":-2763,"OAKK":180,"OHHH":-294,"OHHI":2446,"OHHO":480,"OHIH":-1573,"OIHH":1935,"OIHI":-493,"OIIH":626,"OIII":-4007,"OKAK":-8156};
this.TW1__ = {"につい":-4681,"東京都":2026};
this.TW2__ = {"ある程":-2049,"いった":-1256,"ころが":-2434,"しょう":3873,"その後":-4430,"だって":-1049,"ていた":1833,"として":-4657,"ともに":-4517,"もので":1882,"一気に":-792,"初めて":-1512,"同時に":-8097,"大きな":-1255,"対して":-2721,"社会党":-3216};
this.TW3__ = {"いただ":-1734,"してい":1314,"として":-4314,"につい":-5483,"にとっ":-5989,"に当た":-6247,"ので,":-727,"ので、":-727,"のもの":-600,"れから":-3752,"十二月":-2287};
this.TW4__ = {"いう.":8576,"いう。":8576,"からな":-2348,"してい":2958,"たが,":1516,"たが、":1516,"ている":1538,"という":1349,"ました":5543,"ません":1097,"ようと":-4258,"よると":5865};
this.UC1__ = {"A":484,"K":93,"M":645,"O":-505};
this.UC2__ = {"A":819,"H":1059,"I":409,"M":3987,"N":5775,"O":646};
this.UC3__ = {"A":-1370,"I":2311};
this.UC4__ = {"A":-2643,"H":1809,"I":-1032,"K":-3450,"M":3565,"N":3876,"O":6646};
this.UC5__ = {"H":313,"I":-1238,"K":-799,"M":539,"O":-831};
this.UC6__ = {"H":-506,"I":-253,"K":87,"M":247,"O":-387};
this.UP1__ = {"O":-214};
this.UP2__ = {"B":69,"O":935};
this.UP3__ = {"B":189};
this.UQ1__ = {"BH":21,"BI":-12,"BK":-99,"BN":142,"BO":-56,"OH":-95,"OI":477,"OK":410,"OO":-2422};
this.UQ2__ = {"BH":216,"BI":113,"OK":1759};
this.UQ3__ = {"BA":-479,"BH":42,"BI":1913,"BK":-7198,"BM":3160,"BN":6427,"BO":14761,"OI":-827,"ON":-3212};
this.UW1__ = {",":156,"、":156,"「":-463,"あ":-941,"う":-127,"が":-553,"き":121,"こ":505,"で":-201,"と":-547,"ど":-123,"に":-789,"の":-185,"は":-847,"も":-466,"や":-470,"よ":182,"ら":-292,"り":208,"れ":169,"を":-446,"ん":-137,"・":-135,"主":-402,"京":-268,"区":-912,"午":871,"国":-460,"大":561,"委":729,"市":-411,"日":-141,"理":361,"生":-408,"県":-386,"都":-718,"「":-463,"・":-135};
this.UW2__ = {",":-829,"、":-829,"":892,"「":-645,"」":3145,"あ":-538,"い":505,"う":134,"お":-502,"か":1454,"が":-856,"く":-412,"こ":1141,"さ":878,"ざ":540,"し":1529,"す":-675,"せ":300,"そ":-1011,"た":188,"だ":1837,"つ":-949,"て":-291,"で":-268,"と":-981,"ど":1273,"な":1063,"に":-1764,"の":130,"は":-409,"ひ":-1273,"べ":1261,"ま":600,"も":-1263,"や":-402,"よ":1639,"り":-579,"る":-694,"れ":571,"を":-2516,"ん":2095,"ア":-587,"カ":306,"キ":568,"ッ":831,"三":-758,"不":-2150,"世":-302,"中":-968,"主":-861,"事":492,"人":-123,"会":978,"保":362,"入":548,"初":-3025,"副":-1566,"北":-3414,"区":-422,"大":-1769,"天":-865,"太":-483,"子":-1519,"学":760,"実":1023,"小":-2009,"市":-813,"年":-1060,"強":1067,"手":-1519,"揺":-1033,"政":1522,"文":-1355,"新":-1682,"日":-1815,"明":-1462,"最":-630,"朝":-1843,"本":-1650,"東":-931,"果":-665,"次":-2378,"民":-180,"気":-1740,"理":752,"発":529,"目":-1584,"相":-242,"県":-1165,"立":-763,"第":810,"米":509,"自":-1353,"行":838,"西":-744,"見":-3874,"調":1010,"議":1198,"込":3041,"開":1758,"間":-1257,"「":-645,"」":3145,"ッ":831,"ア":-587,"カ":306,"キ":568};
this.UW3__ = {",":4889,"1":-800,"":-1723,"、":4889,"々":-2311,"":5827,"」":2670,"〓":-3573,"あ":-2696,"い":1006,"う":2342,"え":1983,"お":-4864,"か":-1163,"が":3271,"く":1004,"け":388,"げ":401,"こ":-3552,"ご":-3116,"さ":-1058,"し":-395,"す":584,"せ":3685,"そ":-5228,"た":842,"ち":-521,"っ":-1444,"つ":-1081,"て":6167,"で":2318,"と":1691,"ど":-899,"な":-2788,"に":2745,"の":4056,"は":4555,"ひ":-2171,"ふ":-1798,"へ":1199,"ほ":-5516,"ま":-4384,"み":-120,"め":1205,"も":2323,"や":-788,"よ":-202,"ら":727,"り":649,"る":5905,"れ":2773,"わ":-1207,"を":6620,"ん":-518,"ア":551,"グ":1319,"ス":874,"ッ":-1350,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278,"・":-3794,"一":-1619,"下":-1759,"世":-2087,"両":3815,"中":653,"主":-758,"予":-1193,"二":974,"人":2742,"今":792,"他":1889,"以":-1368,"低":811,"何":4265,"作":-361,"保":-2439,"元":4858,"党":3593,"全":1574,"公":-3030,"六":755,"共":-1880,"円":5807,"再":3095,"分":457,"初":2475,"別":1129,"前":2286,"副":4437,"力":365,"動":-949,"務":-1872,"化":1327,"北":-1038,"区":4646,"千":-2309,"午":-783,"協":-1006,"口":483,"右":1233,"各":3588,"合":-241,"同":3906,"和":-837,"員":4513,"国":642,"型":1389,"場":1219,"外":-241,"妻":2016,"学":-1356,"安":-423,"実":-1008,"家":1078,"小":-513,"少":-3102,"州":1155,"市":3197,"平":-1804,"年":2416,"広":-1030,"府":1605,"度":1452,"建":-2352,"当":-3885,"得":1905,"思":-1291,"性":1822,"戸":-488,"指":-3973,"政":-2013,"教":-1479,"数":3222,"文":-1489,"新":1764,"日":2099,"旧":5792,"昨":-661,"時":-1248,"曜":-951,"最":-937,"月":4125,"期":360,"李":3094,"村":364,"東":-805,"核":5156,"森":2438,"業":484,"氏":2613,"民":-1694,"決":-1073,"法":1868,"海":-495,"無":979,"物":461,"特":-3850,"生":-273,"用":914,"町":1215,"的":7313,"直":-1835,"省":792,"県":6293,"知":-1528,"私":4231,"税":401,"立":-960,"第":1201,"米":7767,"系":3066,"約":3663,"級":1384,"統":-4229,"総":1163,"線":1255,"者":6457,"能":725,"自":-2869,"英":785,"見":1044,"調":-562,"財":-733,"費":1777,"車":1835,"軍":1375,"込":-1504,"通":-1136,"選":-681,"郎":1026,"郡":4404,"部":1200,"金":2163,"長":421,"開":-1432,"間":1302,"関":-1282,"雨":2009,"電":-1045,"非":2066,"駅":1620,"":-800,"」":2670,"・":-3794,"ッ":-1350,"ア":551,"グ":1319,"ス":874,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278};
this.UW4__ = {",":3930,".":3508,"―":-4841,"、":3930,"。":3508,"":4999,"「":1895,"」":3798,"〓":-5156,"あ":4752,"い":-3435,"う":-640,"え":-2514,"お":2405,"か":530,"が":6006,"き":-4482,"ぎ":-3821,"く":-3788,"け":-4376,"げ":-4734,"こ":2255,"ご":1979,"さ":2864,"し":-843,"じ":-2506,"す":-731,"ず":1251,"せ":181,"そ":4091,"た":5034,"だ":5408,"ち":-3654,"っ":-5882,"つ":-1659,"て":3994,"で":7410,"と":4547,"な":5433,"に":6499,"ぬ":1853,"ね":1413,"の":7396,"は":8578,"ば":1940,"ひ":4249,"び":-4134,"ふ":1345,"へ":6665,"べ":-744,"ほ":1464,"ま":1051,"み":-2082,"む":-882,"め":-5046,"も":4169,"ゃ":-2666,"や":2795,"ょ":-1544,"よ":3351,"ら":-2922,"り":-9726,"る":-14896,"れ":-2613,"ろ":-4570,"わ":-1783,"を":13150,"ん":-2352,"カ":2145,"コ":1789,"セ":1287,"ッ":-724,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637,"・":-4371,"ー":-11870,"一":-2069,"中":2210,"予":782,"事":-190,"井":-1768,"人":1036,"以":544,"会":950,"体":-1286,"作":530,"側":4292,"先":601,"党":-2006,"共":-1212,"内":584,"円":788,"初":1347,"前":1623,"副":3879,"力":-302,"動":-740,"務":-2715,"化":776,"区":4517,"協":1013,"参":1555,"合":-1834,"和":-681,"員":-910,"器":-851,"回":1500,"国":-619,"園":-1200,"地":866,"場":-1410,"塁":-2094,"士":-1413,"多":1067,"大":571,"子":-4802,"学":-1397,"定":-1057,"寺":-809,"小":1910,"屋":-1328,"山":-1500,"島":-2056,"川":-2667,"市":2771,"年":374,"庁":-4556,"後":456,"性":553,"感":916,"所":-1566,"支":856,"改":787,"政":2182,"教":704,"文":522,"方":-856,"日":1798,"時":1829,"最":845,"月":-9066,"木":-485,"来":-442,"校":-360,"業":-1043,"氏":5388,"民":-2716,"気":-910,"沢":-939,"済":-543,"物":-735,"率":672,"球":-1267,"生":-1286,"産":-1101,"田":-2900,"町":1826,"的":2586,"目":922,"省":-3485,"県":2997,"空":-867,"立":-2112,"第":788,"米":2937,"系":786,"約":2171,"経":1146,"統":-1169,"総":940,"線":-994,"署":749,"者":2145,"能":-730,"般":-852,"行":-792,"規":792,"警":-1184,"議":-244,"谷":-1000,"賞":730,"車":-1481,"軍":1158,"輪":-1433,"込":-3370,"近":929,"道":-1291,"選":2596,"郎":-4866,"都":1192,"野":-1100,"銀":-2213,"長":357,"間":-2344,"院":-2297,"際":-2604,"電":-878,"領":-1659,"題":-792,"館":-1984,"首":1749,"高":2120,"「":1895,"」":3798,"・":-4371,"ッ":-724,"ー":-11870,"カ":2145,"コ":1789,"セ":1287,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637};
this.UW5__ = {",":465,".":-299,"1":-514,"E2":-32768,"]":-2762,"、":465,"。":-299,"「":363,"あ":1655,"い":331,"う":-503,"え":1199,"お":527,"か":647,"が":-421,"き":1624,"ぎ":1971,"く":312,"げ":-983,"さ":-1537,"し":-1371,"す":-852,"だ":-1186,"ち":1093,"っ":52,"つ":921,"て":-18,"で":-850,"と":-127,"ど":1682,"な":-787,"に":-1224,"の":-635,"は":-578,"べ":1001,"み":502,"め":865,"ゃ":3350,"ょ":854,"り":-208,"る":429,"れ":504,"わ":419,"を":-1264,"ん":327,"イ":241,"ル":451,"ン":-343,"中":-871,"京":722,"会":-1153,"党":-654,"務":3519,"区":-901,"告":848,"員":2104,"大":-1296,"学":-548,"定":1785,"嵐":-1304,"市":-2991,"席":921,"年":1763,"思":872,"所":-814,"挙":1618,"新":-1682,"日":218,"月":-4353,"査":932,"格":1356,"機":-1508,"氏":-1347,"田":240,"町":-3912,"的":-3149,"相":1319,"省":-1052,"県":-4003,"研":-997,"社":-278,"空":-813,"統":1955,"者":-2233,"表":663,"語":-1073,"議":1219,"選":-1018,"郎":-368,"長":786,"間":1191,"題":2368,"館":-689,"":-514,"E2":-32768,"「":363,"イ":241,"ル":451,"ン":-343};
this.UW6__ = {",":227,".":808,"1":-270,"E1":306,"、":227,"。":808,"あ":-307,"う":189,"か":241,"が":-73,"く":-121,"こ":-200,"じ":1782,"す":383,"た":-428,"っ":573,"て":-1014,"で":101,"と":-105,"な":-253,"に":-149,"の":-417,"は":-236,"も":-206,"り":187,"る":-135,"を":195,"ル":-673,"ン":-496,"一":-277,"中":201,"件":-800,"会":624,"前":302,"区":1792,"員":-1212,"委":798,"学":-960,"市":887,"広":-695,"後":535,"業":-697,"相":753,"社":-507,"福":974,"空":-822,"者":1811,"連":463,"郎":1082,"":-270,"E1":306,"ル":-673,"ン":-496};
return this;
}
TinySegmenter.prototype.ctype_ = function(str) {
for (var i in this.chartype_) {
if (str.match(this.chartype_[i][0])) {
return this.chartype_[i][1];
}
}
return "O";
}
TinySegmenter.prototype.ts_ = function(v) {
if (v) { return v; }
return 0;
}
TinySegmenter.prototype.segment = function(input) {
if (input == null || input == undefined || input == "") {
return [];
}
var result = [];
var seg = ["B3","B2","B1"];
var ctype = ["O","O","O"];
var o = input.split("");
for (i = 0; i < o.length; ++i) {
seg.push(o[i]);
ctype.push(this.ctype_(o[i]))
}
seg.push("E1");
seg.push("E2");
seg.push("E3");
ctype.push("O");
ctype.push("O");
ctype.push("O");
var word = seg[3];
var p1 = "U";
var p2 = "U";
var p3 = "U";
for (var i = 4; i < seg.length - 3; ++i) {
var score = this.BIAS__;
var w1 = seg[i-3];
var w2 = seg[i-2];
var w3 = seg[i-1];
var w4 = seg[i];
var w5 = seg[i+1];
var w6 = seg[i+2];
var c1 = ctype[i-3];
var c2 = ctype[i-2];
var c3 = ctype[i-1];
var c4 = ctype[i];
var c5 = ctype[i+1];
var c6 = ctype[i+2];
score += this.ts_(this.UP1__[p1]);
score += this.ts_(this.UP2__[p2]);
score += this.ts_(this.UP3__[p3]);
score += this.ts_(this.BP1__[p1 + p2]);
score += this.ts_(this.BP2__[p2 + p3]);
score += this.ts_(this.UW1__[w1]);
score += this.ts_(this.UW2__[w2]);
score += this.ts_(this.UW3__[w3]);
score += this.ts_(this.UW4__[w4]);
score += this.ts_(this.UW5__[w5]);
score += this.ts_(this.UW6__[w6]);
score += this.ts_(this.BW1__[w2 + w3]);
score += this.ts_(this.BW2__[w3 + w4]);
score += this.ts_(this.BW3__[w4 + w5]);
score += this.ts_(this.TW1__[w1 + w2 + w3]);
score += this.ts_(this.TW2__[w2 + w3 + w4]);
score += this.ts_(this.TW3__[w3 + w4 + w5]);
score += this.ts_(this.TW4__[w4 + w5 + w6]);
score += this.ts_(this.UC1__[c1]);
score += this.ts_(this.UC2__[c2]);
score += this.ts_(this.UC3__[c3]);
score += this.ts_(this.UC4__[c4]);
score += this.ts_(this.UC5__[c5]);
score += this.ts_(this.UC6__[c6]);
score += this.ts_(this.BC1__[c2 + c3]);
score += this.ts_(this.BC2__[c3 + c4]);
score += this.ts_(this.BC3__[c4 + c5]);
score += this.ts_(this.TC1__[c1 + c2 + c3]);
score += this.ts_(this.TC2__[c2 + c3 + c4]);
score += this.ts_(this.TC3__[c3 + c4 + c5]);
score += this.ts_(this.TC4__[c4 + c5 + c6]);
// score += this.ts_(this.TC5__[c4 + c5 + c6]);
score += this.ts_(this.UQ1__[p1 + c1]);
score += this.ts_(this.UQ2__[p2 + c2]);
score += this.ts_(this.UQ3__[p3 + c3]);
score += this.ts_(this.BQ1__[p2 + c2 + c3]);
score += this.ts_(this.BQ2__[p2 + c3 + c4]);
score += this.ts_(this.BQ3__[p3 + c2 + c3]);
score += this.ts_(this.BQ4__[p3 + c3 + c4]);
score += this.ts_(this.TQ1__[p2 + c1 + c2 + c3]);
score += this.ts_(this.TQ2__[p2 + c2 + c3 + c4]);
score += this.ts_(this.TQ3__[p3 + c1 + c2 + c3]);
score += this.ts_(this.TQ4__[p3 + c2 + c3 + c4]);
var p = "O";
if (score > 0) {
result.push(word);
word = "";
p = "B";
}
p1 = p2;
p2 = p3;
p3 = p;
word += seg[i];
}
result.push(word);
return result;
}
lunr.TinySegmenter = TinySegmenter;
};
}));
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"version":3,"sources":["src/templates/assets/stylesheets/palette/_scheme.scss","../../../../src/templates/assets/stylesheets/palette.scss","src/templates/assets/stylesheets/palette/_accent.scss","src/templates/assets/stylesheets/palette/_primary.scss","src/templates/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"AA2BA,cAGE,6BAME,sDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CACA,mDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CAGA,mDAAA,CACA,gDAAA,CACA,yDAAA,CACA,4DAAA,CAGA,0BAAA,CACA,mCAAA,CAGA,iCAAA,CACA,kCAAA,CACA,mCAAA,CACA,mCAAA,CACA,kCAAA,CACA,iCAAA,CACA,+CAAA,CACA,6DAAA,CACA,gEAAA,CACA,4DAAA,CACA,4DAAA,CACA,6DAAA,CAGA,6CAAA,CAGA,+CAAA,CAGA,uDAAA,CACA,6DAAA,CACA,2DAAA,CAGA,iCAAA,CAGA,yDAAA,CACA,iEAAA,CAGA,mDAAA,CACA,mDAAA,CAGA,qDAAA,CACA,uDAAA,CAGA,8DAAA,CAKA,8DAAA,CAKA,0DAAA,CAzEA,iBCiBF,CD6DE,kHAEE,YC3DJ,CDkFE,yDACE,4BChFJ,CD+EE,2DACE,4BC7EJ,CD4EE,gEACE,4BC1EJ,CDyEE,2DACE,4BCvEJ,CDsEE,yDACE,4BCpEJ,CDmEE,0DACE,4BCjEJ,CDgEE,gEACE,4BC9DJ,CD6DE,0DACE,4BC3DJ,CD0DE,2OACE,4BC/CJ,CDsDA,+FAGE,iCCpDF,CACF,CCjDE,2BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD6CN,CCvDE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDoDN,CC9DE,8BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD2DN,CCrEE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDkEN,CC5EE,8BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDyEN,CCnFE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDgFN,CC1FE,kCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDuFN,CCjGE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD8FN,CCxGE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDqGN,CC/GE,6BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD4GN,CCtHE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDmHN,CC7HE,4BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCD6HN,CCpIE,8BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDoIN,CC3IE,6BACE,yBAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCD2IN,CClJE,8BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDkJN,CCzJE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDsJN,CE3JE,4BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFwJN,CEnKE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFgKN,CE3KE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFwKN,CEnLE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFgLN,CE3LE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFwLN,CEnME,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFgMN,CE3ME,mCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFwMN,CEnNE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFgNN,CE3NE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFwNN,CEnOE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFgON,CE3OE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFwON,CEnPE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFmPN,CE3PE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCF2PN,CEnQE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFmQN,CE3QE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCF2QN,CEnRE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFgRN,CE3RE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFwRN,CEnSE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCAAA,CAKA,4BF4RN,CE5SE,kCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCAAA,CAKA,4BFqSN,CEtRE,sEACE,4BFyRJ,CE1RE,+DACE,4BF6RJ,CE9RE,iEACE,4BFiSJ,CElSE,gEACE,4BFqSJ,CEtSE,iEACE,4BFySJ,CEhSA,8BACE,mDAAA,CACA,4DAAA,CACA,0DAAA,CACA,oDAAA,CACA,2DAAA,CAGA,4BFiSF,CE9RE,yCACE,+BFgSJ,CE7RI,kDAEE,0CAAA,CACA,sCAAA,CAFA,mCFiSN,CG7MI,mCD1EA,+CACE,8CF0RJ,CEvRI,qDACE,8CFyRN,CEpRE,iEACE,mCFsRJ,CACF,CGxNI,sCDvDA,uCACE,oCFkRJ,CACF,CEzQA,8BACE,kDAAA,CACA,4DAAA,CACA,wDAAA,CACA,oDAAA,CACA,6DAAA,CAGA,4BF0QF,CEvQE,yCACE,+BFyQJ,CEtQI,kDAEE,0CAAA,CACA,sCAAA,CAFA,mCF0QN,CEnQE,yCACE,6CFqQJ,CG9NI,0CDhCA,8CACE,gDFiQJ,CACF,CGnOI,0CDvBA,iFACE,6CF6PJ,CACF,CG3PI,sCDKA,uCACE,6CFyPJ,CACF","file":"palette.css"}
+43
View File
@@ -0,0 +1,43 @@
{
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
"ignoreUnknown": false,
"includes": ["**/static/**", "vite.config.mts"]
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"lineWidth": 88
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"style": {
"useNamingConvention": "error"
},
"performance": {
"noNamespaceImport": "error"
},
"suspicious": {
"noConsole": {
"level": "error",
"options": { "allow": ["error", "warn"] }
}
},
"correctness": {
"noUnusedVariables": "error",
"noUndeclaredVariables": "error",
"noUndeclaredDependencies": "error"
}
}
},
"javascript": {
"globals": ["Alpine", "$", "jQuery", "gettext", "interpolate"]
}
}
+14
View File
@@ -0,0 +1,14 @@
#
# Copyright 2023 © AE UTBM
# ae@utbm.fr / ae.info@utbm.fr
#
# This file is part of the website of the UTBM Student Association (AE UTBM),
# https://ae.utbm.fr.
#
# You can find the source code of the website at https://github.com/ae-utbm/sith
#
# LICENSED UNDER THE GNU GENERAL PUBLIC LICENSE VERSION 3 (GPLv3)
# SEE : https://raw.githubusercontent.com/ae-utbm/sith/master/LICENSE
# OR WITHIN THE LOCAL FILE "LICENSE"
#
#
+42
View File
@@ -0,0 +1,42 @@
#
# Copyright 2023 © AE UTBM
# ae@utbm.fr / ae.info@utbm.fr
#
# This file is part of the website of the UTBM Student Association (AE UTBM),
# https://ae.utbm.fr.
#
# You can find the source code of the website at https://github.com/ae-utbm/sith
#
# LICENSED UNDER THE GNU GENERAL PUBLIC LICENSE VERSION 3 (GPLv3)
# SEE : https://raw.githubusercontent.com/ae-utbm/sith/master/LICENSE
# OR WITHIN THE LOCAL FILE "LICENSE"
#
#
from django.contrib import admin
from club.models import Club, Membership
@admin.register(Club)
class ClubAdmin(admin.ModelAdmin):
list_display = ("name", "slug_name", "parent", "is_active")
search_fields = ("name", "slug_name")
autocomplete_fields = (
"parent",
"board_group",
"members_group",
"home",
"page",
)
@admin.register(Membership)
class MembershipAdmin(admin.ModelAdmin):
list_display = ("user", "club", "role", "start_date", "end_date")
search_fields = (
"user__username",
"user__first_name",
"user__last_name",
"club__name",
)
autocomplete_fields = ("user",)
+65
View File
@@ -0,0 +1,65 @@
from django.db.models import Prefetch
from ninja import Query
from ninja.security import SessionAuth
from ninja_extra import ControllerBase, api_controller, paginate, route
from ninja_extra.pagination import PageNumberPaginationExtra
from ninja_extra.schemas import PaginatedResponseSchema
from api.auth import ApiKeyAuth
from api.permissions import CanAccessLookup, CanView, HasPerm
from club.models import Club, Membership
from club.schemas import (
ClubSchema,
ClubSearchFilterSchema,
SimpleClubSchema,
UserMembershipSchema,
)
from core.models import User
@api_controller("/club")
class ClubController(ControllerBase):
@route.get(
"/search",
response=PaginatedResponseSchema[SimpleClubSchema],
auth=[ApiKeyAuth(), SessionAuth()],
permissions=[CanAccessLookup],
url_name="search_club",
)
@paginate(PageNumberPaginationExtra, page_size=50)
def search_club(self, filters: Query[ClubSearchFilterSchema]):
return filters.filter(Club.objects.all())
@route.get(
"/{int:club_id}",
response=ClubSchema,
auth=[ApiKeyAuth(), SessionAuth()],
permissions=[HasPerm("club.view_club")],
url_name="fetch_club",
)
def fetch_club(self, club_id: int):
prefetch = Prefetch(
"members", queryset=Membership.objects.ongoing().select_related("user")
)
return self.get_object_or_exception(
Club.objects.prefetch_related(prefetch), id=club_id
)
@api_controller("/user/{int:user_id}/club")
class UserClubController(ControllerBase):
@route.get(
"",
response=list[UserMembershipSchema],
auth=[ApiKeyAuth(), SessionAuth()],
permissions=[CanView],
url_name="fetch_user_clubs",
)
def fetch_user_clubs(self, user_id: int):
"""Get all the active memberships of the given user."""
user = self.get_object_or_exception(User, id=user_id)
return (
Membership.objects.ongoing()
.filter(user=user)
.select_related("club", "user")
)
+317
View File
@@ -0,0 +1,317 @@
#
# Copyright 2016,2017
# - Skia <skia@libskia.so>
# - Sli <antoine@bartuccio.fr>
#
# Ce fichier fait partie du site de l'Association des Étudiants de l'UTBM,
# http://ae.utbm.fr.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License a published by the Free Software
# Foundation; either version 3 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Sofware Foundation, Inc., 59 Temple
# Place - Suite 330, Boston, MA 02111-1307, USA.
#
#
from django import forms
from django.conf import settings
from django.db.models import Exists, OuterRef, Q
from django.db.models.functions import Lower
from django.utils.functional import cached_property
from django.utils.translation import gettext_lazy as _
from club.models import Club, Mailing, MailingSubscription, Membership
from core.models import User
from core.views.forms import SelectDateTime
from core.views.widgets.ajax_select import (
AutoCompleteSelectMultipleUser,
AutoCompleteSelectUser,
)
from counter.models import Counter, Selling
from counter.schemas import SaleFilterSchema
class ClubEditForm(forms.ModelForm):
error_css_class = "error"
required_css_class = "required"
class Meta:
model = Club
fields = ["address", "logo", "short_description"]
widgets = {"short_description": forms.Textarea()}
class ClubAdminEditForm(ClubEditForm):
admin_fields = ["name", "parent", "is_active"]
class Meta(ClubEditForm.Meta):
fields = ["name", "parent", "is_active", *ClubEditForm.Meta.fields]
class MailingForm(forms.Form):
"""Form handling mailing lists right."""
ACTION_NEW_MAILING = 1
ACTION_NEW_SUBSCRIPTION = 2
ACTION_REMOVE_SUBSCRIPTION = 3
subscription_users = forms.ModelMultipleChoiceField(
label=_("Users to add"),
help_text=_("Search users to add (one or more)."),
required=False,
widget=AutoCompleteSelectMultipleUser,
queryset=User.objects.all(),
)
def __init__(self, club_id, user_id, mailings, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["action"] = forms.TypedChoiceField(
choices=(
(self.ACTION_NEW_MAILING, _("New Mailing")),
(self.ACTION_NEW_SUBSCRIPTION, _("Subscribe")),
(self.ACTION_REMOVE_SUBSCRIPTION, _("Remove")),
),
coerce=int,
label=_("Action"),
initial=1,
required=True,
widget=forms.HiddenInput(),
)
# Generate bulk removal forms, they are never required
for mailing in mailings:
self.fields["removal_" + str(mailing.id)] = forms.ModelMultipleChoiceField(
mailing.subscriptions.all(),
label=_("Remove"),
required=False,
widget=forms.CheckboxSelectMultiple,
)
# Include fields for handling mailing creation
mailing_fields = ("email",)
self.fields.update(forms.fields_for_model(Mailing, fields=mailing_fields))
for field in mailing_fields:
self.fields["mailing_" + field] = self.fields.pop(field)
self.fields["mailing_" + field].required = False
# Include fields for handling subscription creation
subscription_fields = ("mailing", "email")
self.fields.update(
forms.fields_for_model(MailingSubscription, fields=subscription_fields)
)
for field in subscription_fields:
self.fields["subscription_" + field] = self.fields.pop(field)
self.fields["subscription_" + field].required = False
self.fields["subscription_mailing"].queryset = Mailing.objects.filter(
club__id=club_id, is_moderated=True
)
def check_required(self, cleaned_data, field):
"""If the given field doesn't exist or has no value, add a required error on it."""
if not cleaned_data.get(field, None):
self.add_error(field, _("This field is required"))
def clean_subscription_users(self):
"""Convert given users into real users and check their validity."""
cleaned_data = super().clean()
users = []
for user in cleaned_data["subscription_users"]:
if not user.email:
raise forms.ValidationError(
_("One of the selected users doesn't have an email address"),
code="invalid",
)
users.append(user)
return users
def clean(self):
cleaned_data = super().clean()
if "action" not in cleaned_data:
# If there is no action provided, we can stop here
raise forms.ValidationError(_("An action is required"), code="invalid")
if cleaned_data["action"] == self.ACTION_NEW_MAILING:
self.check_required(cleaned_data, "mailing_email")
if cleaned_data["action"] == self.ACTION_NEW_SUBSCRIPTION:
self.check_required(cleaned_data, "subscription_mailing")
if not cleaned_data.get(
"subscription_users", None
) and not cleaned_data.get("subscription_email", None):
raise forms.ValidationError(
_("You must specify at least an user or an email address"),
code="invalid",
)
return cleaned_data
class SellingsForm(forms.Form):
begin_date = forms.DateTimeField(
label=_("Begin date"), widget=SelectDateTime, required=False
)
end_date = forms.DateTimeField(
label=_("End date"), widget=SelectDateTime, required=False
)
def __init__(self, club, *args, **kwargs):
super().__init__(*args, **kwargs)
# postgres struggles really hard with a single query having three WHERE conditions,
# but deals perfectly fine with UNION of multiple queryset with their own WHERE clause,
# so we do this to get the ids, which we use to build another queryset that can be used by django.
club_sales_subquery = Selling.objects.filter(counter=OuterRef("pk"), club=club)
ids = (
Counter.objects.filter(Q(club=club) | Q(products__club=club))
.union(Counter.objects.filter(Exists(club_sales_subquery)))
.values_list("id", flat=True)
)
counters_qs = Counter.objects.filter(id__in=ids).order_by(Lower("name"))
self.fields["counters"] = forms.ModelMultipleChoiceField(
counters_qs, label=_("Counter"), required=False
)
self.fields["products"] = forms.ModelMultipleChoiceField(
club.products.order_by("name").filter(archived=False).all(),
label=_("Products"),
required=False,
)
self.fields["archived_products"] = forms.ModelMultipleChoiceField(
club.products.order_by("name").filter(archived=True).all(),
label=_("Archived products"),
required=False,
)
def to_filter_schema(self) -> SaleFilterSchema:
products = (
*self.cleaned_data["products"],
*self.cleaned_data["archived_products"],
)
return SaleFilterSchema(
after=self.cleaned_data["begin_date"],
before=self.cleaned_data["end_date"],
counters={c.id for c in self.cleaned_data["counters"]} or None,
products={p.id for p in products} or None,
)
class ClubOldMemberForm(forms.Form):
members_old = forms.ModelMultipleChoiceField(
Membership.objects.none(),
label=_("Mark as old"),
widget=forms.CheckboxSelectMultiple,
required=False,
)
def __init__(self, *args, user: User, club: Club, **kwargs):
super().__init__(*args, **kwargs)
self.fields["members_old"].queryset = (
Membership.objects.ongoing().filter(club=club).editable_by(user)
)
class ClubMemberForm(forms.ModelForm):
"""Form to add a member to the club, as a board member."""
error_css_class = "error"
required_css_class = "required"
class Meta:
model = Membership
fields = ["role", "description"]
def __init__(self, *args, club: Club, request_user: User, **kwargs):
self.club = club
self.request_user = request_user
self.request_user_membership = self.club.get_membership_for(self.request_user)
super().__init__(*args, **kwargs)
self.fields["role"].required = True
self.fields["role"].choices = [
(value, name)
for value, name in settings.SITH_CLUB_ROLES.items()
if value <= self.max_available_role
]
self.instance.club = club
@property
def max_available_role(self):
"""The greatest role that will be obtainable with this form."""
# this is unreachable, because it will be overridden by subclasses
return -1 # pragma: no cover
class ClubAddMemberForm(ClubMemberForm):
"""Form to add a member to the club, as a board member."""
class Meta(ClubMemberForm.Meta):
fields = ["user", *ClubMemberForm.Meta.fields]
widgets = {"user": AutoCompleteSelectUser}
@cached_property
def max_available_role(self):
"""The greatest role that will be obtainable with this form.
Admins and the club president can attribute any role.
Board members can attribute roles lower than their own.
Other users cannot attribute roles with this form
"""
if self.request_user.has_perm("club.add_membership"):
return settings.SITH_CLUB_ROLES_ID["President"]
membership = self.request_user_membership
if membership is None or membership.role <= settings.SITH_MAXIMUM_FREE_ROLE:
return -1
if membership.role == settings.SITH_CLUB_ROLES_ID["President"]:
return membership.role
return membership.role - 1
def clean_user(self):
"""Check that the user is not trying to add a user already in the club.
Also check that the user is valid and has a valid subscription.
"""
user = self.cleaned_data["user"]
if not user.is_subscribed:
raise forms.ValidationError(
_("User must be subscriber to take part to a club"), code="invalid"
)
if self.club.get_membership_for(user):
raise forms.ValidationError(
_("You can not add the same user twice"), code="invalid"
)
return user
class JoinClubForm(ClubMemberForm):
"""Form to join a club."""
def __init__(self, *args, club: Club, request_user: User, **kwargs):
super().__init__(*args, club=club, request_user=request_user, **kwargs)
# this form doesn't manage the user who will join the club,
# so we must set this here to avoid errors
self.instance.user = self.request_user
@cached_property
def max_available_role(self):
return settings.SITH_MAXIMUM_FREE_ROLE
def clean(self):
"""Check that the user is subscribed and isn't already in the club."""
if not self.request_user.is_subscribed:
raise forms.ValidationError(
_("You must be subscribed to join a club"), code="invalid"
)
if self.club.get_membership_for(self.request_user):
raise forms.ValidationError(
_("You are already a member of this club"), code="invalid"
)
return super().clean()
+100
View File
@@ -0,0 +1,100 @@
from __future__ import unicode_literals
import django.core.validators
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = []
operations = [
migrations.CreateModel(
name="Club",
fields=[
(
"id",
models.AutoField(
primary_key=True,
serialize=False,
verbose_name="ID",
auto_created=True,
),
),
("name", models.CharField(max_length=64, verbose_name="name")),
(
"unix_name",
models.CharField(
unique=True,
max_length=30,
error_messages={
"unique": "A club with that unix name already exists."
},
verbose_name="unix name",
validators=[
django.core.validators.RegexValidator(
"^[a-z0-9][a-z0-9._-]*[a-z0-9]$",
"Enter a valid unix name. This value may contain only letters, numbers ./-/_ characters.",
)
],
),
),
("address", models.CharField(max_length=254, verbose_name="address")),
],
),
migrations.CreateModel(
name="Membership",
fields=[
(
"id",
models.AutoField(
primary_key=True,
serialize=False,
verbose_name="ID",
auto_created=True,
),
),
(
"start_date",
models.DateField(verbose_name="start date", auto_now=True),
),
(
"end_date",
models.DateField(null=True, verbose_name="end date", blank=True),
),
(
"role",
models.IntegerField(
choices=[
(0, "Curious"),
(1, "Active member"),
(2, "Board member"),
(3, "IT supervisor"),
(4, "Secretary"),
(5, "Communication supervisor"),
(7, "Treasurer"),
(9, "Vice-President"),
(10, "President"),
],
default=0,
verbose_name="role",
),
),
(
"description",
models.CharField(
max_length=128, blank=True, verbose_name="description"
),
),
(
"club",
models.ForeignKey(
verbose_name="club",
to="club.Club",
related_name="members",
on_delete=django.db.models.deletion.CASCADE,
),
),
],
),
]
@@ -0,0 +1,73 @@
from __future__ import unicode_literals
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
("club", "0001_initial"),
("core", "0001_initial"),
]
operations = [
migrations.AddField(
model_name="membership",
name="user",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
verbose_name="user",
to=settings.AUTH_USER_MODEL,
related_name="membership",
),
),
migrations.AddField(
model_name="club",
name="edit_groups",
field=models.ManyToManyField(
to="core.Group", blank=True, related_name="editable_club"
),
),
migrations.AddField(
model_name="club",
name="home",
field=models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE,
blank=True,
null=True,
related_name="home_of_club",
verbose_name="home",
to="core.SithFile",
),
),
migrations.AddField(
model_name="club",
name="owner_group",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
default=1,
to="core.Group",
related_name="owned_club",
),
),
migrations.AddField(
model_name="club",
name="parent",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
null=True,
to="club.Club",
related_name="children",
blank=True,
),
),
migrations.AddField(
model_name="club",
name="view_groups",
field=models.ManyToManyField(
to="core.Group", blank=True, related_name="viewable_club"
),
),
]
@@ -0,0 +1,15 @@
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [("club", "0002_auto_20160824_2152")]
operations = [
migrations.AlterField(
model_name="membership",
name="start_date",
field=models.DateField(verbose_name="start date"),
)
]
@@ -0,0 +1,22 @@
from __future__ import unicode_literals
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [("club", "0003_auto_20160902_2042")]
operations = [
migrations.AlterField(
model_name="membership",
name="user",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
verbose_name="user",
related_name="memberships",
to=settings.AUTH_USER_MODEL,
),
)
]
@@ -0,0 +1,23 @@
from __future__ import unicode_literals
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [("club", "0004_auto_20160915_1057")]
operations = [
migrations.AlterField(
model_name="club",
name="home",
field=models.OneToOneField(
related_name="home_of_club",
blank=True,
on_delete=django.db.models.deletion.SET_NULL,
verbose_name="home",
null=True,
to="core.SithFile",
),
)
]
@@ -0,0 +1,18 @@
from __future__ import unicode_literals
import django.utils.timezone
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [("club", "0005_auto_20161120_1149")]
operations = [
migrations.AlterField(
model_name="membership",
name="start_date",
field=models.DateField(
verbose_name="start date", default=django.utils.timezone.now
),
)
]
@@ -0,0 +1,13 @@
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [("club", "0006_auto_20161229_0040")]
operations = [
migrations.AlterModelOptions(
name="club", options={"ordering": ["name", "unix_name"]}
)
]

Some files were not shown because too many files have changed in this diff Show More