concrexit issueshttps://gitlab.science.ru.nl/thalia/concrexit/-/issues2020-03-13T16:29:15+01:00https://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.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/1033AttributeError: 'NoneType' object has no attribute 'is_authenticated'2020-03-11T23:05:04+01:00Thalia TechnicieAttributeError: 'NoneType' object has no attribute 'is_authenticated'Sentry Issue: [CONCREXIT-2A](https://sentry.io/organizations/thalia/issues/1560438241/?referrer=gitlab_integration)
```
AttributeError: 'NoneType' object has no attribute 'is_authenticated'
(14 additional frame(s) were not displayed)
.....Sentry Issue: [CONCREXIT-2A](https://sentry.io/organizations/thalia/issues/1560438241/?referrer=gitlab_integration)
```
AttributeError: 'NoneType' object has no attribute 'is_authenticated'
(14 additional frame(s) were not displayed)
...
File "rest_framework/serializers.py", line 529, in to_representation
ret[field.field_name] = field.to_representation(attribute)
File "rest_framework/fields.py", line 1905, in to_representation
return method(value)
File "events/api/serializers.py", line 86, in _class_names
if services.is_user_registered(self.context["member"], instance):
File "events/services.py", line 24, in is_user_registered
if not event.registration_required or not member.is_authenticated:
File "django/utils/functional.py", line 225, in inner
return func(self._wrapped, *args)
```https://gitlab.science.ru.nl/thalia/concrexit/-/issues/1032Think of a way to improve partner logo's in dark mode2020-03-11T21:19:39+01:00Job DoesburgThink of a way to improve partner logo's in dark mode<!--
You want something new.
-->
### One-sentence description
Think of a way to improve partner logo's in dark mode
### Motivation
With current dark mode, some partner logo's look a bit weird
### Desired functionality
They shou...<!--
You want something new.
-->
### One-sentence description
Think of a way to improve partner logo's in dark mode
### Motivation
With current dark mode, some partner logo's look a bit weird
### Desired functionality
They should look good both in dark mode and light mode.
**Both in the banner, and in the vacancy pages**
### Suggested implementation
It is hard to do this correctly for all logo's. One way is to add a css filter in dark mode that makes the logo's more white. Another way could be to just support a dark mode and light mode logo.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/1031Topic should be visible in https://thalia.nu/user/finance/payments/2020-03-11T23:54:58+01:00Job DoesburgTopic should be visible in https://thalia.nu/user/finance/payments/### One-sentence description
Topic should be visible in https://thalia.nu/user/finance/payments/
### Current behaviour / Reproducing the bug
The topic field is not visible
### Expected behaviour
Be visible### One-sentence description
Topic should be visible in https://thalia.nu/user/finance/payments/
### Current behaviour / Reproducing the bug
The topic field is not visible
### Expected behaviour
Be visiblehttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/1030Dark mode in newsletter2020-03-12T00:03:20+01:00Job DoesburgDark mode in newsletter### One-sentence description
Dark mode in newsletter
### Motivation
More dark is more better
### Desired functionality
A dark mode in newsletters, just as in the regular site
### Suggested implementation
Use the same stylesheets (...### One-sentence description
Dark mode in newsletter
### Motivation
More dark is more better
### Desired functionality
A dark mode in newsletters, just as in the regular site
### Suggested implementation
Use the same stylesheets (and svg images as well for that matter)https://gitlab.science.ru.nl/thalia/concrexit/-/issues/1029Payment fields not translated in admin2020-03-11T19:53:43+01:00Job DoesburgPayment fields not translated in admin### One-sentence description
Payment fields not translated in admin
### Current behaviour / Reproducing the bug
At (staging.)thalia.nu/admin/payments/payment/*/change, the field names are not translated
### Expected behaviour
They ...### One-sentence description
Payment fields not translated in admin
### Current behaviour / Reproducing the bug
At (staging.)thalia.nu/admin/payments/payment/*/change, the field names are not translated
### Expected behaviour
They should be translatedhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/1028Original images in photo albums are saved and downloaded2020-03-11T23:56:39+01:00Gijs HendriksenOriginal images in photo albums are saved and downloaded### One-sentence description
<!-- What breaks -->
When downloading a photo album, both the original and downscaled images are downloaded, even though we're not supposed to save the original image.
### Current behaviour / Reproducing t...### One-sentence description
<!-- What breaks -->
When downloading a photo album, both the original and downscaled images are downloaded, even though we're not supposed to save the original image.
### Current behaviour / Reproducing the bug
<!-- Please write what is happening and how we could reproduce it, if relevant -->
1. Download a photo album
2. Notice the original images are saved and included in the album (`*.JPG`), alongside the downscaled images (`*.jpg`)
### Expected behaviour
<!-- Please write how what happened did not meet your expectations -->
1. Download a photo album
2. Only the downscaled images are saved and includedhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/1027Website starts up in the wrong language2020-03-09T15:45:44+01:00Leon van den BoogaardWebsite starts up in the wrong language<!--
You want something new.
-->
### One-sentence description
<!-- What do you want? -->
To have a language preference in your profile so that the website starts up in your prefered language
<!-- Why should we care? -->
Every ti...<!--
You want something new.
-->
### One-sentence description
<!-- What do you want? -->
To have a language preference in your profile so that the website starts up in your prefered language
<!-- Why should we care? -->
Every time I start up the website or click on a link in the newsletter it starts up in English. I don't speak English so I would like it to start up in Dutch.
<!--
What we should support.
Please provide this in general terms, if possible.
You can provide suggestions on how to implement this later.
We like high-level descriptions as those allow us to better consider
the desired result. Assumptions on how the site works don't
necessarily match how we implemented certain things.
-->
Have a cookie or something with a long time to live so that we shouldn't click on the flag every time we use the website
<!--
If you have any notes on how we could achieve this feature,
share them here.
-->
Cookies
Thank you in advance!
Love you!https://gitlab.science.ru.nl/thalia/concrexit/-/issues/1025ValueError: day is out of range for month2020-03-04T20:22:40+01:00Thalia TechnicieValueError: day is out of range for monthSentry Issue: [CONCREXIT-24](https://sentry.io/organizations/thalia/issues/1538288408/?referrer=gitlab_integration)
```
ValueError: day is out of range for month
(11 additional frame(s) were not displayed)
...
File "rest_framework/ser...Sentry Issue: [CONCREXIT-24](https://sentry.io/organizations/thalia/issues/1538288408/?referrer=gitlab_integration)
```
ValueError: day is out of range for month
(11 additional frame(s) were not displayed)
...
File "rest_framework/serializers.py", line 260, in data
self._data = self.to_representation(self.instance)
File "rest_framework/serializers.py", line 529, in to_representation
ret[field.field_name] = field.to_representation(attribute)
File "rest_framework/fields.py", line 1905, in to_representation
return method(value)
File "members/api/serializers.py", line 93, in _achievements
return member_achievements(instance.user)
File "members/services.py", line 72, in member_achievements
earliest = earliest.replace(year=earliest.year + mentor_year.year)
```Marie SimonMarie Simonhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/1024ProgrammingError: more than one row returned by a subquery used as an expression2020-03-01T16:38:36+01:00Thalia TechnicieProgrammingError: more than one row returned by a subquery used as an expressionSentry Issue: [CONCREXIT-27](https://sentry.io/organizations/thalia/issues/1540717591/?referrer=gitlab_integration)
```
CardinalityViolation: more than one row returned by a subquery used as an expression
File "django/db/backends/uti...Sentry Issue: [CONCREXIT-27](https://sentry.io/organizations/thalia/issues/1540717591/?referrer=gitlab_integration)
```
CardinalityViolation: more than one row returned by a subquery used as an expression
File "django/db/backends/utils.py", line 86, in _execute
return self.cursor.execute(sql, params)
ProgrammingError: more than one row returned by a subquery used as an expression
(11 additional frame(s) were not displayed)
...
File "django/db/backends/utils.py", line 68, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "django/db/backends/utils.py", line 77, in _execute_with_wrappers
return executor(sql, params, many, context)
File "django/db/backends/utils.py", line 86, in _execute
return self.cursor.execute(sql, params)
File "django/db/utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "django/db/backends/utils.py", line 86, in _execute
return self.cursor.execute(sql, params)
```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/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/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/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/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/1016Event looks like registered for though on waiting list2020-02-17T21:55:37+01:00Job DoesburgEvent looks like registered for though on waiting list### One-sentence description
When on the waiting list for an event, it still looks like you are registered for that event.
### Current behaviour / Reproducing the bug
- In the calendar stream, the event does appear in your calendar
- ...### One-sentence description
When on the waiting list for an event, it still looks like you are registered for that event.
### Current behaviour / Reproducing the bug
- In the calendar stream, the event does appear in your calendar
- Cancelling your registration does show the warning that you have to pay a fine, if after the unregistration deadline
- In the event overview calendar, the dot in front of the event is colored as if you are registered.
### Expected behaviour
- Do not appear in the calendar stream
- Do not show a message that you cannot unregister without having to pay a fine, but something different more fit to the situation
- In the event overview, show some other, pending-ish, colored dot.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/1014Add weekday to newsletter events2020-03-09T22:45:22+01:00Wouter DoelandAdd weekday to newsletter eventsIn the current newsletter, there is only a date and time next to the event. It would be nice if there also was a (week)day there, because most people plan activities based on what day they are.
### One-sentence description
Add the even...In the current newsletter, there is only a date and time next to the event. It would be nice if there also was a (week)day there, because most people plan activities based on what day they are.
### One-sentence description
Add the event day to events in the newsletter.
### Motivation
This change would make it more easy to plan events if you just read the newsletter from time to time.
### Desired functionality
Add the (week)day to the event info in the newsletter.
### Suggested implementation
WHERE
HG00.307
WHEN
Feb. 11, 2020, 12:15 p.m. - 13:15
PRICE
Free
->
WHERE
HG00.307
WHEN
Tue, Feb. 11, 2020, 12:15 p.m. - 13:15
PRICE
FreeWouter DoelandWouter Doelandhttps://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/1012Export payment batch per topic / event2020-02-12T20:42:04+01:00Job DoesburgExport payment batch per topic / event### One-sentence description
Export payment batch per topic / event
### Motivation
Required for bookkeeping of Thalia Pay
### Desired functionality
Use the `payment_topic` from Payments, provided by `Payable` models
### Suggested i...### One-sentence description
Export payment batch per topic / event
### Motivation
Required for bookkeeping of Thalia Pay
### Desired functionality
Use the `payment_topic` from Payments, provided by `Payable` models
### Suggested implementation
Extend #932 with a second way of exportinghttps://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.