concrexit issueshttps://gitlab.science.ru.nl/thalia/concrexit/-/issues2019-03-27T20:38:47+01:00https://gitlab.science.ru.nl/thalia/concrexit/-/issues/321Write newsletter HTML to database on sending2019-03-27T20:38:47+01:00Joost Rijneveldjoost@joostrijneveld.nlWrite newsletter HTML to database on sending### One-sentence description
Write newsletter HTML to database or static document after sending
### Why?
To make sure it stays the same over time.
### Current implementation
It's generated when the web preview is opened
### Desired...### One-sentence description
Write newsletter HTML to database or static document after sending
### Why?
To make sure it stays the same over time.
### Current implementation
It's generated when the web preview is opened
### Desired implementation
Save the email to the database and serve that HTML
---
De sortering is anders (dat is misschien opgelost met #179), maar bovendien bevat de online versie een extra stukje tekst onderaan; (_"Is this email not in your preferred language? [..] in the language you selected."_)
Ik stel voor die tekst een paar letterpuntjes kleiner te maken (en misschien iets minder langdradig te maken door de laatste zin weg te laten), en dan ook in de nieuwsbrief mee te sturen.
Verder lijkt er inconsistentie te zitten tussen de boete-bedragen; in de mail van week 6 die ik ontving wordt expliciet een boete van 5 euro genoemd bij het symposium, maar dat is in de online-versie niet terug te vinden.
**Essentie van het verhaal:** ik weet niet goed hoe die online preview tot stand komt, maar het lijkt me belangrijk om 'm te "bevriezen" zodra de nieuwsbrief daadwerkelijk verstuurd is, door gewoon ergens wat statische HTML weg te schrijven. Dan voorkom je dit soort gedoe fundamenteel, ipv door de individuele dingen te moeten tackelen.Michiel KraanMichiel Kraanhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/310Set is_staff to False for old board members2019-09-11T20:14:01+02:00Joost Rijneveldjoost@joostrijneveld.nlSet is_staff to False for old board members### One-sentence description
Set is_staff to False for old board members
### Why?
This follows from the dicussion in !335 but it is not clear how and if this should be solved.
This issue was created so that we could think about this a...### One-sentence description
Set is_staff to False for old board members
### Why?
This follows from the dicussion in !335 but it is not clear how and if this should be solved.
This issue was created so that we could think about this and discuss this with everyone.
### Current implementation
`is_staff` is set to True for everyone who becomes a board member and is never set to False because board memberships don't end. This is also the reason why committee membership end dates cannot be in the future, since it sets `is_staff` to False if applicable.
### Desired implementation
Do nothing
or
Set it to False using a Celery task or cronjob for examplehttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/291Test sitemap in unit tests2019-02-10T17:20:33+01:00Joost Rijneveldjoost@joostrijneveld.nlTest sitemap in unit testsThe sitemap is quite vulnerable to `NoReverseMatch` exceptions when the URL scheme changes. A test case that tries to access the sitemap would likely reveal these errors preemptively (but it would require fixtures to be fairly complete, ...The sitemap is quite vulnerable to `NoReverseMatch` exceptions when the URL scheme changes. A test case that tries to access the sitemap would likely reveal these errors preemptively (but it would require fixtures to be fairly complete, as such errors might not trigger when parts of the database are empty).https://gitlab.science.ru.nl/thalia/concrexit/-/issues/29Tightly couple django and mailman2018-03-26T15:57:40+02:00Joost Rijneveldjoost@joostrijneveld.nlTightly couple django and mailmanIssue #25 implements the old API that gets called in a cronjob, firing a Python script that talks to it over HTTPS. We could replace this:
- either by a cronjob Python script that queries the database directly
- or by a `save()` hand...Issue #25 implements the old API that gets called in a cronjob, firing a Python script that talks to it over HTTPS. We could replace this:
- either by a cronjob Python script that queries the database directly
- or by a `save()` handler that updates mailman when `MailingList` changes
- or at the very least by a more nicely separated API with less GET variables (i.e. not one url route)https://gitlab.science.ru.nl/thalia/concrexit/-/issues/16Delete files when models deleted?2019-05-28T09:31:34+02:00Joost Rijneveldjoost@joostrijneveld.nlDelete files when models deleted?There seems to be an easy system-wide way to accomplish this by installing [django-cleanup](https://github.com/un1t/django-cleanup), but is this something we want for every FileField and ImageField? Is there a scenario where we might ref...There seems to be an easy system-wide way to accomplish this by installing [django-cleanup](https://github.com/un1t/django-cleanup), but is this something we want for every FileField and ImageField? Is there a scenario where we might reference the same logical file from two models?https://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/420Small mistakes in board memberships on profile pages2017-12-10T21:12:52+01:00Joren VranckenSmall mistakes in board memberships on profile pages### One-sentence description
There are translation mistakes, a date format mistake and confusing end dates in the board membership on profile pages.
### Why?
In the case that the board member did not stop before the end of the year,...### One-sentence description
There are translation mistakes, a date format mistake and confusing end dates in the board membership on profile pages.
### Why?
In the case that the board member did not stop before the end of the year, the start and end date are redundant, because the relevant year is stated in bold.
In the case that the board member did stop before the end of the year, the end date is a bit confusing.
For example, [the profile of Simon Brugman](https://thalia.nu/members/profile/884) says:
> **Secretaris [tot 2015-02-13]**: Sept. 1, 2012 - Aug. 31, 2013 `
Which contains two different end dates: `2015-02-13` and `Aug. 31, 2013`.
### Current implementation
Two end dates, one for the end of the board itself (`Aug. 31, 2013` in the example) and one for the end of the board membership (`2015-02-13` in the example).
The words `tot` and `bestuur` are not translated on the page.
In the example the format of `2015-02-13` is wrong and should (presumably) be `15-02-2013`
### Desired implementation
- Remove the start and end date for boards.
- Fix the end date format for board memberships that ended before the end of the year.
- Fix the translation of the words `bestuur` and `tot`https://gitlab.science.ru.nl/thalia/concrexit/-/issues/422Zoeken naar mailinglijsten op basis van aliassen is lastig2017-12-10T21:12:52+01:00Joost Rijneveldjoost@joostrijneveld.nlZoeken naar mailinglijsten op basis van aliassen is lastig### One-sentence description
Het is lastig om een mailinglijst te vinden op basis van een alias (ctlr+F in het overzicht werkt dan natuurlijk niet). Dit kwam ik tegen tijdens #388.
### Why?
Dat is onhandig als je iemand wil toevoegen ...### One-sentence description
Het is lastig om een mailinglijst te vinden op basis van een alias (ctlr+F in het overzicht werkt dan natuurlijk niet). Dit kwam ik tegen tijdens #388.
### Why?
Dat is onhandig als je iemand wil toevoegen aan een lijst op basis van de naam.
### Current implementation
Het overzicht in /admin toont alleen de lijst met lijstnamen.
### Desired implementation
Een zoekveld toevoegen dat aliassen doorzoekt, of de aliassen in een kolommetje in het overzicht weergeven zodat ctrl+f genoeg is.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/142Separate build settings from defaults2019-09-04T14:20:24+02:00Joost Rijneveldjoost@joostrijneveld.nlSeparate build settings from defaultsCurrently we depend on `django_template_check` for the build, as it runs a test we would like to run during CI. This application provides a management command when installed. However, this means that it is installed in production (and de...Currently we depend on `django_template_check` for the build, as it runs a test we would like to run during CI. This application provides a management command when installed. However, this means that it is installed in production (and development) environments as well, needlessly cluttering `requirements.txt` and `INSTALLED_APPS`. This may be a more general problem that can be fixed by re-thinking the way we manage settings (without introducing duplication).https://gitlab.science.ru.nl/thalia/concrexit/-/issues/437Boete niet verplicht bij evenementen zonder inschrijvingen2017-12-13T12:44:17+01:00Thom WiggersBoete niet verplicht bij evenementen zonder inschrijvingen### One-sentence description
De boete bij het afmelden voor een evenement niet meer verplicht hoeven invullen / op nul kunnen laten staan bij evenementen waarvoor je je niet hoeft aan te melden.
### Why?
Ik krijg steeds foutmeldingen a...### One-sentence description
De boete bij het afmelden voor een evenement niet meer verplicht hoeven invullen / op nul kunnen laten staan bij evenementen waarvoor je je niet hoeft aan te melden.
### Why?
Ik krijg steeds foutmeldingen als ik mijn borrels bewerk.
### Current implementation
Ik krijg als ik een borrel maak dan klaagt de site dat ik `5.0` moet invullen.
### Desired implementation
Niet meer `5.0` hoeven invullen als ik ook geen aanmeldingen accepteer.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/453Vertaal automatische mailtjes aan het bestuur2017-12-10T21:13:08+01:00Joost Rijneveldjoost@joostrijneveld.nlVertaal automatische mailtjes aan het bestuur### One-sentence description
Emails to the board should be in English as well.
### Why?
The board might some day be non-Dutch.
### Current implementation
The emails were copied from concrete5, so are still Dutch. They were added in ...### One-sentence description
Emails to the board should be in English as well.
### Why?
The board might some day be non-Dutch.
### Current implementation
The emails were copied from concrete5, so are still Dutch. They were added in !502 and others.
### Desired implementation
The emails should be in English.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/458API information leakage2017-12-10T21:12:55+01:00Joren VranckenAPI information leakage### One-sentence description
Some private information is leaked from the database through the API.
### Why?
When the ThaliApp requests events information from the website, private information is revealed.
For example, the registra...### One-sentence description
Some private information is leaked from the database through the API.
### Why?
When the ThaliApp requests events information from the website, private information is revealed.
For example, the registration dates of every participant of an event and their member ids.
### Current implementation
When querying the API, data is returned that is private and seemingly unnecessary.
### Desired implementation
The API should only return necessary data.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/462Include version number in rendered HTML2018-07-25T14:22:12+02:00Joost Rijneveldjoost@joostrijneveld.nlInclude version number in rendered HTML### One-sentence description
Include version number in rendered HTML.
### Why?
This makes it more fool-proof to test and compare beta and production.
### Current implementation
Currently there is no such thing.
### Desired implemen...### One-sentence description
Include version number in rendered HTML.
### Why?
This makes it more fool-proof to test and compare beta and production.
### Current implementation
Currently there is no such thing.
### Desired implementation
During the CI build of the docker image, expose some environment variable that contains the version number. This can then be rendered in some comment in the top-most HTML template.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/470Invalid attempts at new users are already sent an email2018-07-08T22:07:59+02:00Joost Rijneveldjoost@joostrijneveld.nlInvalid attempts at new users are already sent an email### One-sentence description
Invalid attempts at new users are already sent an email when one attempts to add them using the admin forms.
### Current behaviour
Adding a user that triggers validation errors also triggers outgoing email...### One-sentence description
Invalid attempts at new users are already sent an email when one attempts to add them using the admin forms.
### Current behaviour
Adding a user that triggers validation errors also triggers outgoing emails. This means that emails to one new user can be sent multiple times. Perhaps other things also happen.
### Expected behaviour
Nothing should change when the form is considered invalid.
### Steps to reproduce
1. Create a new user
2. Mess up one input field (when testing, I forgot to add a number in the first address line)
3. Observe an outgoing email (e.g. when running in development mode, as output of `manage.py`)https://gitlab.science.ru.nl/thalia/concrexit/-/issues/476Document automatic mailing lists in the admin UI2017-12-10T21:12:33+01:00Joost Rijneveldjoost@joostrijneveld.nlDocument automatic mailing lists in the admin UI### One-sentence description
Add a few lines of text to the admin interface that describe what the automatic mailing lists do.
Spin-off of #388
### Why?
Nobody reads code, nobody properly communicates this information to the next boa...### One-sentence description
Add a few lines of text to the admin interface that describe what the automatic mailing lists do.
Spin-off of #388
### Why?
Nobody reads code, nobody properly communicates this information to the next boards.
### Current implementation
People know(tm)
### Desired implementation
Include some text in the admin UI describing `leden@` etc.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/501Old boards on separate page2017-09-20T20:24:39+02:00Sébastiaan VersteegOld boards on separate page### One-sentence description
Old boards on separate page
### Why?
We want to show a description on the board page. This means that the page will get fuller (again) so we need to make some improvements.
### Current implementation
One...### One-sentence description
Old boards on separate page
### Why?
We want to show a description on the board page. This means that the page will get fuller (again) so we need to make some improvements.
### Current implementation
One page showing the current and old boards.
### Desired implementation
Two pages, the current one showing a the current board and one containing a list with all the old boards. The link to the second page can be on the first one, no need for a new menu-item.
The current board page should probably also show the members of the current board for logged-in users.https://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/508Header fields in event export are not being translated2017-12-10T21:12:06+01:00Bram in 't ZandtHeader fields in event export are not being translated### One-sentence description
If you export an event the headers of the export are not translated whereas some of the fields in the export are.
### Why?
Some fields are now in English while others are in Dutch. This looks messy.
### Cur...### One-sentence description
If you export an event the headers of the export are not translated whereas some of the fields in the export are.
### Why?
Some fields are now in English while others are in Dutch. This looks messy.
### Current implementation
Header fields in the export are not translated.
### Desired implementation
Header fields are also translated depending on the chosen language.Bram in 't ZandtBram in 't Zandthttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/509Give existing boards default description texts2018-11-21T23:02:40+01:00Joost Rijneveldjoost@joostrijneveld.nlGive existing boards default description textsAs #502 introduces description fields and #478 hides member images, it is probably desirable to provide default descriptions for the legacy boards. Either some manual work, or an automatic migration. See also https://gitlab.science.ru.nl...As #502 introduces description fields and #478 hides member images, it is probably desirable to provide default descriptions for the legacy boards. Either some manual work, or an automatic migration. See also https://gitlab.science.ru.nl/thalia/concrexit/issues/478#note_35279
Bijv. 'The board of xxxx-yyyy was formed by John Doe (position), Jane Doe (position), etc.'https://gitlab.science.ru.nl/thalia/concrexit/-/issues/521Django 2.02018-01-17T20:01:38+01:00Thom WiggersDjango 2.0### One-sentence description
Klaarmaken voor Django 2.0
### Why?
Hippe nieuwe features: https://docs.djangoproject.com/en/2.0/releases/2.0/
### Current implementation
Django 1.11
### Desired implementation
Django 2.0
### Showstopp...### One-sentence description
Klaarmaken voor Django 2.0
### Why?
Hippe nieuwe features: https://docs.djangoproject.com/en/2.0/releases/2.0/
### Current implementation
Django 1.11
### Desired implementation
Django 2.0
### Showstoppers
* [x] rest_framework
* [x] django-tinymce4-lite
* [x] ???
Zie ook de django-2 branchThom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/523Make partner events optin2018-10-29T15:54:11+01:00Joren VranckenMake partner events optin### One-sentence description
Only show partner events to members who have the optin checkbox checked.
### Why?
Like the optin mails, not every member wants to see partner related content.
### Current implementation
The partner e...### One-sentence description
Only show partner events to members who have the optin checkbox checked.
### Why?
Like the optin mails, not every member wants to see partner related content.
### Current implementation
The partner events are shown to everyone in the calendar.
### Desired implementation
Change the optin checkbox from optin for mailing to mailing and partner events.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/527MemberListSerializer stuurt full-size foto URIs2018-01-02T16:35:51+01:00Thom WiggersMemberListSerializer stuurt full-size foto URIs### One-sentence description
MemberListSerializer stuurt full-size foto's, dat kunnen beter thumbnails zijn.
### Why?
* Scheelt MBs op mijn databundel
* Als de implementatie van thumbs verandert breekt de app.
### Current implem...### One-sentence description
MemberListSerializer stuurt full-size foto's, dat kunnen beter thumbnails zijn.
### Why?
* Scheelt MBs op mijn databundel
* Als de implementatie van thumbs verandert breekt de app.
### Current implementation
het stuurt de absolute uri naar de foto zelf naar de app toe, de app maakt daar thumbnails van
### Desired implementation
Stuur een thumbnail uri, eventueel als een bepaalde parameter is geset?
https://gitlab.science.ru.nl/thalia/concrexit/-/issues/529Resize profile pictures upon upload2017-10-28T13:49:18+02:00Gijs HendriksenResize profile pictures upon upload### One-sentence description
Resize profile pictures upon upload
### Why?
Because it is not necessary to keep profile pictures in their original size. Just like the pictures in the `photos` app, it should be enough to store them in 1920...### One-sentence description
Resize profile pictures upon upload
### Why?
Because it is not necessary to keep profile pictures in their original size. Just like the pictures in the `photos` app, it should be enough to store them in 1920x1080 resolution.
### Current implementation
Uploaded pictures are immediately stored on the site.
### Desired implementation
Uploaded pictures that are too large are resized to a smaller resolution when the picture is uploaded.Gijs HendriksenGijs Hendriksenhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/531Remove obsolete JSON response views in pizzas app2017-12-10T21:12:10+01:00Sébastiaan VersteegRemove obsolete JSON response views in pizzas app### One-sentence description
Remove obsolete JSON response views in pizzas app
### Why?
Because we have an API now
### Current implementation
https://gitlab.science.ru.nl/thalia/concrexit/blob/master/website/pizzas/views.py#L73
###...### One-sentence description
Remove obsolete JSON response views in pizzas app
### Why?
Because we have an API now
### Current implementation
https://gitlab.science.ru.nl/thalia/concrexit/blob/master/website/pizzas/views.py#L73
### Desired implementation
Use the API for these kind of requests.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/539Thumbnails committees page too much compressed2018-10-14T20:20:19+02:00Job DoesburgThumbnails committees page too much compressedThe committee thumbnails are too much compressed as can be seen on this screenshot:
![compressed](/uploads/339506de39d8fc4bdc6af2ae7f86b02c/compressed.png)
Maybe it has something to do with the fact that I'm visiting this page on a retin...The committee thumbnails are too much compressed as can be seen on this screenshot:
![compressed](/uploads/339506de39d8fc4bdc6af2ae7f86b02c/compressed.png)
Maybe it has something to do with the fact that I'm visiting this page on a retina-screen device? Or it's just too much compressionhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/542Partner events require a partner2018-01-17T20:01:39+01:00Joren VranckenPartner events require a partner### One-sentence description
Partner events requires a partner.
### Why?
Some partners do not want a partner page, but do want a partner event.
### Current implementation
It is required to select a partner to create a partner event.
#...### One-sentence description
Partner events requires a partner.
### Why?
Some partners do not want a partner page, but do want a partner event.
### Current implementation
It is required to select a partner to create a partner event.
### Desired implementation
On the vacancy page it is possible to select a partner or enter the name of an "Other partner"
It would be great if that would also be possible on the partner events.Sébastiaan VersteegSébastiaan Versteeghttps://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/561Automatically lowercase usernames posted to the token-auth endpoint2018-01-28T20:48:57+01:00Sébastiaan VersteegAutomatically lowercase usernames posted to the token-auth endpoint### One-sentence description
Automatically lowercase usernames posted to the token-auth endpoint
### Why?
Because the login form does the same.
### Current implementation
We use the `ObtainAuthToken` from Django Rest Framework (DRF)...### One-sentence description
Automatically lowercase usernames posted to the token-auth endpoint
### Why?
Because the login form does the same.
### Current implementation
We use the `ObtainAuthToken` from Django Rest Framework (DRF).
### Desired implementation
Extend the view and make sure usernames are converted to lowercase.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/569Improve test coverage2019-09-11T20:01:49+02:00Sébastiaan VersteegImprove test coverage### One-sentence description
Improve test coverage
### Why?
It will make our lives easier.
### Current implementation
There are a couple of tests.
### Desired implementation
100% coverage.
### Tasks
- [ ] events
- [x] registrati...### One-sentence description
Improve test coverage
### Why?
It will make our lives easier.
### Current implementation
There are a couple of tests.
### Desired implementation
100% coverage.
### Tasks
- [ ] events
- [x] registrations
- [ ] photos
- [ ] members
- [ ] activemembers
- [ ] pizzas
- [ ] documents
etc.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/570Improve documentation2018-02-13T11:50:42+01:00Thom WiggersImprove documentation### One-sentence description and why
Improve documentation so that we:
* Have something to show on [docs pages](https://thalia.nu/docs/).
* Have (tested) examples for relevant functions (doctests)
* Provide better reference to our newb...### One-sentence description and why
Improve documentation so that we:
* Have something to show on [docs pages](https://thalia.nu/docs/).
* Have (tested) examples for relevant functions (doctests)
* Provide better reference to our newbies and "future generations".https://gitlab.science.ru.nl/thalia/concrexit/-/issues/571we can delete ci-requirements.txt2018-02-21T19:14:33+01:00Thom Wiggerswe can delete ci-requirements.txt### Why?
I don't think it's used anywhere.### Why?
I don't think it's used anywhere.Thom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/572Improve documentation for activemembers2018-06-13T18:55:15+02:00Thom WiggersImprove documentation for activemembersThe ~activemembers module could use improved docs.The ~activemembers module could use improved docs.Improve documentationhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/573Improve documentation for documents2018-06-13T19:05:01+02:00Thom WiggersImprove documentation for documentsThe ~documents module could use improved docs.The ~documents module could use improved docs.Improve documentationhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/574Improve documentation for education module2018-06-13T18:59:02+02:00Thom WiggersImprove documentation for education moduleThe ~education module could use improved docs.The ~education module could use improved docs.Improve documentationhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/575Improve events module documentation2018-06-13T19:12:58+02:00Thom WiggersImprove events module documentationThe ~events module could use improved docs.The ~events module could use improved docs.Improve documentationhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/576Improve Mailinglists module documentation2019-05-27T21:18:13+02:00Thom WiggersImprove Mailinglists module documentationThe ~mailinglists module could use improved docs.The ~mailinglists module could use improved docs.Improve documentationhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/577Improve documentation for members module2019-07-03T20:11:57+02:00Thom WiggersImprove documentation for members moduleThe ~members module could use improved docs.The ~members module could use improved docs.Improve documentationhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/578Improve documentation for newsletters module2018-03-21T20:25:21+01:00Thom WiggersImprove documentation for newsletters moduleThe ~newsletter module could use improved docs.The ~newsletter module could use improved docs.Improve documentationhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/579Improve documentation for partners module2019-05-28T11:04:15+02:00Thom WiggersImprove documentation for partners moduleThe ~partners module could use improved docs.The ~partners module could use improved docs.Improve documentationhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/580Improve documentation for payments module2018-09-10T14:08:25+02:00Thom WiggersImprove documentation for payments moduleThe ~payments module could use improved docs.The ~payments module could use improved docs.Improve documentationhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/581Improve documentation for photos module2019-02-16T23:02:53+01:00Thom WiggersImprove documentation for photos moduleThe ~photos module could use improved docs.The ~photos module could use improved docs.Improve documentationhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/582Improve documentation for the pizzas module2019-11-20T20:38:02+01:00Thom WiggersImprove documentation for the pizzas moduleThe ~pizzas module could use improved docs.The ~pizzas module could use improved docs.Improve documentationhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/583Improve documentation for the pushnotifications module2018-09-12T16:22:39+02:00Thom WiggersImprove documentation for the pushnotifications moduleThe ~"push notifications" module could use improved docs.The ~"push notifications" module could use improved docs.Improve documentationhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/584Improve documentation for the registrations module2018-09-21T15:10:04+02:00Thom WiggersImprove documentation for the registrations moduleThe ~registrations module could use improved docs.The ~registrations module could use improved docs.Improve documentationhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/585Improve documentation for the thabloid module2018-02-13T12:01:00+01:00Thom WiggersImprove documentation for the thabloid moduleThe ~thabloid module could use improved docs.The ~thabloid module could use improved docs.Improve documentationhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/586Improve documentation for the thaliawebsite module2018-08-29T21:26:02+02:00Thom WiggersImprove documentation for the thaliawebsite moduleThe `thaliawebsite` module could use improved docs.The `thaliawebsite` module could use improved docs.Improve documentationThom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/587Improve documentation for the utils module2018-02-21T19:14:33+01:00Thom WiggersImprove documentation for the utils moduleThe `utils` module could use improved docs.The `utils` module could use improved docs.Improve documentationThom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/588Improve docs for the announcements module2018-02-21T19:14:33+01:00Thom WiggersImprove docs for the announcements moduleThe ~announcements events module could use improved docs.The ~announcements events module could use improved docs.Improve documentationThom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/595Remove old boards from Organisator drop down menu in the event backend2018-03-21T20:25:21+01:00Joren VranckenRemove old boards from Organisator drop down menu in the event backend### One-sentence description
Remove old boards from Organisator drop down menu in the event backend.
### Why?
Old boards don't organise events and the drop down menu is bloated.
### Current implementation
When creating a new event, it ...### One-sentence description
Remove old boards from Organisator drop down menu in the event backend.
### Why?
Old boards don't organise events and the drop down menu is bloated.
### Current implementation
When creating a new event, it is possible to choose old boards as organisers.
### Desired implementation
When creating a new event, it is not possible to choose old boards as organisers.Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/601Verwijzen naar boetebeleid bij inschrijving2018-05-22T15:59:16+02:00Jeremy GuijtVerwijzen naar boetebeleid bij inschrijvingBij de huidige inschrijvingen is geen verwijzing naar het boetebeleid. Om het boetebeleid rechtsgeldig te laten zijn, is het van belang dat een gebruiker van het boetebeleid weet of ermee instemt. Mochten jullie van ons een omschrijving ...Bij de huidige inschrijvingen is geen verwijzing naar het boetebeleid. Om het boetebeleid rechtsgeldig te laten zijn, is het van belang dat een gebruiker van het boetebeleid weet of ermee instemt. Mochten jullie van ons een omschrijving willen van het beleid, respond dan op deze issue of stuur me een mail.Tom van BusselTom van Busselhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/607Increase the number of events on the homepage2018-03-15T13:49:08+01:00Rick LukassenIncrease the number of events on the homepage
### One-sentence description
Increase the number of events on the homepage
### Why?
We have more events than ever, 4 might not be enough to cover a week.
### Current implementation
We show 4
### Desired implementation
Show 6 or ...
### One-sentence description
Increase the number of events on the homepage
### Why?
We have more events than ever, 4 might not be enough to cover a week.
### Current implementation
We show 4
### Desired implementation
Show 6 or 8?
https://gitlab.science.ru.nl/thalia/concrexit/-/issues/613Build Docker container in CI2018-04-05T17:24:09+02:00Thom WiggersBuild Docker container in CI### One-sentence description
Build docker for Thalia in CI
### Why?
We now have CI runners that can do it
### Current implementation
We're not doing it
### Desired implementation
Do it.### One-sentence description
Build docker for Thalia in CI
### Why?
We now have CI runners that can do it
### Current implementation
We're not doing it
### Desired implementation
Do it.Thom WiggersThom Wiggershttps://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/633Change language in backend2018-05-16T19:49:26+02:00Joren VranckenChange language in backend### One-sentence description
Add the possibility to change the language in the backend.
### Why?
It is not possible to change the language in the backend.
### Current implementation
It is only possible to change the language in the fro...### One-sentence description
Add the possibility to change the language in the backend.
### Why?
It is not possible to change the language in the backend.
### Current implementation
It is only possible to change the language in the frontend.
If you want to change the language in the backend, you have to first go to the frontend and change the language there and then go back to the backend.
### Desired implementation
A button to switch the language in the backend, similar to the one in the frontend.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/641It is unclear if the year field on documents in the backend refers to the fir...2018-06-13T22:01:01+02:00Joren VranckenIt is unclear if the year field on documents in the backend refers to the first or last year of the academic year.### One-sentence description
It is unclear if the year field on documents in the backend refers to the first or last year for that document.
### Why?
A document for an academic year has two years (e.g. the policy document for 2017-2018)...### One-sentence description
It is unclear if the year field on documents in the backend refers to the first or last year for that document.
### Why?
A document for an academic year has two years (e.g. the policy document for 2017-2018).
### Current implementation
It is possible to select only one year.
### Desired implementation
It is possible to select the academic year for documents.Tom van BusselTom van Busselhttps://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/650Use the Mailman REST api to push mailinglist changes2019-09-18T20:57:20+02:00Jelle Besselingjelle@pingiun.comUse the Mailman REST api to push mailinglist changes### One-sentence description
Use the Mailman REST api to push mailinglist changes
### Why?
A new mailinglist sync will make for a more robust implementation
### Current implementation
The current syncmailinglist.py is a hacky script whic...### One-sentence description
Use the Mailman REST api to push mailinglist changes
### Why?
A new mailinglist sync will make for a more robust implementation
### Current implementation
The current syncmailinglist.py is a hacky script which always pulls all the mailing lists from the website. It runs on an interval so it does not always reflect the latest mailinglists.
### Desired implementation
Concrexit knows when a mailing list changes and can thus automatically update Mailman via REST api (which has official python bindings). With Celery this can be done in a seperate task to catch any errors. The new REST api is available in Mailman 3, and as we're currently running Mailman 2 I also created a related issue in https://gitlab.science.ru.nl/thalia/serverconfig/issues/204https://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/667Make the starting year field in the registration form a dropdown2018-08-07T12:34:14+02:00Sébastiaan VersteegMake the starting year field in the registration form a dropdown### One-sentence description
Make the starting year field in the registration form a dropdown
### Why?
To prevent weird values being entered
### Current implementation
It's an integer field
### Desired implementation
Dropdown!### One-sentence description
Make the starting year field in the registration form a dropdown
### Why?
To prevent weird values being entered
### Current implementation
It's an integer field
### Desired implementation
Dropdown!1.16.2https://gitlab.science.ru.nl/thalia/concrexit/-/issues/670There are no installation instructions for Ubuntu 18.04 in the README2018-10-14T20:43:50+02:00Joren VranckenThere are no installation instructions for Ubuntu 18.04 in the README### One-sentence description
Add installation instructions for Ubuntu 18.04
### Why?
Ubuntu 18.04 is the newest version.
### Current implementation
There are no installation instructions for Ubuntu 18.04 in the README.
### Desired im...### One-sentence description
Add installation instructions for Ubuntu 18.04
### Why?
Ubuntu 18.04 is the newest version.
### Current implementation
There are no installation instructions for Ubuntu 18.04 in the README.
### Desired implementation
There are installation instructions for Ubuntu 18.04 in the README.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/672Use pipenv instead of requirements.txt2018-08-15T15:06:16+02:00Thom WiggersUse pipenv instead of requirements.txt### One-sentence description
Migate to `pipenv` and `Pipfile`
### Why?
Better handling of dependencies and virtual envs. Easier to use.
### Current implementation
`requirements.txt`
### Desired implementation
`Pipfile` and `Pipfil...### One-sentence description
Migate to `pipenv` and `Pipfile`
### Why?
Better handling of dependencies and virtual envs. Easier to use.
### Current implementation
`requirements.txt`
### Desired implementation
`Pipfile` and `Pipfile.lock`.
https://github.com/pypa/pipenvThom 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/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/682Make it easier to process a payment after accepting registration2018-08-28T16:34:32+02:00Sébastiaan VersteegMake it easier to process a payment after accepting registration### One-sentence description
Make it easier to process a payment after accepting registration
### Why?
Easier. Faster.
### Current implementation
1. Accept
2. Go back to the overview
3. Open payment
3. Process payment
4. Go back
5. ...### One-sentence description
Make it easier to process a payment after accepting registration
### Why?
Easier. Faster.
### Current implementation
1. Accept
2. Go back to the overview
3. Open payment
3. Process payment
4. Go back
5. Go back
### Desired implementation
1. Accept
2. Redirect to the payment detail (or make it optional with an alert)
3. Have the payment return you to the registrations overview.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/692Remove voicemailbox from contact page2018-10-18T11:31:31+02:00Job DoesburgRemove voicemailbox from contact page### One-sentence description
Remove voicemailbox from contact page
### Desired behaviour
The voicemailbox phone number isn't really a thing anymore, so it can be removed from the website.### One-sentence description
Remove voicemailbox from contact page
### Desired behaviour
The voicemailbox phone number isn't really a thing anymore, so it can be removed from the website.https://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/701Squash migrations2019-09-11T20:11:31+02:00Sébastiaan VersteegSquash migrations### One-sentence description
Squash migrations
### Why?
Some apps have really large migration sets, we could decrease the amount of files drastically and make new installs have easier migrations
### Current implementation
Lots of mi...### One-sentence description
Squash migrations
### Why?
Some apps have really large migration sets, we could decrease the amount of files drastically and make new installs have easier migrations
### Current implementation
Lots of migration files
### Desired implementation
Less migration fileshttps://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/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/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/713Migrate to new UI template2018-10-18T13:38:35+02:00Sébastiaan VersteegMigrate to new UI templateBootstrap 4, FontAwesome 4, jQuery 3, FullCalendar 3 etc etc.
Much awesome.
Done:
- [x] activemembers
- [x] announcements (still needs removal of old template)
- [x] documents
- [x] education (remove shortnames using migration)
- [x] ev...Bootstrap 4, FontAwesome 4, jQuery 3, FullCalendar 3 etc etc.
Much awesome.
Done:
- [x] activemembers
- [x] announcements (still needs removal of old template)
- [x] documents
- [x] education (remove shortnames using migration)
- [x] events
- [x] members
- [x] merchandise
- [x] partners (still needs removal of code when removing old template)
- [x] photos
- [x] pizzas
- [x] registrations
- [x] templates
- [x] thabloid
- [x] thaliawebsite
https://gitlab.science.ru.nl/thalia/concrexit/-/issues/715Add note to phone number about reachability2018-10-22T18:52:34+02:00Job DoesburgAdd note to phone number about reachability### One-sentence description
We would like to add a note on the website contact page that we can be reached by phone or in person in the board room on weekdays between 12:15 and 13:30 (or more often if you are lucky). Maybe you can figur...### One-sentence description
We would like to add a note on the website contact page that we can be reached by phone or in person in the board room on weekdays between 12:15 and 13:30 (or more often if you are lucky). Maybe you can figure out a nice way of mentioning this, otherwise we'll think with you ;)
### Why?
So people know when to reach us
### Current implementation
There is no note on the contactpage of the site
### Desired implementation
There is a note on the contactpage of the sitehttps://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/723Replace Highcharts by Chart.js2018-11-14T19:21:31+01:00Sébastiaan VersteegReplace Highcharts by Chart.js### One-sentence description
Replace Highcharts by Chart.js
### Why?
Highcharts is not open source. Only allowed use for non-commercial. Chart.js is MIT licensed.
### Current implementation
Highcharts
### Desired implementation
Ch...### One-sentence description
Replace Highcharts by Chart.js
### Why?
Highcharts is not open source. Only allowed use for non-commercial. Chart.js is MIT licensed.
### Current implementation
Highcharts
### Desired implementation
Chart.jsLuko van der MaasLuko van der Maashttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/724Update Fancybox to version 32018-11-14T18:52:53+01:00Sébastiaan VersteegUpdate Fancybox to version 3### One-sentence description
Update Fancybox to version 3
### Why?
We currently use an old version (2.x). However, this version is licensed under CC BY-NC 3.0. Version 3 is GPLv3 for open source projects only. So I think this can be d...### One-sentence description
Update Fancybox to version 3
### Why?
We currently use an old version (2.x). However, this version is licensed under CC BY-NC 3.0. Version 3 is GPLv3 for open source projects only. So I think this can be done only after fully open sourcing. [Their website](http://fancyapps.com/fancybox/3/#license) is unclear:
> fancybox is licensed under the GPLv3 license for all open source applications.
A commercial license is required for all commercial applications (including sites, themes and apps you plan to sell).
¿Our website is non-commercial but not open source?
### Current implementation
Fancybox 2.x
### Desired implementation
Fancybox 3.x20Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/728Follow-up from "Fix wiki login"2018-10-24T19:26:53+02:00Thom WiggersFollow-up from "Fix wiki login"The following discussion from !992 should be addressed:
- [ ] @twiggers started a [discussion](https://gitlab.science.ru.nl/thalia/concrexit/merge_requests/992#note_55114):
> Perhaps it's a good idea to move the wiki namespace int...The following discussion from !992 should be addressed:
- [ ] @twiggers started a [discussion](https://gitlab.science.ru.nl/thalia/concrexit/merge_requests/992#note_55114):
> Perhaps it's a good idea to move the wiki namespace into groupshttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/730Don't use inline style2019-06-03T17:22:10+02:00Jelle Besselingjelle@pingiun.comDon't use inline style### One-sentence description
thalia.nu uses an inline style attribute to set the header background image, this causes problems when setting the Content-Security-Policy (https://gitlab.science.ru.nl/thalia/serverconfig/merge_requests/380,...### One-sentence description
thalia.nu uses an inline style attribute to set the header background image, this causes problems when setting the Content-Security-Policy (https://gitlab.science.ru.nl/thalia/serverconfig/merge_requests/380, https://gitlab.science.ru.nl/thalia/serverconfig/issues/248)
### Current behaviour
The background header image is set using an inline style attribute, CSP sends a [report](https://sentry.thalia.nu/sentry/content-security-policy-report/issues/103/events/3126/)
### Expected behaviour
Inline style attributes are not used on the thalia website
### Steps to reproduce
1. Go to thalia.nu
2. View CSP reports in network tab
3. Observe that reports are send about the inline style attribute for the background imagehttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/733Move alert to templatetag2018-10-18T15:53:31+02:00Sébastiaan VersteegMove alert to templatetag### One-sentence description
Move alert to templatetag
### Why?
DRY, lots of alerts everywhere we could just easily make it a templatetag.
### Current implementation
Lots of alerts, for example
```
<div class="alert alert-success al...### One-sentence description
Move alert to templatetag
### Why?
DRY, lots of alerts everywhere we could just easily make it a templatetag.
### Current implementation
Lots of alerts, for example
```
<div class="alert alert-success alert-dismissable">
{% trans "Your profile has been updated successfully." %}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
```
### Desired implementation
Put the html in an include and us a templatetag to make this easy to reuse. Could use https://django-bootstrap4.readthedocs.io/en/latest/templatetags.html#bootstrap4.templatetags.bootstrap4.bootstrap_alert, but not sure if we want to rely on this.Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/738Registrations automatically save at approval2018-10-22T18:57:12+02:00Job DoesburgRegistrations automatically save at approval<!--
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
Automatically...<!--
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
Automatically save registrations that are edited when hitting 'approve'
### Why?
Because it is more intuitive
### Current implementation
You first have to save manually and open the registration before you can hit 'approve'
### Suggested implementation
When 'approve' is hit, the altered data is saved automaticallyhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/739Change dropdown menu in front-end for user registration/enrollment with amount2018-11-14T21:53:41+01:00Job DoesburgChange dropdown menu in front-end for user registration/enrollment with amount<!--
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
Display the p...<!--
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
Display the price of membership type in the dropdown menu of front-end registration page.
### Why?
People are lazy. They don't read the whole text and only fill in the form. They select 'study membership' and when they want to pay, they see it is more expensive. That's annoying because you have to change data afterwards (which can't be done a.t.m. after approval).
### Current implementation
The dropdown menu only shows 'one year membership' and 'study membership'
### Suggested implementation
The dropdown menu shows 'one year membership (€ 7,50)' and 'study membership (€ 30,00)'Bart HofmanBart Hofmanhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/741Make payments linkable to registration2018-10-22T19:08:51+02:00Job DoesburgMake payments linkable to registration<!--
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
Make payments...<!--
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
Make payments linkable to registration
### Why?
When checking payments, you can only see a 'payment' object but apart from that they have no real use. However sometimes it really is useful to check all payments done on a certain day.
### Current implementation
The current implementation of payments shows payment objects. However when in a payment object, you can't easily go back to the registration that is connected to the Payment object.
### Suggested implementation
Being able to see the registration that the payment was connected to.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/742Society members front-end link to profilepage2018-10-22T19:07:31+02:00Job DoesburgSociety members front-end link to profilepage<!--
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
Make the link...<!--
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
Make the link from members of a society in the front-end, link to their profile page rather than the society page.
### Why?
It is more intuitive and it works the same way for committee members.
### Current implementation
When you click on a society member in the front-end, you're redirected to the (same) society page.
### Suggested implementation
Be redirected to the member profile pagehttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/745Thalia Identity guidelines applied in Django backend2019-12-04T19:25:32+01:00Job DoesburgThalia Identity guidelines applied in Django backend<!--
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
Thalia Identi...<!--
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
Thalia Identity guidelines applied in Django backend
### Why?
More 'huisstijl' more better
### Current implementation
Thalia admin is ugly blue-ish.
### Suggested implementation
This could be nice magenta #E62272 and black. Just a CSS thingy I think.Job DoesburgJob Doesburghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/746Registration front-end notice for address formatting2018-11-05T11:54:03+01:00Job DoesburgRegistration front-end notice for address formatting<!--
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
Show notice f...<!--
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
Show notice for address formatting on thalia registrations page in front end.
### Why?
For international student from, i.e. Great-Britain, address formatting is weird. They put the house number in front. Now this produces an unclear error message.
### Current implementation
An unclear error message
### Suggested implementation
Either a clear error message (or example how you should format your address), or acceptance of more ways of formatting.Thom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/757Switch to Firebase Admin SDK for push notifications2018-11-28T18:52:23+01:00Sébastiaan VersteegSwitch to Firebase Admin SDK for push notifications### One-sentence description
Switch to Firebase Admin SDK for push notifications
### Why?
Possible deprecation of a used package.
### Current implementation
We're currently using [pyFCM](https://github.com/olucurious/PyFCM/) which i...### One-sentence description
Switch to Firebase Admin SDK for push notifications
### Why?
Possible deprecation of a used package.
### Current implementation
We're currently using [pyFCM](https://github.com/olucurious/PyFCM/) which is using an older version of the Firebase Cloud Messaging APIs. There is a newer API (FCM v1) which has not been implemented.
### Suggested implementation
Use the Firebase Admin SDK to communicate with the Firebase servers and send messages.
https://firebase.google.com/docs/admin/setup
This package is also open source and is maintained by Firebase/Google instead of being a community project.20Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/758Sentry has a new SDK2018-11-29T07:32:39+01:00Thom WiggersSentry has a new SDK<!--
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
Raven is depr...<!--
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
Raven is deprecated and they now have `sentry-sdk`.
https://docs.sentry.io/quickstart?platform=python
https://docs.sentry.io/platforms/python/django/
### Why?
Shiny features probably won't end up in Raven. Also it seems like it's easier to configure.20Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/759Move the events admin views to the admin model2018-11-29T00:04:37+01:00Sébastiaan VersteegMove the events admin views to the admin model### One-sentence description
Move the events admin views to the admin model
### Why?
It improves our codebase
### Current implementation
We have a `admin_views.py` and `admin.py`. The admin views are routed through `urls.py`, not the a...### One-sentence description
Move the events admin views to the admin model
### Why?
It improves our codebase
### Current implementation
We have a `admin_views.py` and `admin.py`. The admin views are routed through `urls.py`, not the admin.
### Suggested implementation
Override the url config of the model admin used for events to add our custom views. Just like here: https://docs.djangoproject.com/en/2.1/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_urls20Sé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/770Push docker images to docker hub2018-12-14T16:08:57+01:00Joren VranckenPush docker images to docker hub<!--
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 p...<!--
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. -->
Push docker images to docker hub
### Why?
<!-- Please motivate why we should invest into this change -->
Two reasons:
* All our other docker images can be found on [Docker Hub](https://hub.docker.com/u/thalia/dashboard/)
* Now we are public, we do not need the authentication of the Gitlab Registry.
### Current implementation
<!-- If relevant, describe how it's done currently -->
We push to the Gitlab registry.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/798latest docker tag is not a stable build2018-12-14T16:43:03+01:00Joren Vranckenlatest docker tag is not a stable build<!--
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 p...<!--
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. -->
The `latest` docker tag should be a stable build.
### Why?
<!-- Please motivate why we should invest into this change -->
The `latest` docker tag is the last pushed commit to any MR. It is better if `latest` is the last stable build (last git tag).
### Current implementation
<!-- If relevant, describe how it's done currently -->
The `latest` docker tag is the last pushed commit.
### Suggested implementation
<!-- Provide (a) suggestion(s) for how we could approach this -->
Only push to `latest` if a git tag is build.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/799Weird text in email after moving from waiting list after unregistration deadl...2019-01-05T19:09:56+01:00Job DoesburgWeird text in email after moving from waiting list after unregistration deadline has passed.<!--
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
Members recei...<!--
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
Members receive a weird email when they move from the waiting list when someone unregistered after the deadline
### Why?
Currently people receive a text saying that if they want, they can unregister via the website until some moment in the past. This is weird. It would be nice to say that 'the unregistration deadline has passed. However if you're not able to come, please contact somebody from the committee or the board asap'.
### Current implementation
An email is sent to people moving from the waiting list, saying that if they want they can unregister until a moment in the past
### Suggested implementation
After the unregistration deadline has passed, mention that they should contact the organizing committee or board.Sébastiaan VersteegSébastiaan Versteeghttps://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 Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/818Remove SECRET_KEY from production.py2019-02-07T16:26:12+01:00Jelle Besselingjelle@pingiun.comRemove SECRET_KEY from production.py<!--
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
Remove defaul...<!--
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
Remove default SECRET_KEY value from production.py settings
### Why?
The SECRET_KEY should always be set in production.py, so it is a better idea to crash when it isn't set, than to use a default nonsecure key.
### Current implementation
A default key is set in production.py. (https://gitlab.science.ru.nl/thalia/concrexit/blob/23b79eb4461ac082a94d7a0c4318c0a848743c67/website/thaliawebsite/settings/production.py#L29)
### Suggested implementation
```python
SECRET_KEY = os.environ.get('DJANGO_SECRET')
```
or, the following, which throws an IndexError when the key isn't present
```python
SECRET_KEY = os.environ.environ['DJANGO_SECRET']
```https://gitlab.science.ru.nl/thalia/concrexit/-/issues/826Follow-up from "Thumbnailing refactor"2019-02-13T19:04:46+01:00Thom WiggersFollow-up from "Thumbnailing refactor"The following discussion from !1155 should be addressed:
- [ ] @jbesseling started a [discussion](https://gitlab.science.ru.nl/thalia/concrexit/merge_requests/1155#note_65798): (+3 comments)
> Wouldn't it be better to add these do...The following discussion from !1155 should be addressed:
- [ ] @jbesseling started a [discussion](https://gitlab.science.ru.nl/thalia/concrexit/merge_requests/1155#note_65798): (+3 comments)
> Wouldn't it be better to add these docs to `docs/utils.media.rst`?Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/829Switch to Poetry2019-02-27T19:29:01+01:00Sébastiaan VersteegSwitch to Poetry<!--
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
Switch to Poetry
### Why?
Because we're hipsters. (no we think it is better)
### Current implementation
Pipenv
### Suggested implementation
PoetryJelle Besselingjelle@pingiun.comJelle Besselingjelle@pingiun.comhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/831Run collectstatic, migrate and compress in entrypoint2019-02-22T17:20:30+01:00Joren VranckenRun collectstatic, migrate and compress in entrypoint<!--
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
<!-- Please provide a brief description of the issue. Don't go into specifics. -->
Run `collectstatic`, `migrate` and `compress` in the Docker entrypoints.
### Why?
<!-- Please motivate why we should invest into this change -->
At the moment they need to be run manually. In #serverconfig we have a bit of [a hacky script](https://gitlab.science.ru.nl/thalia/serverconfig/blob/master/roles/concrexit/templates/migrate.sh.j2) that runs the (using a none production entrypoint) commands.Joren VranckenJoren Vranckenhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/833Replace custom validate_file_extension with built-in FileExtensionValidator2019-03-27T20:30:47+01:00Joren VranckenReplace custom validate_file_extension with built-in FileExtensionValidator<!--
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
<!-- Please provide a brief description of the issue. Don't go into specifics. -->
Replace custom `validate_file_extension` with built-in [`FileExtensionValidator`](https://docs.djangoproject.com/en/2.1/ref/validators/#fileextensionvalidator).
### Why?
<!-- Please motivate why we should invest into this change -->
Less custom code to maintain.https://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/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 Versteeg