concrexit issueshttps://gitlab.science.ru.nl/thalia/concrexit/-/issues2017-09-23T13:40:29+02:00https://gitlab.science.ru.nl/thalia/concrexit/-/issues/503Members with no membership are 'Former member' on profile2017-09-23T13:40:29+02:00Joost Rijneveldjoost@joostrijneveld.nlMembers with no membership are 'Former member' on profileCurrently users that do not have a membership at all are marked as `Former member` on their profile. Perhaps it's more accurate to describe those as `Unknown membership history`, given that we are now able to distinguish actual 'former m...Currently users that do not have a membership at all are marked as `Former member` on their profile. Perhaps it's more accurate to describe those as `Unknown membership history`, given that we are now able to distinguish actual 'former members' from e.g. 'former supporters' based on the existence of expired Membership objects.1.11Bram in 't ZandtBram in 't Zandthttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/545Change the way we do board permissions2018-01-16T22:20:57+01:00Sébastiaan VersteegChange the way we do board permissionsRelated to #479:
>twiggers: Somewhat related: I'd rather attach the board to a regular Django group than edit their (committee)group's permissions each year: it's much more error-prone to re-add those permissions than it is to add and r...Related to #479:
>twiggers: Somewhat related: I'd rather attach the board to a regular Django group than edit their (committee)group's permissions each year: it's much more error-prone to re-add those permissions than it is to add and remove some members from a Django Group.
> sversteeg: We could create a connection between committees and groups? I don't believe opening 12 user profiles and changing the groups is less error-prone than removing and re-adding the permissions. Maybe continue this is another issue, since I finished this one.
> twiggers: The difference is the kind of mistakes you make. When opening/changing 12 user profiles, you may forget one. When manually adding the tens of permissions we need to give to boards, we're bound to forget one. This is followed by a board member then trying to do something they need to do, and then assigning themselves superuser privileges, and then later perhaps breaking the site.
Good point, needs discussion1.13https://gitlab.science.ru.nl/thalia/concrexit/-/issues/660Make phone number optional during registration2018-07-11T18:48:17+02:00Sébastiaan VersteegMake phone number optional during registration### One-sentence description
Make phone number optional during registration
### Why?
Because GDPR and it should not be required
### Current implementation
It's required
### Desired implementation
Not required### One-sentence description
Make phone number optional during registration
### Why?
Because GDPR and it should not be required
### Current implementation
It's required
### Desired implementation
Not required1.16.1https://gitlab.science.ru.nl/thalia/concrexit/-/issues/677Make sure users have email addresses2018-08-28T16:59:10+02:00Sébastiaan VersteegMake sure users have email addresses### One-sentence description
Make sure users have email addresses
### Why?
Because the management commands could crash
### Current implementation
No checks for empty email addresses
### Desired implementation
Checks for empty emai...### One-sentence description
Make sure users have email addresses
### Why?
Because the management commands could crash
### Current implementation
No checks for empty email addresses
### Desired implementation
Checks for empty email addresses1.172018-10-15https://gitlab.science.ru.nl/thalia/concrexit/-/issues/631pipconflictchecker is broken2018-08-08T20:23:06+02:00Thom Wiggerspipconflictchecker is broken### One-sentence description
https://github.com/ambitioninc/pip-conflict-checker/issues/9 will cause builds to fail
### Workaround
Disable `pipconflictchecker` for now (!790, c24dfde4), re-enable it when it starts working again.### One-sentence description
https://github.com/ambitioninc/pip-conflict-checker/issues/9 will cause builds to fail
### Workaround
Disable `pipconflictchecker` for now (!790, c24dfde4), re-enable it when it starts working again.1.17Thom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/676APIs action decorator replaces list_route and detail_route2018-09-26T20:27:08+02:00Sébastiaan VersteegAPIs action decorator replaces list_route and detail_route/label ~"technical change" ~"priority: low"
### One-sentence description
APIs `action` decorator replaces `list_route` and `detail_route`
http://www.django-rest-framework.org/topics/3.8-announcement/#action-decorator-replaces-list_rou.../label ~"technical change" ~"priority: low"
### One-sentence description
APIs `action` decorator replaces `list_route` and `detail_route`
http://www.django-rest-framework.org/topics/3.8-announcement/#action-decorator-replaces-list_route-and-detail_route
### Why?
Deprecated
1.18https://gitlab.science.ru.nl/thalia/concrexit/-/issues/704Change default language to English2018-09-19T20:31:26+02:00Sébastiaan VersteegChange default language to English### One-sentence description
Change default language to English
### Why?
Because we have international members now and we shouldn't force them to switch to English.
### Current implementation
https://gitlab.science.ru.nl/thalia/conc...### One-sentence description
Change default language to English
### Why?
Because we have international members now and we shouldn't force them to switch to English.
### Current implementation
https://gitlab.science.ru.nl/thalia/concrexit/blob/master/website/thaliawebsite/settings/settings.py#L197
The default language is Dutch, so this means that devices set to a non-Dutch/English language automatically select it as fallback.
### Desired implementation
The default language should be English, so this means that devices set to a non-Dutch/English language automatically select it as fallback.1.18Thom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/721Report correct membership status / history on renewal page2018-10-18T11:30:19+02:00Joost Rijneveldjoost@joostrijneveld.nlReport correct membership status / history on renewal page### One-sentence description
Currently, on [this page](https://thalia.nu/registration/renew/) when you don't have an active status, it'll display your last status (i.e. "You're a supporter"). That sentence should probably not be there.
...### One-sentence description
Currently, on [this page](https://thalia.nu/registration/renew/) when you don't have an active status, it'll display your last status (i.e. "You're a supporter"). That sentence should probably not be there.
Related, you may want to more explicitly mark the listed membership as the _last_ membership (since it's not my _current_ membership), or display _all_ historic memberships. Perhaps the latter is already the case, though - I'm not sure what my membership history looks like in the database, and I didn't do any local testing. Feel free to fork that off into a new issue if desirable.
I do feel like it's useful to display the just-expired membership, though, since that contains the expiry date (which may avoid confusion for year-members and supporters).
### Current behaviour
```
## MEMBERSHIP INFORMATION
Membership type: Supporter
Since: Sept. 1, 2017
Until: Sept. 1, 2018
Active: no
You're a supporter. Contact the board to renew your membership.
```
### Expected behaviour
```
## MEMBERSHIP INFORMATION
### Current membership:
No active membership. Contact the board to renew your membership.
### Former memberships:
Membership type: Supporter
Since: Sept. 1, 2017
Until: Sept. 1, 2018
Membership type: Supporter
Since: Sept. 1, 2016
Until: Sept. 1, 2017
[..]
```
### Steps to reproduce
1. Don't have an active membership
2. Go to https://thalia.nu/registration/renew/19https://gitlab.science.ru.nl/thalia/concrexit/-/issues/695Styleguide documents via Google Drive2018-10-18T11:30:19+02:00Job DoesburgStyleguide documents via Google Drive### One-sentence description
Styleguide documents via Google Drive
### Why?
We want to replace the styleguide downloads by a URL to a subfolder in our drive so new files are always directly available and up-to-date.
### Current imple...### One-sentence description
Styleguide documents via Google Drive
### Why?
We want to replace the styleguide downloads by a URL to a subfolder in our drive so new files are always directly available and up-to-date.
### Current implementation
Files are hosted from the Thalia servers
### Desired implementation
Google Drive folders that can be accessed by members
19https://gitlab.science.ru.nl/thalia/concrexit/-/issues/697Change mentions of 'supporter' to 'benefactor'2018-10-18T11:31:34+02:00Sébastiaan VersteegChange mentions of 'supporter' to 'benefactor'### One-sentence description
Change mentions of 'supporter' to 'benefactor' for begunstigers
### Why?
It is the translation we use in all official documents that was decided upon by the Translacie.
### Current implementation
We use ...### One-sentence description
Change mentions of 'supporter' to 'benefactor' for begunstigers
### Why?
It is the translation we use in all official documents that was decided upon by the Translacie.
### Current implementation
We use several different names for the 'begunstiger' membership type.
### Desired implementation
Always use 'benefactor' as translation.19https://gitlab.science.ru.nl/thalia/concrexit/-/issues/864Update Poetry.lock and check urllib3 version2019-04-24T21:25:11+02:00Sébastiaan VersteegUpdate Poetry.lock and check urllib3 version### One-sentence description
Update Poetry.lock and check urllib3 version
### Why?
https://nvd.nist.gov/vuln/detail/CVE-2019-11324
If you want to know why this is so important, we really only use requests (which uses urllib3) in one p...### One-sentence description
Update Poetry.lock and check urllib3 version
### Why?
https://nvd.nist.gov/vuln/detail/CVE-2019-11324
If you want to know why this is so important, we really only use requests (which uses urllib3) in one place: Conscribo sync.24https://gitlab.science.ru.nl/thalia/concrexit/-/issues/706Handle re-registrations after data minimisation2020-02-04T16:22:58+01:00Sébastiaan VersteegHandle re-registrations after data minimisation### One-sentence description
Handle re-registrations after data minimisation
### Why?
Because we need to minimise data and this might cause issues with renewals in ~registrations
### Current implementation
None
### Desired impleme...### One-sentence description
Handle re-registrations after data minimisation
### Why?
Because we need to minimise data and this might cause issues with renewals in ~registrations
### Current implementation
None
### Desired implementation
Handle renewals of members of whom data was minimised by allowing them to re-enter the data.31Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/952Limit usernames to 64 characters2019-11-27T19:49:51+01:00Sébastiaan VersteegLimit usernames to 64 characters<!--
This template is for changes that do not affect the behaviour of the website.
** If you are not in the Technicie, there is a very high chance that you
should not use this template
Examples:
* Changes in CI...<!--
This template is for changes that do not affect the behaviour of the website.
** If you are not in the Technicie, there is a very high chance that you
should not use this template
Examples:
* Changes in CI
* Refactoring of code
* Technicie-facing documentation
-->
### One-sentence description
Limit usernames to 64 characters
### Why?
GSuite usernames have this maximum length
### Current implementation
Standard Django 150 characters
### Suggested implementation
Add validators in the registrations and members admin forms.29Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/855Update to Django 2.22019-04-24T19:39:49+02:00Sébastiaan VersteegUpdate to Django 2.2<!--
This template is for changes that do not affect the behaviour of the website.
** If you are not in the Technicie, there is a very high chance that you
should not use this template
Examples:
* Changes in CI...<!--
This template is for changes that do not affect the behaviour of the website.
** If you are not in the Technicie, there is a very high chance that you
should not use this template
Examples:
* Changes in CI
* Refactoring of code
* Technicie-facing documentation
-->
### One-sentence description
Update to Django 2.2
### Why?
Newer version
### Current implementation
Django 2.1
### Suggested implementation
Django 2.2 https://www.djangoproject.com/weblog/2019/apr/01/django-22-released/24Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/766Remove usage of Celery for push notifications2018-11-28T18:52:23+01:00Sébastiaan VersteegRemove usage of Celery for push notifications### One-sentence description
Remove usage of Celery for push notifications
### Why?
Celery is not performing as expected.
### Current implementation
Celery is used to schedule push notifications
### Suggested implementation
Use a ...### One-sentence description
Remove usage of Celery for push notifications
### Why?
Celery is not performing as expected.
### Current implementation
Celery is used to schedule push notifications
### Suggested implementation
Use a management command and cronjob instead20Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/712Rename 'supporter' membership type to 'benefactor'2019-02-06T20:44:37+01:00Sébastiaan VersteegRename 'supporter' membership type to 'benefactor'### One-sentence description
Rename 'supporter' membership type to 'benefactor'
### Why?
Right name.
### Current implementation
'supporter' membership type
### Desired implementation
'benefactor' membership type
*Needs migration!*### One-sentence description
Rename 'supporter' membership type to 'benefactor'
### Why?
Right name.
### Current implementation
'supporter' membership type
### Desired implementation
'benefactor' membership type
*Needs migration!*Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/648Nieuwe versie privacyvoorwaarden op de site zetten2018-08-29T19:49:45+02:00Thom WiggersNieuwe versie privacyvoorwaarden op de site zetten### One-sentence description
Nieuwe versie privacyvoorwaarden op de site zetten
### Current behaviour
https://thalia.nu/privacy-policy/ is nog de oude versie.
### Expected behaviour
https://thalia.nu/privacy-policy/ is de nieuwe ver...### One-sentence description
Nieuwe versie privacyvoorwaarden op de site zetten
### Current behaviour
https://thalia.nu/privacy-policy/ is nog de oude versie.
### Expected behaviour
https://thalia.nu/privacy-policy/ is de nieuwe versie.1.16.2https://gitlab.science.ru.nl/thalia/concrexit/-/issues/395Refactor thumbnails2019-02-10T13:29:22+01:00Thom WiggersRefactor thumbnailsThey are currently generated in rather complicated ways. We also have too many variants of thumbnails. The back-and-forth with quote, unquote, reverse and redirect are very unwieldy and hard to comprehend. They are also a source of vulne...They are currently generated in rather complicated ways. We also have too many variants of thumbnails. The back-and-forth with quote, unquote, reverse and redirect are very unwieldy and hard to comprehend. They are also a source of vulnerabilities.Luko van der MaasLuko van der Maashttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/844Re-implement the way we handle mailinglist aliases2019-09-18T21:05:41+02:00Sébastiaan VersteegRe-implement the way we handle mailinglist aliases<!--
This template is for changes that do not affect the behaviour of the website.
** If you are not in the Technicie, there is a very high chance that you
should not use this template
Examples:
* Changes in CI...<!--
This template is for changes that do not affect the behaviour of the website.
** If you are not in the Technicie, there is a very high chance that you
should not use this template
Examples:
* Changes in CI
* Refactoring of code
* Technicie-facing documentation
-->
### One-sentence description
Re-implement the way we handle mailinglist aliases
### Why?
Decrease workload on server
### Current implementation
All aliases are handled as separate mailinglists and synced like so. If an email gets sent to an alias of a mailinglist the message doesn't end up in the main mailinglist archive.
### Suggested implementation
The alias should redirect incoming email to the main mailinglist without additions or archiving. This should speed up the syncing of mailinglists as well.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/804Use same JQuery tablesorter library everywhere.2019-01-30T18:58:06+01:00Joren VranckenUse same JQuery tablesorter library everywhere.<!--
This template is for changes that do not affect the behaviour of the website.
Examples:
* Changes in CI
* Refactoring of code
* Technicie-facing documentation
-->
### One-sentence description
<!-- Please pr...<!--
This template is for changes that do not affect the behaviour of the website.
Examples:
* Changes in CI
* Refactoring of code
* Technicie-facing documentation
-->
### One-sentence description
<!-- Please provide a brief description of the issue. Don't go into specifics. -->
Use same JQuery tablesorter library everywhere.
### Why?
<!-- Please motivate why we should invest into this change -->
It would be better to use the same library everywhere.
### Current implementation
<!-- If relevant, describe how it's done currently -->
* The event backend uses [christianbach/tablesorter](https://github.com/christianbach/tablesorter).
* The pizza frontend uses [kylefox/jquery-tablesort](https://github.com/kylefox/jquery-tablesort).
### Suggested implementation
<!-- Provide (a) suggestion(s) for how we could approach this -->
Use [Mottie/tablesorter](https://github.com/Mottie/tablesorter). [Mottie/tablesorter](https://github.com/Mottie/tablesorter) is a fork of [christianbach/tablesorter](https://github.com/christianbach/tablesorter) with some nice added features (for example no more `eval()` usage).Sébastiaan VersteegSébastiaan Versteeg