concrexit issueshttps://gitlab.science.ru.nl/thalia/concrexit/-/issues2019-04-24T21:25:11+02:00https://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/867Revisit urls schemes2019-10-09T19:02:39+02:00Sébastiaan VersteegRevisit urls schemes### One-sentence description
Revisit urls schemes
### Why?
It's currently a bit messy and not consistent.
### Current implementation
We have one central urls.py for our application in thaliawebsite which decides the namespacing of a...### One-sentence description
Revisit urls schemes
### Why?
It's currently a bit messy and not consistent.
### Current implementation
We have one central urls.py for our application in thaliawebsite which decides the namespacing of all the modules.
### Suggested implementation
The central urls.py only includes the urls.py files of all the packages. These packages are then allowed to fill in their url schemes how they see fit. This allows us to re-use the same namespace in multiple modules and follow the way our menu is structured to decide the full url of a page.
All urls used in the django admin and implemented via the central urls.py (like push notifications and newsletters) should be implemented using the ModelAdmin's `get_urls` method like it was done in registrations and payments.Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/869Improve categories2019-08-28T20:01:52+02:00Sébastiaan VersteegImprove categories### One-sentence description
Improve categories
### Why?
Because it's not really useful right now, everything is marked as 'Other'
### Current implementation
- Drinks
- Activity
- Lunch Lecture
- General Meeting
- Workshop
- Alumni
...### One-sentence description
Improve categories
### Why?
Because it's not really useful right now, everything is marked as 'Other'
### Current implementation
- Drinks
- Activity
- Lunch Lecture
- General Meeting
- Workshop
- Alumni
- Party
- Other
### Suggested implementation
- Alumni (old: Alumni)
- Education (old: Workshop + Lunch Lecture)
- Career (some workshops should go here, manual intervention)
- Leisure (old: Drinks + Party, now also: paintball + lasertag etc)
- Association Affairs (old: GM, now also: SNIC info meeting, board interest meetings) (Verenigingszaken)
- Other (old: Other + Activity)
Important: this requires migrations to changes the categories of existing events to the new ones!26Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/875Use Firebase SDK batch sending2019-08-04T18:46:25+02:00Sébastiaan VersteegUse Firebase SDK batch sending<!--
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. -->
### Why?
Because it wasn't possible before: https://firebase.google.com/support/release-notes/admin/python#version_2170_-_may_23_2019
### Current implementation
No batch sending: https://gitlab.science.ru.nl/thalia/concrexit/blob/master/website/pushnotifications/models.py#L172
### Suggested implementation
Batch sending using the new API.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/876Use aliases instead of aliasses2019-11-27T19:49:53+01:00Joren VranckenUse aliases instead of aliasses<!--
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 "aliasses" with "aliases" in the `mailinglists` app.
### Why?
<!-- Please motivate why we should invest into this change -->
"aliases" is the correct plural of "alias".Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/877Remove vacancy expiration mails2020-02-04T14:40:33+01:00Joren VranckenRemove vacancy expiration mails<!--
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. -->
Remove vacancy expiration mails.
### Why?
<!-- Please motivate why we should invest into this change -->
The vacancy expiration mails are a bit feature creep. They are not really helpful, because the commissioner of external affairs has their own administration with expiration dates (including the vacancies). Furthermore, the emails also don't help because they arrive either too late or too soon. Some partners have a lot longer negotiating time than one month, while others can be handled within a few days.
Besides that, it is also a bit weird that we are only sending mails about vacancies. What about the partner profiles? Why are we not tracking expiration dates for those?
### Suggested implementation
I suggest we remove this functionality altogether which will result in less code to maintain and less useless emails to be sent.26Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/878Remove 'Set all registered to present and paid'2019-08-28T18:56:23+02:00Sébastiaan VersteegRemove 'Set all registered to present and paid'<!--
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
Remove 'Set all registered to present and paid'
### Why?
1. It's broken
2. It assumes that there is one option for the payment which there is not anymore.
### Current implementation
Some.
### Suggested implementation
None.Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/879Update fullcalendar to v42019-06-20T14:16:37+02:00Sébastiaan VersteegUpdate fullcalendar to v4### One-sentence description
Update fullcalendar to v4
### Why?
New version
### Current implementation
v3
### Suggested implementation
v4
https://fullcalendar.io/docs/upgrading-from-v3### One-sentence description
Update fullcalendar to v4
### Why?
New version
### Current implementation
v3
### Suggested implementation
v4
https://fullcalendar.io/docs/upgrading-from-v326Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/896Remove course shorthands2019-08-28T19:01:48+02:00Sébastiaan VersteegRemove course shorthands### One-sentence description
Remove course shorthands
### Why?
Unused keys in the model of courses
### Current implementation
There are fields for shorthands
### Suggested implementation
Remove the fields from the model### One-sentence description
Remove course shorthands
### Why?
Unused keys in the model of courses
### Current implementation
There are fields for shorthands
### Suggested implementation
Remove the fields from the model26Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/914Update placeholder in activemembers2019-10-03T16:37:03+02:00Sébastiaan VersteegUpdate placeholder in activemembers### One-sentence description
Update placeholder in activemembers
### Why?
It's in Dutch
### Current implementation
static/activemembers/images/placeholder.png
### Suggested implementation
<!-- Provide (a) suggestion(s) for how we ...### One-sentence description
Update placeholder in activemembers
### Why?
It's in Dutch
### Current implementation
static/activemembers/images/placeholder.png
### Suggested implementation
<!-- Provide (a) suggestion(s) for how we could approach this -->Job DoesburgJob Doesburghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/942Remove utf-8 coding2019-11-06T21:09:27+01:00Jelle Besselingjelle@pingiun.comRemove utf-8 coding<!--
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
Some files contain the line `# -*- coding: utf-8 -*-`, but this is not needed
<!-- Please provide a brief description of the issue. Don't go into specifics. -->
### Why?
In Python 3 the default encoding of source files is utf-8, and editors will auto detect the encoding.
<!-- Please motivate why we should invest into this change -->
### Current implementation
Some files contain the line `# -*- coding: utf-8 -*-`
<!-- If relevant, describe how it's done currently -->
### Suggested implementation
Remove all `# -*- coding: utf-8 -*-` lines
<!-- Provide (a) suggestion(s) for how we could approach this -->Luna-Elise SchernthanerLuna-Elise Schernthanerhttps://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/957Logging format is not informative2019-11-13T21:56:37+01:00Jelle Besselingjelle@pingiun.comLogging format is not informative### One-sentence description
Both logfile logging and console logging are not very informative, for different reasons.
### Why?
Because `logfile` logging has no format, only the message is printed without any context. `logfile` and `c...### One-sentence description
Both logfile logging and console logging are not very informative, for different reasons.
### Why?
Because `logfile` logging has no format, only the message is printed without any context. `logfile` and `console` could both use the same logging format.
The `%(module)s` logging attribute does not print the fully qualified module name, just the top level name. This would be `urls` for the `education.urls` package. Instead the `%(name)s` attribute could be used, which will give the fully qualified package name when used in conjunction with `logging.getLogger(__name__)` (which we do everywhere already).
Furthermore we could drop `%(process)d` and `%(thread)d`, as we will probably never use those. Lastly, having the log level next to the message would make more sense, as in `INFO The message`, because that seems easier to read.Jelle Besselingjelle@pingiun.comJelle Besselingjelle@pingiun.comhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/959API authentication returns 400 when providing the wrong credentials2019-11-06T20:58:05+01:00Gijs HendriksenAPI authentication returns 400 when providing the wrong credentials<!--
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. -->
The API `/token-auth/` returns a 400 status code when the user passed incorrect credentials, which makes it unclear why the request was denied.
### Why?
<!-- Please motivate why we should invest into this change -->
To make use of the correct HTTP status code, which could clarify the reason an authentication request was denied.
### Current implementation
<!-- If relevant, describe how it's done currently -->
`/token-auth/` returns a 400 when providing incorrect credentials
### Suggested implementation
<!-- Provide (a) suggestion(s) for how we could approach this -->
`/token-auth/` returns a 401(?) when providing incorrect credentialsSimcha van CollemSimcha van Collemhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/961Remove Payment type None2020-03-09T17:59:50+01:00Job DoesburgRemove Payment type None<!--
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
Remove Payment type None
### Why?
It is weird to have payment objects for payments that not yet have taken place. It makes much more sense to just have no payment then.
### Current implementation
For registrations, we now make payments for every accepted registration, and change the type when it really is paid.
### Suggested implementation
Make a payment object upon payment.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/970Update to Django 32020-02-19T20:02:34+01:00Joren VranckenUpdate to Django 3### Description
<!-- Please motivate why we should invest into this change -->
Django 3 has been [released](https://docs.djangoproject.com/en/3.0/releases/3.0/).### Description
<!-- Please motivate why we should invest into this change -->
Django 3 has been [released](https://docs.djangoproject.com/en/3.0/releases/3.0/).https://gitlab.science.ru.nl/thalia/concrexit/-/issues/976Use html email template for all emails we send2020-02-19T21:13:30+01:00Job DoesburgUse html email template for all emails we send### One-sentence description
Use html email template for all emails we send
### Why?
It looks nice
### Current implementation
We only send plaintext mails, except for the information check emails
### Suggested implementation
Use t...### One-sentence description
Use html email template for all emails we send
### Why?
It looks nice
### Current implementation
We only send plaintext mails, except for the information check emails
### Suggested implementation
Use the information check email templatehttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/977Remove obsolete permissions2019-12-04T21:29:10+01:00Sébastiaan VersteegRemove obsolete permissions### One-sentence description
Remove obsolete permissions that are left from removed things
### Why?
They're obsolete!
### Current implementation
We have the sentry backend, access to the board wiki and soon the nextcloud admin permi...### One-sentence description
Remove obsolete permissions that are left from removed things
### Why?
They're obsolete!
### Current implementation
We have the sentry backend, access to the board wiki and soon the nextcloud admin permissions.
### Suggested implementation
Should be removed.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/983Update members translations2020-01-29T21:21:15+01:00Joren VranckenUpdate members translations### One-sentence description
Add the missing translations and update translations with mismatched punctuation/capitals (e.g. "Address:" and "adres") in the members app.### One-sentence description
Add the missing translations and update translations with mismatched punctuation/capitals (e.g. "Address:" and "adres") in the members app.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/985Add link to the G Suite Knowledge Base2020-02-19T19:55:43+01:00Joren VranckenAdd link to the G Suite Knowledge Base<!--
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
Add link to the [G Suite Knowledge Base](https://gsuite.members.thalia.nu/) in the "for members" menu.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/994Improve messages for exam/summary upload2020-01-21T09:03:42+01:00Sébastiaan VersteegImprove messages for exam/summary upload### One-sentence description
Improve messages for exam/summary upload
### Why?
They're unclear?. It does not say that the exam will be added to the approval queue. And that causes confusion because people often upload the document ag...### One-sentence description
Improve messages for exam/summary upload
### Why?
They're unclear?. It does not say that the exam will be added to the approval queue. And that causes confusion because people often upload the document again.
Edit: I did not get any messages at all.
(Maybe we could even make the approval queue crowd sourced so that everyone can approve documents that are not their own? Although that may not work because you can get money for summaries)https://gitlab.science.ru.nl/thalia/concrexit/-/issues/995Deliver sliders or other large images as webp2020-01-15T22:41:46+01:00Jelle Besselingjelle@pingiun.comDeliver sliders or other large images as webp<!--
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
-->
### Why?
According to [Google PageSpeed](https://developers.google.com/speed/pagespeed/insights/?hl=nl&url=thalia.nu&tab=mobile), we can speed up our site by a lot by converting slider images to webp.
<!-- Please motivate why we should invest into this change -->
### Current implementation
Large pictures are all served as png, this is a good image format for things that need to be compressed lossless.
<!-- If relevant, describe how it's done currently -->
### Suggested implementation
Supply images as `<picture>` [with multiple sources](https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images#Use_modern_image_formats_boldly)
<!-- Provide (a) suggestion(s) for how we could approach this -->https://gitlab.science.ru.nl/thalia/concrexit/-/issues/997Review url is not clear from CI logs2020-01-23T19:48:00+01:00Joren VranckenReview url is not clear from CI logs### One-sentence description
Review Host url is not clear from CI logs.
### Current implementation
The username and password are shown to the user, but not the url to the review environment.### One-sentence description
Review Host url is not clear from CI logs.
### Current implementation
The username and password are shown to the user, but not the url to the review environment.Joren VranckenJoren Vranckenhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/1000Internet required to run tests2020-01-26T22:07:58+01:00Joren VranckenInternet required to run tests### Description
Internet required to run tests, because [`activemembers/signals.py` always initializes the G Suite API](https://gitlab.science.ru.nl/thalia/concrexit/blob/master/website/activemembers/signals.py#L15). This is not (and sho...### Description
Internet required to run tests, because [`activemembers/signals.py` always initializes the G Suite API](https://gitlab.science.ru.nl/thalia/concrexit/blob/master/website/activemembers/signals.py#L15). This is not (and should not be) always necessary (e.g. when running tests).https://gitlab.science.ru.nl/thalia/concrexit/-/issues/1009Improve tests for Payments app2020-02-12T20:39:44+01:00Luko van der MaasImprove tests for Payments app### One-sentence description
A lot of tests for payments are either not consistent or do some weird stuff.
### Why?
Better tests helps stability### One-sentence description
A lot of tests for payments are either not consistent or do some weird stuff.
### Why?
Better tests helps stabilitySébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/1010Create Payable interface2020-03-04T19:09:01+01:00Job DoesburgCreate Payable interface### One-sentence description
Create a Payable interface to be used for all models that use Payments
### Why?
To prevent code duplication and improve testing
### Current implementation
Shitty, chaotic, anarchy, tears
### Suggested i...### One-sentence description
Create a Payable interface to be used for all models that use Payments
### Why?
To prevent code duplication and improve testing
### Current implementation
Shitty, chaotic, anarchy, tears
### Suggested implementation
Payable abstract class with `@property @abstractmethod`s:
- `payment_amount` as the amount of the payment
- `payment_topic` as the grouping key for the type of payment (ledger information)
- `payment_notes` for the user specific details
- `payment_payer` for the user paying
Payments must then have a constructor `create_payment` that takes as arguments:
- a `Payable` object
- a payment `processor` that is the person that processes the payment
- the payment `type` being either thalia pay, card, cash or wire transfer (no None anymore!)Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/1011Use create_payment everywhere2020-03-09T17:59:50+01:00Job DoesburgUse create_payment everywhere### One-sentence description
Use create_payment (from #1010 ) everywhere where we use payments
### Why?
Prevent code duplication
### Current implementation
Shitty, chaotic, anarchy, tears
### Suggested implementation
Make models P...### One-sentence description
Use create_payment (from #1010 ) everywhere where we use payments
### Why?
Prevent code duplication
### Current implementation
Shitty, chaotic, anarchy, tears
### Suggested implementation
Make models Payable (implement the interface / abstract class from #1010) and use `create_payment` as the only way to interact with / create payments.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/1013Prevent payment cancellation when payment in batch2020-03-09T17:59:50+01:00Job DoesburgPrevent payment cancellation when payment in batch### One-sentence description
Prevent payment cancellation / changes when payment in batch
### Why?
When a payment is added to a payment batch (#932), it must stay in there and may not be changed or deleted anymore.
### Current implem...### One-sentence description
Prevent payment cancellation / changes when payment in batch
### Why?
When a payment is added to a payment batch (#932), it must stay in there and may not be changed or deleted anymore.
### Current implementation
This might be possible
### Suggested implementationhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/1017Remove redundant html templates from `/thaliawebsite/templates/singlepages/`2020-03-13T16:29:15+01:00Job DoesburgRemove redundant html templates from `/thaliawebsite/templates/singlepages/`<!--
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
Remove redundant html templates from `/thaliawebsite/templates/singlepages/`
### Why?
They are redundant, since they are also in `/singlepages/templates` and these are the ones that are used.
### Current implementation
It appears as if the translations are still in `/thaliawebsite` though, so it would probably be nice to move these.
### Suggested implementationMarthijn van den NieuwenhuizenMarthijn van den Nieuwenhuizenhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/1019Move business logic of notifications out of models2020-02-23T16:30:42+01:00Sébastiaan VersteegMove business logic of notifications out of models<!--
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
Move business logic of notifications out of models
### Why?
Clean up the models
### Current implementation
Code in the models (mostly events)
### Suggested implementation
Use signalsSébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/1020Do not use hardcoded colors for calendar API2020-03-04T17:06:42+01:00Job DoesburgDo not use hardcoded colors for calendar API<!--
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
Do not use hardcoded colors for calendar API in `website/members/api/serializers.py` r42-49 and `website/events/api/serializers.py`
### Why?
We shouldn't hardcode these things at the API level but provide them using CSS.
### Current implementation
The API provides a `backgroundColor` and `textColor` in the event sources APIs that is used by FullCalendar via https://fullcalendar.io/docs/events-json-feed. Every item in the feed is an event source object: https://fullcalendar.io/docs/event-source-object.
### Suggested implementation
Provide a `className` attribute instead and determine the background color and text color based on the class using CSS.Marthijn van den NieuwenhuizenMarthijn van den Nieuwenhuizenhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/1021Replace Docker image used by Renovate2020-02-28T12:09:51+01:00Joren VranckenReplace Docker image used by Renovate### One-sentence description
Replace Docker image used by Renovate.
### Why?
Apparently Renovate still uses [`thalia/python-thalia`](https://hub.docker.com/r/thalia/python-thalia). `thalia/python-thalia` is outdated and not automaticall...### One-sentence description
Replace Docker image used by Renovate.
### Why?
Apparently Renovate still uses [`thalia/python-thalia`](https://hub.docker.com/r/thalia/python-thalia). `thalia/python-thalia` is outdated and not automatically updated.
### Suggested implementation
Either [`renovate/python`](https://hub.docker.com/r/renovate/python) or [`thalia/concrexit-dependencies`](https://hub.docker.com/r/thalia/concrexit-dependencies).https://gitlab.science.ru.nl/thalia/concrexit/-/issues/1022Add wiki page about Renovate2020-02-28T12:10:47+01:00Joren VranckenAdd wiki page about Renovate### One-sentence description
Add wiki page about Renovate.
### Why?
It is important to have documentation about the third-party applications we use.### One-sentence description
Add wiki page about Renovate.
### Why?
It is important to have documentation about the third-party applications we use.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/1023Add wiki page about Concrexit Docker images2020-02-29T11:43:48+01:00Joren VranckenAdd wiki page about Concrexit Docker images### One-sentence description
Explain how the current Concrexit Docker images are built and what they are used for.### One-sentence description
Explain how the current Concrexit Docker images are built and what they are used for.Joren VranckenJoren Vranckenhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/1034Missing singlepages translations2020-03-13T16:29:15+01:00Joren VranckenMissing singlepages translations### Description
Add all missing singlepages translations.
After I run `../manage.py makemessages --locale nl --no-obsolete` in `website/singlepages` 170+ translations seem to be missing.### Description
Add all missing singlepages translations.
After I run `../manage.py makemessages --locale nl --no-obsolete` in `website/singlepages` 170+ translations seem to be missing.