concrexit issueshttps://gitlab.science.ru.nl/thalia/concrexit/-/issues2019-05-15T19:55:26+02:00https://gitlab.science.ru.nl/thalia/concrexit/-/issues/371Newsletter ordering only possible for info or events seperately2019-05-15T19:55:26+02:00Luuk ScholtenNewsletter ordering only possible for info or events seperately### One-sentence description
Newsletter ordering only possible for info or events seperately
### Current behaviour / Reproducing the bug
1. Add a newsletter
2. Add content and events
3. Try to mix them in the order
4. No mixing in the...### One-sentence description
Newsletter ordering only possible for info or events seperately
### Current behaviour / Reproducing the bug
1. Add a newsletter
2. Add content and events
3. Try to mix them in the order
4. No mixing in the result
### Expected behaviour
1. Add a newsletter
2. Add content and events
3. Try to mix them in the order
4. Result is correcthttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/353Probleem uploaden foto's2017-05-10T20:34:23+02:00Sébastiaan VersteegProbleem uploaden foto'sBij het uploaden van foto's krijgen meerdere leden van de paparazcie de melding 'Please upload a valid zip or tar file'. Nu kan ik niet helemaal voorstellen waar het foutgaat, want ik kan het zelf namelijk wel doen met (als het goed is) ...Bij het uploaden van foto's krijgen meerdere leden van de paparazcie de melding 'Please upload a valid zip or tar file'. Nu kan ik niet helemaal voorstellen waar het foutgaat, want ik kan het zelf namelijk wel doen met (als het goed is) hetzelfde zip-bestand. Dit is nu al twee keer voorgekomen en dus vraag ik me af wat er precies fout kan gaan.
Iemand enig idee?Tom van BusselTom van Busselhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/417Lidmaatschapsdata van een commissie kunnen buiten het bestaan van een commiss...2017-12-10T21:12:51+01:00Thom WiggersLidmaatschapsdata van een commissie kunnen buiten het bestaan van een commissie vallen**[bug]**
### One-sentence description
Lidmaatschapsdata van een commissie kunnen buiten het bestaan van een commissie vallen
### Current behaviour
Als je een commissielid bewerkt, kan die lid zijn van een commissie die volgens de dat...**[bug]**
### One-sentence description
Lidmaatschapsdata van een commissie kunnen buiten het bestaan van een commissie vallen
### Current behaviour
Als je een commissielid bewerkt, kan die lid zijn van een commissie die volgens de data op de website toen niet bestond.
### Expected behaviour
Dat zou niet mogen.
### Steps to reproduce
1. Maak een commissie die bestaat tot gisteren
2. Maak iemand vanaf vandaag lid van de commissie
3. dat werkt.Bram in 't ZandtBram in 't Zandthttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/301Foto's die stuk zijn fixen2017-12-10T21:11:33+01:00Thom WiggersFoto's die stuk zijn fixen* [ ] `2015-07-03-eos-feest/album_20150703_EOS_feestIMG_1513.JPG`
* [ ] `2015-07-03-eos-feest/album_20150703_EOS_feestIMG_1505.JPG`
* [ ] `2015-07-03-eos-feest/album_20150703_EOS_feestIMG_1642.JPG`* [ ] `2015-07-03-eos-feest/album_20150703_EOS_feestIMG_1513.JPG`
* [ ] `2015-07-03-eos-feest/album_20150703_EOS_feestIMG_1505.JPG`
* [ ] `2015-07-03-eos-feest/album_20150703_EOS_feestIMG_1642.JPG`https://gitlab.science.ru.nl/thalia/concrexit/-/issues/137Agenda: pijltjes in lijstweergave2018-10-03T19:52:54+02:00Ghost UserAgenda: pijltjes in lijstweergave### One-sentence description
Agenda: pijltjes in lijstweergave
### Current behaviour
Vaak klikken
### Expected behaviour
Niet vaak klikken, dus de pijltjes moeten gewoon weg.
### Steps to reproduce
1. Ga naar de agenda in lijstwee...### One-sentence description
Agenda: pijltjes in lijstweergave
### Current behaviour
Vaak klikken
### Expected behaviour
Niet vaak klikken, dus de pijltjes moeten gewoon weg.
### Steps to reproduce
1. Ga naar de agenda in lijstweergave
Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/312Downloaden volledige fotoalbums werkt niet2017-12-10T21:11:35+01:00Tom van BusselDownloaden volledige fotoalbums werkt nietAls ik probeer om een willekeurig fotoalbum volledig te downloaden krijg ik een 404 (en niet eens een leuk Youtube filmpje).Als ik probeer om een willekeurig fotoalbum volledig te downloaden krijg ik een 404 (en niet eens een leuk Youtube filmpje).https://gitlab.science.ru.nl/thalia/concrexit/-/issues/405Commissielidmaatschap zonder `member`?2017-12-10T21:11:16+01:00Joost Rijneveldjoost@joostrijneveld.nlCommissielidmaatschap zonder `member`?We ontvingen een mailtje van @yaarts dat 'ie probeerde iemand voorzitter te maken van een commissie precies op 't moment dat we de onderstaande error logde;
```
ERROR (EXTERNAL IP): Internal Server Error: /admin/activemembers/committ...We ontvingen een mailtje van @yaarts dat 'ie probeerde iemand voorzitter te maken van een commissie precies op 't moment dat we de onderstaande error logde;
```
ERROR (EXTERNAL IP): Internal Server Error: /admin/activemembers/committee/31/change/
Internal Server Error: /admin/activemembers/committee/31/change/
RelatedObjectDoesNotExist at /admin/activemembers/committee/31/change/
CommitteeMembership has no member.
[knip (zie #django-errors voor volledige traceback)]
File "./activemembers/models.py" in validate_unique
266. member=self.member))
```
Vreemd genoeg slaagde een tweede poging wel.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/394Shared thumbnails are never created2018-10-14T20:22:23+02:00Thom WiggersShared thumbnails are never createdAls je een album shareable maakt, werkt thumbnail-generatie niet meer. Dat levert op dat je dus gebroken thumbnails krijgt voor thumbnails _die nog niet gemaakt zijn_.Als je een album shareable maakt, werkt thumbnail-generatie niet meer. Dat levert op dat je dus gebroken thumbnails krijgt voor thumbnails _die nog niet gemaakt zijn_.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/415Besturen maken en bewerken is defect als er geen einddatum is ingevuld2017-12-10T21:29:47+01:00Thom WiggersBesturen maken en bewerken is defect als er geen einddatum is ingevuld**[bug]**
### One-sentence description
Het maken van besturen is stuk als je geen einddatum invult, `validate_unique` kan niet handelen dat `until` `None` is.
### Current behaviour
Crash
### Expected behaviour
Gemaakt bestuu...**[bug]**
### One-sentence description
Het maken van besturen is stuk als je geen einddatum invult, `validate_unique` kan niet handelen dat `until` `None` is.
### Current behaviour
Crash
### Expected behaviour
Gemaakt bestuur
### Steps to reproduce
1. Probeer een bestuur te maken met alleen een begindatum of geen van beide
2. Huil.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/416Board membership cannot have end dates2019-04-12T23:42:09+02:00Thom WiggersBoard membership cannot have end dates### One-sentence description
Board members are currently not allowed to have an end date for their group membership even though we might want them to have one. Examples are the boards of 2012-2013 and 2017-2018.
### Current behaviour
1...### One-sentence description
Board members are currently not allowed to have an end date for their group membership even though we might want them to have one. Examples are the boards of 2012-2013 and 2017-2018.
### Current behaviour
1. Try to enter an end date for a board membership.
2. Does not work
### Expected behaviour
Should workTobias van der WerffTobias van der Werffhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/418Profiel pagina gebruikt user id als member id2017-12-10T21:29:48+01:00Thom WiggersProfiel pagina gebruikt user id als member id**[bug]**
### One-sentence description
Als de user id en de member-id niet overeen komen wordt de verkeerde gebruiker weergegeven
### Current behaviour
De userid (zoals in de link van de 'view profile' link onder `/account/`) wordt geb...**[bug]**
### One-sentence description
Als de user id en de member-id niet overeen komen wordt de verkeerde gebruiker weergegeven
### Current behaviour
De userid (zoals in de link van de 'view profile' link onder `/account/`) wordt gebruikt voor links, maar vervolgens ga je naar `/members/profile/1/` en die levert de **Member** met `pk=1` op.
### Expected behaviour
Be consistent, use the user id.
### Steps to reproduce
0. Create some users with member-information, make sure their IDs **do not** match
1. Go to `/account/`
2. Click "View public profile"
3. See a *different* profile.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/419Tekst bij event als je op de wachtlijst staat is verwarrend2017-05-03T20:06:33+02:00Sébastiaan VersteegTekst bij event als je op de wachtlijst staat is verwarrend### One-sentence description
Verwarrende tekst als je op de wachtlijst staat.
### Current behaviour
De tekst is 'Afmelden is niet meer mogelijk zonder de volledige kosten van €5,00 te betalen. Let op: je kunt je hierna niet meer aanme...### One-sentence description
Verwarrende tekst als je op de wachtlijst staat.
### Current behaviour
De tekst is 'Afmelden is niet meer mogelijk zonder de volledige kosten van €5,00 te betalen. Let op: je kunt je hierna niet meer aanmelden.' en dat is verwarrend.
### Expected behaviour
Deze tekst moet niet getoond worden want hij is niet van toepassing.
### Steps to reproduce
1. Zet jezelf op de wachtlijst voor een evenement
2. Zorg dat de cancel deadline is verlopen
3. Zie de teksthttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/421Foto's vergroot weergeven gedeeld album2017-05-10T20:51:40+02:00Frank GerlingsFoto's vergroot weergeven gedeeld album### One-sentence description
Foto's groot weergeven bij gedeeld album gaat niet.
### Current behaviour
Bij zowel de "open" als de Thalia-eigen versie van het ouderdagfotoalbum geeft het klikken op een foto de volgende foutmelding:
![...### One-sentence description
Foto's groot weergeven bij gedeeld album gaat niet.
### Current behaviour
Bij zowel de "open" als de Thalia-eigen versie van het ouderdagfotoalbum geeft het klikken op een foto de volgende foutmelding:
![2017-04-29-154813_822x389_scrot](/uploads/319664c7a84f1bd9b6e3786f71d3c546/2017-04-29-154813_822x389_scrot.png)
![2017-04-29-154759_850x390_scrot](/uploads/557b7bd01a4a31bf2cfc2d4bc7c9af71/2017-04-29-154759_850x390_scrot.png)
### Expected behaviour
Bij het klikken op een foto een vergrootte weergave als pop-up tonen.
### Steps to reproduce
1. Het fotoalbum van de ouderdag
2. Klik op een foto
3. Krijg foutmeldinghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/423HTML characters not escaped properly in vacancies2017-12-10T21:29:49+01:00Milan van StiphoutHTML characters not escaped properly in vacancies### One-sentence description
&nbsp's are visible in vacancies.
### Current behaviour
See above.
### Expected behaviour
Not showing &nbsp's.
### Steps to reproduce
1. visit https://thalia.nu/career/vacancies
2. Ctrl+F "nbsp"### One-sentence description
 's are visible in vacancies.
### Current behaviour
See above.
### Expected behaviour
Not showing  's.
### Steps to reproduce
1. visit https://thalia.nu/career/vacancies
2. Ctrl+F "nbsp"https://gitlab.science.ru.nl/thalia/concrexit/-/issues/329ALVs van jaartallen uit de dropdown worden niet geladen2017-12-10T21:29:45+01:00Joost Rijneveldjoost@joostrijneveld.nlALVs van jaartallen uit de dropdown worden niet geladenZe bestaan wel, maar er lijkt iets AJAX-achtigs fout te gaan.Ze bestaan wel, maar er lijkt iets AJAX-achtigs fout te gaan.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/328ALV-documenten-viewer default op 2017-2018 in februari2017-12-10T21:29:44+01:00Joost Rijneveldjoost@joostrijneveld.nlALV-documenten-viewer default op 2017-2018 in februariHet nieuwe collegejaar is nog niet begonnen, maar de documenten-viewer geeft al wel aan dat er in dat jaar nog geen ALV's hebben plaatsgevonden. Dat lijkt een beetje te enthousiast. Wellicht gebruik maken van de functies rondom 'welk col...Het nieuwe collegejaar is nog niet begonnen, maar de documenten-viewer geeft al wel aan dat er in dat jaar nog geen ALV's hebben plaatsgevonden. Dat lijkt een beetje te enthousiast. Wellicht gebruik maken van de functies rondom 'welk collegejaar is het' ipv 'welk jaar is het'https://gitlab.science.ru.nl/thalia/concrexit/-/issues/425Meerdere albums kunnen dezelfde slug hebben2017-12-10T21:11:17+01:00Tom van BusselMeerdere albums kunnen dezelfde slug hebben### One-sentence description
Meerdere albums met dezelfde slug kunnen aangemaakt worden.
### Current behaviour
Als je een album aanmaakt met een slug die al door een ander album gebruikt wordt, zijn er twee albums met dezelfde slug. A...### One-sentence description
Meerdere albums met dezelfde slug kunnen aangemaakt worden.
### Current behaviour
Als je een album aanmaakt met een slug die al door een ander album gebruikt wordt, zijn er twee albums met dezelfde slug. Als je vervolgens naar de pagina van het album gaat (op de website, niet in de admin-panel) krijg je een ``MultipleObjectsReturned`` error.
### Expected behaviour
De admin panel zou een error moeten geven als een album met een al gebruikte slug wordt geüpload.
### Steps to reproduce
1. Upload een album met de slug "henk".
2. Upload nog een album met de slug "henk".
3. Ga naar foto's pagina en selecteer een van de twee albums met de slug "henk".
???
4. ErrorTom van BusselTom van Busselhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/428Photo gallery previews are not resized correctly2017-12-10T21:11:17+01:00Sébastiaan VersteegPhoto gallery previews are not resized correctly### One-sentence description
Photo gallery previews are not resized correctly
### Current behaviour
![Screen_Shot_2017-05-04_at_11.27.12](/uploads/bc60426ffe2534499a5cf5b6ade0de7b/Screen_Shot_2017-05-04_at_11.27.12.png)
### Expected ...### One-sentence description
Photo gallery previews are not resized correctly
### Current behaviour
![Screen_Shot_2017-05-04_at_11.27.12](/uploads/bc60426ffe2534499a5cf5b6ade0de7b/Screen_Shot_2017-05-04_at_11.27.12.png)
### Expected behaviour
![Screen_Shot_2017-05-04_at_11.55.08](/uploads/fa5b7567885f164a3cc92a9eda8be07f/Screen_Shot_2017-05-04_at_11.55.08.png)
### Steps to reproduce
1. Upload 1024h768w photo
2. Look up 1024w768h thumbnail.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/435Event dates are missing from plaintext newsletter2017-06-01T12:34:11+02:00Sébastiaan VersteegEvent dates are missing from plaintext newsletter### One-sentence description
Event dates are missing from plaintext newsletter
### Current behaviour
All places where a date should be in the text there is nothing.
### Expected behaviour
There should be dates
### Steps to reproduc...### One-sentence description
Event dates are missing from plaintext newsletter
### Current behaviour
All places where a date should be in the text there is nothing.
### Expected behaviour
There should be dates
### Steps to reproduce
1. Send and receive a newsletter
2. Look at the plaintext versionhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/439Former members are listed confusingly in a committee's admin2018-01-17T20:01:39+01:00Thom WiggersFormer members are listed confusingly in a committee's admin### One-sentence description
The committee pages should only list current members
### Current behaviour
Current and former members are listed, which may be confusing.
### Expected behaviour
Only list current members.
##...### One-sentence description
The committee pages should only list current members
### Current behaviour
Current and former members are listed, which may be confusing.
### Expected behaviour
Only list current members.
### Steps to reproduce
1. View a committee with former and current members in the admin
2. See all of themSébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/440First vacancy square too big on the partners page2018-01-09T08:53:12+01:00Joren VranckenFirst vacancy square too big on the partners page### One-sentence description
On mobile the square surrounding the first vacancy on the [partner page](https://thalia.nu/career/) is too big and covers up the main partner.
### Current behaviour
![2017-05-27_548x845](/uploads/bf2d87218a3...### One-sentence description
On mobile the square surrounding the first vacancy on the [partner page](https://thalia.nu/career/) is too big and covers up the main partner.
### Current behaviour
![2017-05-27_548x845](/uploads/bf2d87218a36a5e3772501cfb054ce7c/2017-05-27_548x845.png)
The information about the main partner is covered up by the square of the first vacancy.
### Expected behaviour
Each vacancy is surrounded by a square and does not cover any text.
### Steps to reproduce
1. Go to the [partners page](https://thalia.nu/career/) on mobile.
2. Observe that the main sponsor is not shown anymore and the first vacancy square is too big.1.12https://gitlab.science.ru.nl/thalia/concrexit/-/issues/443Events api for calendarjs no longer accisible for unauthorized users2017-12-10T21:29:25+01:00Luuk ScholtenEvents api for calendarjs no longer accisible for unauthorized users### One-sentence description
Unauthorized users can no longer execute api call to calendarjs api.
### Current behaviour
There are no more events on the calendar if you are not authenticated. This is because the api results in a 403.
##...### One-sentence description
Unauthorized users can no longer execute api call to calendarjs api.
### Current behaviour
There are no more events on the calendar if you are not authenticated. This is because the api results in a 403.
### Expected behaviour
There should be events on the calendar if you are not authenticated
### Steps to reproduce
1. Go to `beta.thalia.nu`
2. Go to calender
3. Open the developer console
4. See that the api results in a 403https://gitlab.science.ru.nl/thalia/concrexit/-/issues/446&nbsp ipv een spatie bij aankomende evenementen2017-07-05T19:24:09+02:00Ghost User  ipv een spatie bij aankomende evenementen### One-sentence description
Er staat ` ` in plaats van een spatie in het tekstblokje wat de tekst van het evenement laat zien. Op de pagina van het evenement zelf is het echter wel een spatie zoals hieronder te zien.
![Screensh...### One-sentence description
Er staat ` ` in plaats van een spatie in het tekstblokje wat de tekst van het evenement laat zien. Op de pagina van het evenement zelf is het echter wel een spatie zoals hieronder te zien.
![Screenshot_4](/uploads/5cd7d4fa54e046c095e260252091058f/Screenshot_4.png)
### Current behaviour
Er staat ` ` bij ALV;
![Screenshot_2](/uploads/1b971d25e160d963f1dfa38910851057/Screenshot_2.png)
Ook op de Engelse pagina bij end of semester party:
![Screenshot_3](/uploads/f3495e88985d598f09b08c5728b7782e/Screenshot_3.png)
### Expected behaviour
Ik zou er graag een spatie zien staan
### Steps to reproduce
1. Open thalia.nu
2. Scroll naar beneden naar "Aankomende evenementen"
https://gitlab.science.ru.nl/thalia/concrexit/-/issues/447Send queue mail wordt verzonden als iemand op de wachtrij zich afmeldt2017-07-05T19:24:09+02:00Sietse MoorenSend queue mail wordt verzonden als iemand op de wachtrij zich afmeldt### One-sentence description
Send queue mail wordt verzonden als iemand op de wachtrij zich afmeldt
### Current behaviour
Als iemand in de wachtrij zichzelf er vanaf haalt wordt `_send_queue_mail` nog steeds uitgevoerd
### Expe...### One-sentence description
Send queue mail wordt verzonden als iemand op de wachtrij zich afmeldt
### Current behaviour
Als iemand in de wachtrij zichzelf er vanaf haalt wordt `_send_queue_mail` nog steeds uitgevoerd
### Expected behaviour
Als iemand in de wachtrij zichzelf er vanaf haalt wordt er geen mail verstuurd
### Steps to reproduce
1. Maak een event met max participants
2. Voeg aantal registrations toe
3. Cancel registration in de frontend van een van de gebruikers
4. Zie verzonden mail
### Original text
Je krijgt een mail dat je in de wachtlijst stond maar nu mag gaan. Als je vervolgens naar de link gaat die in de mail staat sta je nog steeds in de wachtrij. Wat moet ik nu geloven.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/448Off-by-one in `_send_queue_mail(event)`2017-12-10T21:29:26+01:00Sébastiaan VersteegOff-by-one in `_send_queue_mail(event)`### One-sentence description
Off-by-one in `_send_queue_mail(event)`
### Current behaviour
We sturen nu een mailtje naar de persoon die na het cancellen als eerste in de wachtrij staat, maar we moeten een mailtje sturen naar de persoo...### One-sentence description
Off-by-one in `_send_queue_mail(event)`
### Current behaviour
We sturen nu een mailtje naar de persoon die na het cancellen als eerste in de wachtrij staat, maar we moeten een mailtje sturen naar de persoon die voor het cancellen als eerste in de wachtrij staat.
### Expected behaviour
We moeten een mailtje sturen naar de persoon die voor het cancellen als eerste in de wachtrij staat.
### Steps to reproduce
1. Create event, add registrations
2. Cancel registration in frontend
### How to fix
In `_registration_cancel` moeten we eerst `_send_queue_mail(event)` doen, en dan pas de `reg.date_cancelled` op `timezone.now()` zetten.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/452Valideer dat mensen met automatische incasso een IBAN hebben2017-11-22T15:51:50+01:00Joost Rijneveldjoost@joostrijneveld.nlValideer dat mensen met automatische incasso een IBAN hebben### One-sentence description
A member can now be set to be paying by direct debit, but not have a valid IBAN.
### Current behaviour
A member can now be set to be paying by direct debit, but not have a valid IBAN. This creates empty re...### One-sentence description
A member can now be set to be paying by direct debit, but not have a valid IBAN.
### Current behaviour
A member can now be set to be paying by direct debit, but not have a valid IBAN. This creates empty records in !503.
### Expected behaviour
Members should only be allowed to pay by direct debit if they have a valid IBAN.
### Steps to reproduce
1. Set a member's IBAN to the empty string
2. Edit a member to say that they pay by direct debit
3. Observe that this is possiblehttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/455Keywords not split when searching for members2017-12-10T21:11:20+01:00Gijs HendriksenKeywords not split when searching for members### One-sentence description
When searching for `firstname lastname`, for example, only members with a first name, last name, nickname or username containg exactly the phrase `firstname lastname` are shown.
### Current behaviour
When us...### One-sentence description
When searching for `firstname lastname`, for example, only members with a first name, last name, nickname or username containg exactly the phrase `firstname lastname` are shown.
### Current behaviour
When using multiple keywords in a search query for a member, the `index` view does not split these keywords. Thus, it only shows members with a field (first name, last name, nickname or username) containing all of the keywords.
See, for example:
![search_members](/uploads/34d908266ee7e38725af1ebc709383dc/search_members.png)
### Expected behaviour
The search function returns members where each of the keywords is in one of the model's fields.
### Steps to reproduce
1. Go to https://thalia.nu/members/
2. Enter multiple keywords that do not belong to the same model field, for example `firstname lastname`.
3. Hit the `search button`.Gijs HendriksenGijs Hendriksenhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/456Link in event queue email not clickable2017-08-29T15:37:29+02:00Sébastiaan VersteegLink in event queue email not clickable### One-sentence description
Link in event queue email not clickable.
### Current behaviour
Link not clickable.
![Screen_Shot_2017-06-20_at_13.55.43](/uploads/57b2ed577d5e5f4c3ed0044643e1ac74/Screen_Shot_2017-06-20_at_13.55.4...### One-sentence description
Link in event queue email not clickable.
### Current behaviour
Link not clickable.
![Screen_Shot_2017-06-20_at_13.55.43](/uploads/57b2ed577d5e5f4c3ed0044643e1ac74/Screen_Shot_2017-06-20_at_13.55.43.png)
### Expected behaviour
Clickable link.
### Steps to reproduce
1. Get an email that you're allowed into an event.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/460Documents: 2011-2012 is not directly reachable2017-12-10T21:10:48+01:00Gerdriaan MulderDocuments: 2011-2012 is not directly reachable### One-sentence description
The documents page should switch to the year 2011-2012 when it is selected from the drop-down box.
### Current behaviour
The documents page does not switch to the year 2011-2012 when it is selected from the ...### One-sentence description
The documents page should switch to the year 2011-2012 when it is selected from the drop-down box.
### Current behaviour
The documents page does not switch to the year 2011-2012 when it is selected from the drop-down box.
### Expected behaviour
The documents page switches to the year 2011-2012 when it is selected from the drop-down box.
### Steps to reproduce
1. Log in
2. Go to the `/documents/` page (e.g. Association -> Documents).
3. Navigate to "General meetings"
4. Click on `2011-2012` (a dropdown box appears)
5. Click on `2011-2012` in the dropdown box
6. Nothing happens.
Alternatively, replace step 5 by clicking on another item (e.g. `2010-2011`) and then execute the original step 4 and 5 again. In that case, step 6 is replaced by the expected behaviour.
Note: the period (i.e. `2011-2012`) is relative to the current period. When we switch to the next year, this period will be `2012-2013`.Joost Rijneveldjoost@joostrijneveld.nlJoost Rijneveldjoost@joostrijneveld.nlhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/463Accept PNG images as photos2017-09-20T21:08:07+02:00Joost Rijneveldjoost@joostrijneveld.nlAccept PNG images as photos### One-sentence description
It should be possible to upload PNG images as photos
### Current behaviour
Uploading a PNG triggers an error.
### Expected behaviour
Uploading a PNG should be handled just like a JPG. Note that...### One-sentence description
It should be possible to upload PNG images as photos
### Current behaviour
Uploading a PNG triggers an error.
### Expected behaviour
Uploading a PNG should be handled just like a JPG. Note that this probably also has implications for the thumbnails.
### Steps to reproduce
1. Create a new photo object in the admin
2. Add a PNG
3. Save the object
4. Observe an errorTom van BusselTom van Busselhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/465Cannot fill in event fields when registering2017-12-10T21:29:27+01:00Luuk ScholtenCannot fill in event fields when registeringIntroduced in !477
### One-sentence description
Cannot fill in event fields when registering for an event with registration fields.
### Current behaviour
When you register for an event with fields, you must fill in the fields and press ...Introduced in !477
### One-sentence description
Cannot fill in event fields when registering for an event with registration fields.
### Current behaviour
When you register for an event with fields, you must fill in the fields and press submit.
This does not save the fields, but you are registered.
### Expected behaviour
The fields are saved and you are registered.
### Steps to reproduce
1. Go to an event with fields
2. Make sure you are not registered
3. Press the register button, your registration should be submitted
4. Fill in the required fields
5. Get redirected to the events page, with the error "you were already registered"
6. Press 'update registration'
7. See that your submitted fields have not been savedhttps://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/471Finding members by hidden nickname should not happen2017-12-10T21:12:32+01:00Joost Rijneveldjoost@joostrijneveld.nlFinding members by hidden nickname should not happen### One-sentence description
Finding members by hidden nickname should not happen
### Current behaviour
If a user has a nickname but has display options set to hide it, they still appear in search results that match the nickname. This...### One-sentence description
Finding members by hidden nickname should not happen
### Current behaviour
If a user has a nickname but has display options set to hide it, they still appear in search results that match the nickname. This can lead to confusion.
### Expected behaviour
When a user does not display their nickname as part of their display name, it should not be possible to find them based on their nickname.
### Steps to reproduce
1. Give yourself a nickname (preferably something unique)
2. Set your name preference to not display the nickname
3. Search by keyword for your nicknameJoost Rijneveldjoost@joostrijneveld.nlJoost Rijneveldjoost@joostrijneveld.nlhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/480Member search2017-12-10T21:10:50+01:00Joren VranckenMember search### One-sentence description
Member search finds wrong members.
### Current behaviour
When searching for some member, the search will also return some members that are not relevant to the search term.
### Expected behaviour
When search...### One-sentence description
Member search finds wrong members.
### Current behaviour
When searching for some member, the search will also return some members that are not relevant to the search term.
### Expected behaviour
When search for some member, only members relevant to the search are found.
### Steps to reproduce
1. Go to [member search](https://thalia.nu/members/)
2. Search for `Joren`
3. Observe that both `Joren Vrancken` and `Luuk Scholten` are found.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/481Member pages mix usage of user and member pk's2017-10-12T12:04:45+02:00Joren VranckenMember pages mix usage of user and member pk's### One-sentence description
The members on the [member page of cohort 2017](https://thalia.nu/members/?filter=2017) are not linked to the right profiles.
### Current behaviour
When clicking on a member from cohort 2017, get redirected ...### One-sentence description
The members on the [member page of cohort 2017](https://thalia.nu/members/?filter=2017) are not linked to the right profiles.
### Current behaviour
When clicking on a member from cohort 2017, get redirected to a different member.
### Expected behaviour
When clicking on a member, get redirected to their member page.
### Steps to reproduce
1. Go to the [member page of cohort 2017](https://thalia.nu/members/?filter=2017).
2. Click on `Aniek den Teuling` with _member_ id `1559`.
3. Observe that you are redirected to `Romy Stähli` with _user_ id `1559`.1.11https://gitlab.science.ru.nl/thalia/concrexit/-/issues/483Clicking on members on at an event links to a different member2017-12-10T21:29:29+01:00Wietse KuipersClicking on members on at an event links to a different member### One-sentence description
Clicking a first year member in the event registrations leads to the profile of a different member
### Current behaviour
Clicking a first year member in the event registrations leads to the profile of a diff...### One-sentence description
Clicking a first year member in the event registrations leads to the profile of a different member
### Current behaviour
Clicking a first year member in the event registrations leads to the profile of a different member
### Expected behaviour
Clicking a first year member in the event registrations leads to the profile of the clicked member
### Steps to reproduce
1. Go to https://thalia.nu/events/212/
2. Click on a first year member(For example Hylke Postma)
3. You go to the profile of Matthias Eisenlohrhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/316Agenda niet goed gesorteerd2017-12-10T21:29:44+01:00Nienke WesselAgenda niet goed gesorteerdDe agenda lijkt niet goed gesorteerd te zijn voor sommige mensen. Vermoedelijk ligt dit aan de browser die gebruikt wordt (Firefox lijkt wel te werken, Chrome niet).
![IMG-20170206-WA0003](/uploads/d62b1ef0460950eee1516a876ea05cca/IMG-...De agenda lijkt niet goed gesorteerd te zijn voor sommige mensen. Vermoedelijk ligt dit aan de browser die gebruikt wordt (Firefox lijkt wel te werken, Chrome niet).
![IMG-20170206-WA0003](/uploads/d62b1ef0460950eee1516a876ea05cca/IMG-20170206-WA0003.jpg)https://gitlab.science.ru.nl/thalia/concrexit/-/issues/484MultipleObjectsReturned at /admin/events/registration/add/ get() returned mor...2017-09-14T00:17:59+02:00Sébastiaan VersteegMultipleObjectsReturned at /admin/events/registration/add/ get() returned more than one Member -- it returned 2!### One-sentence description
MultipleObjectsReturned at /admin/events/registration/add/
get() returned more than one Member -- it returned 2!
### Current behaviour
```
MultipleObjectsReturned at /admin/events/registration/add/
get() r...### One-sentence description
MultipleObjectsReturned at /admin/events/registration/add/
get() returned more than one Member -- it returned 2!
### Current behaviour
```
MultipleObjectsReturned at /admin/events/registration/add/
get() returned more than one Member -- it returned 2!
Request Method: POST
Request URL: https://thalia.nu/admin/events/registration/add/?_changelist_filters=p%3D43
Django Version: 1.11.4
Python Executable: /usr/local/bin/uwsgi
Python Version: 3.5.4
Python Path: ['.', '', '/usr/local/lib/python35.zip', '/usr/local/lib/python3.5', '/usr/local/lib/python3.5/plat-linux', '/usr/local/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/site-packages']
Server time: Thu, 7 Sep 2017 18:38:06 +0200
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'django.contrib.sitemaps',
'tinymce',
'rest_framework',
'rest_framework.authtoken',
'compressor',
'corsheaders',
'thaliawebsite',
'members',
'documents',
'activemembers',
'photos',
'utils',
'mailinglists',
'merchandise',
'thabloid',
'partners',
'events',
'pizzas',
'newsletters',
'education',
'announcements',
'django_slack']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.http.ConditionalGetMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.locale.LocaleMiddleware']
Traceback:
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
41. response = get_response(request)
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.5/site-packages/django/contrib/admin/options.py" in wrapper
551. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapped_view
149. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
57. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/contrib/admin/sites.py" in inner
224. return view(request, *args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/contrib/admin/options.py" in add_view
1508. return self.changeform_view(request, None, form_url, extra_context)
File "/usr/local/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapper
67. return bound_func(*args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapped_view
149. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/utils/decorators.py" in bound_func
63. return func.__get__(self, type(self))(*args2, **kwargs2)
File "/usr/local/lib/python3.5/site-packages/django/contrib/admin/options.py" in changeform_view
1408. return self._changeform_view(request, object_id, form_url, extra_context)
File "/usr/local/lib/python3.5/site-packages/django/contrib/admin/options.py" in _changeform_view
1440. if form.is_valid():
File "/usr/local/lib/python3.5/site-packages/django/forms/forms.py" in is_valid
183. return self.is_bound and not self.errors
File "/usr/local/lib/python3.5/site-packages/django/forms/forms.py" in errors
175. self.full_clean()
File "/usr/local/lib/python3.5/site-packages/django/forms/forms.py" in full_clean
384. self._clean_fields()
File "/usr/local/lib/python3.5/site-packages/django/forms/forms.py" in _clean_fields
402. value = field.clean(value)
File "/usr/local/lib/python3.5/site-packages/django/forms/fields.py" in clean
160. value = self.to_python(value)
File "/usr/local/lib/python3.5/site-packages/django/forms/models.py" in to_python
1238. value = self.queryset.get(**{key: value})
File "/usr/local/lib/python3.5/site-packages/django/db/models/query.py" in get
384. (self.model._meta.object_name, num)
Exception Type: MultipleObjectsReturned at /admin/events/registration/add/
Exception Value: get() returned more than one Member -- it returned 2!
Request information:
USER: mvstiphout
GET:
_changelist_filters = 'p=43'
POST:
event = '212'
date_cancelled_0 = ''
name = ''
date_1 = '18:37:49'
date_cancelled_1 = ''
initial-date_0 = '2017-09-07'
csrfmiddlewaretoken = 'x'
initial-date_1 = '18:37:49'
member = '1219'
_save = 'Save'
date_0 = '2017-09-07'
````
### Expected behaviour
No error
### Steps to reproduce
1. Register Justin for an eventhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/486Populate mentor mailinglist with this year's mentors rather than last year's2017-12-10T21:29:10+01:00Joost Rijneveldjoost@joostrijneveld.nlPopulate mentor mailinglist with this year's mentors rather than last year'sIn !545, a list for mentors is created. However, it's populated with last year's set of mentors. Perhaps converting an offset datetime to a lecture year (e.g. +9 months, to transition on January 1st rather than September 1st?) would be a...In !545, a list for mentors is created. However, it's populated with last year's set of mentors. Perhaps converting an offset datetime to a lecture year (e.g. +9 months, to transition on January 1st rather than September 1st?) would be an easy solution.
As of writing, this is an unreleased feature, so it's not a bug in production right now.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/487Sort out re-use of event registration objects2018-11-14T11:12:03+01:00Joost Rijneveldjoost@joostrijneveld.nlSort out re-use of event registration objectsIn #484, it became apparent that Registration objects were expected to be recreated, but are currently being re-used (https://gitlab.science.ru.nl/thalia/concrexit/issues/484#note_34876). We should look into this, and make it consistent....In #484, it became apparent that Registration objects were expected to be recreated, but are currently being re-used (https://gitlab.science.ru.nl/thalia/concrexit/issues/484#note_34876). We should look into this, and make it consistent.
Creating new registration objects when people re-register creates a more accurate timeline, but it may make things a bit harder to understand when someone occurs as both cancelled and registered (in that case, should we omit the cancelled registration from the view?).20Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/488Als gebruiker kom ik bij het goede account via de member list2017-12-10T21:29:10+01:00Jeremy GuijtAls gebruiker kom ik bij het goede account via de member listWerd aangedragen door een sjaars.
Als je naar de member list gaan dan wordt de URL verkeerd ingesteld.
Reproduceren:
1: Ga naar de member list
2: Klik op een member (niet eerst zoeken)
Je komt nu niet uit op de pagina van de aangeklikt...Werd aangedragen door een sjaars.
Als je naar de member list gaan dan wordt de URL verkeerd ingesteld.
Reproduceren:
1: Ga naar de member list
2: Klik op een member (niet eerst zoeken)
Je komt nu niet uit op de pagina van de aangeklikte member, maar van de member met het ID van de aangeklikte member - 1.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/491HTML entities in titles of calendar links2017-10-12T12:04:41+02:00Reinier Joosser.joosse@student.science.ru.nlHTML entities in titles of calendar links### One-sentence description
HTML entities in titles of calendar links
### Current behaviour
![Screenshot_at_Sep_11_17-35-29](/uploads/faab2427056fe144b95136c8f5b1395a/Screenshot_at_Sep_11_17-35-29.png)
### Expected behaviour
No HTM...### One-sentence description
HTML entities in titles of calendar links
### Current behaviour
![Screenshot_at_Sep_11_17-35-29](/uploads/faab2427056fe144b95136c8f5b1395a/Screenshot_at_Sep_11_17-35-29.png)
### Expected behaviour
No HTML entities
### Steps to reproduce
1. Go to thalia.nu
2. Open the calendar
3. Hover over an event
1.11Bram in 't ZandtBram in 't Zandthttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/492Members of cohort 2017 in lists do not reference correctly2017-12-10T21:29:11+01:00Niek JanssenMembers of cohort 2017 in lists do not reference correctly### One-sentence description
Links to member pages route incorrectly
### Current behaviour
When clicking on a member of cohort 2017 (for example in the member list or an event), the loaded page is of a random other member (of cohort 201...### One-sentence description
Links to member pages route incorrectly
### Current behaviour
When clicking on a member of cohort 2017 (for example in the member list or an event), the loaded page is of a random other member (of cohort 2017?). As far as I have seen, the (wrongly) loaded pages are consistent for each member.
### Expected behaviour
When clicking a link to a member page, the page of that member loads.
### Steps to reproduce
1. Go to the member list / go to an event with subscriptions from members of cohort 2017
2. Click on a member of cohort 2017
3. The page loaded is of another random member.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/496Verkeerde getallen statistieken2017-12-10T21:12:36+01:00Kirsten KingmaVerkeerde getallen statistieken![image](/uploads/52822f4b957fa1ffe0c3d13e6aca628f/image.png)![image](/uploads/52822f4b957fa1ffe0c3d13e6aca628f/image.png)1.11Tom van BusselTom van Busselhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/500Honorary members are included in the IBAN export2017-12-10T21:12:36+01:00Thom WiggersHonorary members are included in the IBAN export### One-sentence description
Honorary members are included in the IBAN export
### Current behaviour
Honorary members are included in the IBAN export
### Expected behaviour
They're not listed as they don't have to pay membership dues.
...### One-sentence description
Honorary members are included in the IBAN export
### Current behaviour
Honorary members are included in the IBAN export
### Expected behaviour
They're not listed as they don't have to pay membership dues.
### Steps to reproduce
1. Click IBAN export
2. See that Eamonn is listedBram in 't ZandtBram in 't Zandthttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/507Export of events registrations is broken2017-12-10T21:29:12+01:00Sébastiaan VersteegExport of events registrations is broken### One-sentence description
### Current behaviour
HTTP 500
```
Traceback:
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
41. response = get_response(request)
File "/usr/local...### One-sentence description
### Current behaviour
HTTP 500
```
Traceback:
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
41. response = get_response(request)
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
23. return view_func(request, *args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
23. return view_func(request, *args, **kwargs)
File "./events/views.py" in export
123. data['paid'] = _('Yes') if registration.paid else ''
Exception Type: AttributeError at /events/admin/212/export/
Exception Value: 'Registration' object has no attribute 'paid'
```
### Expected behaviour
No errors
### Steps to reproduce
1. Create an event
2. Add registrations
3. Export all registrations
### Possible solution
Fix the export to use the new `payment` field instead of `paid`.Bram in 't ZandtBram in 't Zandthttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/510'None' value for cohort and study programme fields2018-01-02T16:35:51+01:00Sébastiaan Versteeg'None' value for cohort and study programme fields### One-sentence description
'None' value for cohort and study programme fields
### Current behaviour
![Screen_Shot_2017-09-18_at_12.06.34](/uploads/bd38a534fbe5edb250c3954a187d69cd/Screen_Shot_2017-09-18_at_12.06.34.png)
### Expecte...### One-sentence description
'None' value for cohort and study programme fields
### Current behaviour
![Screen_Shot_2017-09-18_at_12.06.34](/uploads/bd38a534fbe5edb250c3954a187d69cd/Screen_Shot_2017-09-18_at_12.06.34.png)
### Expected behaviour
No `None` texts
### Steps to reproduce
1. Go to a profile page belonging to a supporterLuko van der MaasLuko van der Maashttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/511Ignoring files still saves photo2017-09-23T13:39:40+02:00Sébastiaan VersteegIgnoring files still saves photo### One-sentence description
Ignoring files still saves photo
### Current behaviour
The 'ignoring' warning is given and the file is still found in the album.
### Expected behaviour
Ignored files are not in the album
### Steps to re...### One-sentence description
Ignoring files still saves photo
### Current behaviour
The 'ignoring' warning is given and the file is still found in the album.
### Expected behaviour
Ignored files are not in the album
### Steps to reproduce
1. Upload a ZIP with files that are going to be ignored (for example .DS_STORE or __MAX_OSX folder)
2. Note the warnings
3. Open the album on the website
4. Empty photos.1.11Tom van BusselTom van Busselhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/512TinyMCE editor in second inline-group doesn't work2017-09-27T20:00:17+02:00Sébastiaan VersteegTinyMCE editor in second inline-group doesn't work### One-sentence description
TinyMCE editor in second inline-group doesn't work
### Current behaviour
No TinyMCE editor for new newsletter events
### Expected behaviour
Init TinyMCE editor for new newsletter events
### Steps to rep...### One-sentence description
TinyMCE editor in second inline-group doesn't work
### Current behaviour
No TinyMCE editor for new newsletter events
### Expected behaviour
Init TinyMCE editor for new newsletter events
### Steps to reproduce
1. Go to the newsletter admin
2. Create new newsletter
3. Add event to newsletter
### Fix
Wait for https://github.com/romanvm/django-tinymce4-lite/pull/19 to be merged and released.1.11Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/513Almost-adjacent committee memberships should keep 'member since' date2017-12-10T21:10:51+01:00Joost Rijneveldjoost@joostrijneveld.nlAlmost-adjacent committee memberships should keep 'member since' date### One-sentence description
On a committee page, the 'member since' date should ignore small gaps of 1 day in membership history, since these are typically administration errors.
See e.g. @lscholten's Technicie membership.
### Curren...### One-sentence description
On a committee page, the 'member since' date should ignore small gaps of 1 day in membership history, since these are typically administration errors.
See e.g. @lscholten's Technicie membership.
### Current behaviour
When a member has a 1-day gap (member from t to t+x, chair from t+x+1 to now), the join date is reset to the new membership's starting date (i.e. t+x+1).
### Expected behaviour
When a member has a 1-day gap (member from t to t+x, chair from t+x+1 to now), the join date should be the original join date (i.e. t).
### Steps to reproduce
1. Create a membership from t to t+2years
2. Create a membership from t+2years+1day to now
3. Observe that 'committee member since' says 't+2years', not 't'1.12Joost Rijneveldjoost@joostrijneveld.nlJoost Rijneveldjoost@joostrijneveld.nlhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/515Exporteren van evenement aanmeldingen geeft verkeerde export2017-10-03T15:35:15+02:00Aucke BosExporteren van evenement aanmeldingen geeft verkeerde export### One-sentence description
Bij het exporteren van de aanmeldingen van een evenement komt de data in de csv niet overeen met wat er in de backend staat.
### Current behaviour
Sommigen 'te late afmeldingen' worden gemarkeerd als 'op tij...### One-sentence description
Bij het exporteren van de aanmeldingen van een evenement komt de data in de csv niet overeen met wat er in de backend staat.
### Current behaviour
Sommigen 'te late afmeldingen' worden gemarkeerd als 'op tijd afgemeld'. Misschien dat hierbij de aanmelddatum als afmelddatum wordt gezien?
Mensen die betaald hebben met pin worden gemarkeerd als 'niet betaald'.1.11https://gitlab.science.ru.nl/thalia/concrexit/-/issues/516Als admin is de tijd die in het evenementenoverzicht staat hetzelfde als de t...2018-01-08T07:56:02+01:00Jeremy GuijtAls admin is de tijd die in het evenementenoverzicht staat hetzelfde als de tijd die staat ingesteld bij het evenement.Bij de LaTeX workshop https://thalia.nu/events/admin/220/ staat de tijd op 15:30, maar in het evenementenoverzicht staat de tijd op 13:30.Bij de LaTeX workshop https://thalia.nu/events/admin/220/ staat de tijd op 15:30, maar in het evenementenoverzicht staat de tijd op 13:30.1.12Luko van der MaasLuko van der Maashttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/524Can't uncheck event checkbox information field2017-12-10T21:10:52+01:00Sébastiaan VersteegCan't uncheck event checkbox information field### One-sentence description
Can't uncheck event checkbox information field
### Current behaviour
After checking a checkbox and saving the event information fields you can't uncheck and save with the unchecked value being retained.
#...### One-sentence description
Can't uncheck event checkbox information field
### Current behaviour
After checking a checkbox and saving the event information fields you can't uncheck and save with the unchecked value being retained.
### Expected behaviour
After checking a checkbox and saving the event information fields you can uncheck and save.
### Steps to reproduce
1. Go to the 'pub crawl' event
2. Register
3. Select an option
4. Save
5. Edit options and save
6. No changes savedhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/525Cancel registration in 'registration information fields' not canceling2017-10-14T13:22:13+02:00Job DoesburgCancel registration in 'registration information fields' not canceling### One-sentence description
See title
### Current behaviour
See title
### Expected behaviour
Does cancel
### Steps to reproduce
1. Try to register for an event that does have extra 'registration information fields', like the pub craw...### One-sentence description
See title
### Current behaviour
See title
### Expected behaviour
Does cancel
### Steps to reproduce
1. Try to register for an event that does have extra 'registration information fields', like the pub crawl.
2. After hitting the register button, a new page is loaded with the extra information fields.
3. Hit cancel.
4. You're still enrolled for the event :(1.12Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/532Registrations export changes 'paid with pin' to 'not paid'2017-12-10T21:10:53+01:00Milan van StiphoutRegistrations export changes 'paid with pin' to 'not paid'When exporting the .csv for registrations, members that paid with pin get a 'Nee' in the 'betaald' column.When exporting the .csv for registrations, members that paid with pin get a 'Nee' in the 'betaald' column.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/533Directly linking to vacancies is broken2018-10-18T11:30:21+02:00Joost Rijneveldjoost@joostrijneveld.nlDirectly linking to vacancies is broken### One-sentence description
When clicking a vacancy and copy-pasting the link, the resulting page does not show the actual vacancy.
### Current behaviour
Copy-pasting a link to a vacancy causes you to navigate to a seemingly random p...### One-sentence description
When clicking a vacancy and copy-pasting the link, the resulting page does not show the actual vacancy.
### Current behaviour
Copy-pasting a link to a vacancy causes you to navigate to a seemingly random part of the page. This is probably due to the Javascript loading quite late. I realize this is perhaps non-trivial to fix, but that's Javascript for you.
### Expected behaviour
Copy-pasting a link to a vacancy causes you to navigate to the correct uncollapsed vacancy. Perhaps this can be more easily achieved by passing a server-sided CSS class when a page with an anchor is requested.
### Steps to reproduce
1. Go to e.g. https://thalia.nu/career/vacancies#vacancy-41
2. Land randomly on the page rather than seeing the correct uncollapsed vacancy19https://gitlab.science.ru.nl/thalia/concrexit/-/issues/535Hide association documents when unavailable2018-01-17T14:55:10+01:00Joost Rijneveldjoost@joostrijneveld.nlHide association documents when unavailable### One-sentence description
The year report of 16-17 is showing, but there is no file to back it. This results in an error when someone tries to access it.
### Current behaviour
The year report of 16-17 is showing, but there is no fi...### One-sentence description
The year report of 16-17 is showing, but there is no file to back it. This results in an error when someone tries to access it.
### Current behaviour
The year report of 16-17 is showing, but there is no file to back it. This results in an error when someone tries to access it.
### Expected behaviour
There should not be an icon if there is no year report yet. It should be possible not to have reports. Note that it's a filefield, so setting `null=True` [won't do much](https://code.djangoproject.com/ticket/10244); `blank=True` should be enough to work with.
### Steps to reproduce
1. Go to the documents pgae
2. Try to view the '16-'17 year report.Tom van BusselTom van Busselhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/540Crash when searching pushnotifications devices2017-12-10T21:10:54+01:00Sébastiaan VersteegCrash when searching pushnotifications devices### One-sentence description
Crash when searching pushnotifications devices
### Current behaviour
500 error when searching in the device model admin
### Expected behaviour
No error
### Steps to reproduce
1. Go to the device model ...### One-sentence description
Crash when searching pushnotifications devices
### Current behaviour
500 error when searching in the device model admin
### Expected behaviour
No error
### Steps to reproduce
1. Go to the device model pushnotifications admin
2. Enter search term
3. BOOM!https://gitlab.science.ru.nl/thalia/concrexit/-/issues/547Events API giving back old events2017-12-10T21:10:55+01:00Sébastiaan VersteegEvents API giving back old events### One-sentence description
Events API giving back old events
### Current behaviour
Today, 30 November: the API gives back the Diner Rouler and Lunch Lecture events.
It seems that the used queryset is not filtered correctly. It shoul...### One-sentence description
Events API giving back old events
### Current behaviour
Today, 30 November: the API gives back the Diner Rouler and Lunch Lecture events.
It seems that the used queryset is not filtered correctly. It should be `end__gte=timezone.now()`
### Expected behaviour
Today, 30 November: the API **does not** give back the Diner Rouler and Lunch Lecture events.
### Steps to reproduce
1. Go to https://thalia.nu/api/v1/eventshttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/549Ctrl+Alt+Delirium can order inactive pizza's2018-01-10T19:14:15+01:00Thom WiggersCtrl+Alt+Delirium can order inactive pizza's### One-sentence description
In the manual 'add order' form it's possible to order pizza kinds that have long since been out of stock at Domino's
### Current behaviour
1. Click 'add order' on a pizza event order overview
2. See a mass...### One-sentence description
In the manual 'add order' form it's possible to order pizza kinds that have long since been out of stock at Domino's
### Current behaviour
1. Click 'add order' on a pizza event order overview
2. See a massive dropdown
### Expected behaviour
A slightly less massive dropdownThom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/551'become a member' forms not present on website2018-01-11T23:05:45+01:00Thom Wiggers'become a member' forms not present on website### One-sentence description
They're not on https://thalia.nu/admin/members/becomeamemberdocument/ / https://thalia.nu/become-a-member/### One-sentence description
They're not on https://thalia.nu/admin/members/becomeamemberdocument/ / https://thalia.nu/become-a-member/https://gitlab.science.ru.nl/thalia/concrexit/-/issues/552'None' value for cohort fields in member list2018-04-05T14:07:28+02:00Sébastiaan Versteeg'None' value for cohort fields in member list### One-sentence description
'None' value for cohort fields in member list
### Current behaviour
![Screen_Shot_2018-01-01_at_19.19.28](/uploads/25b73fb41bab178b78668255d6491a1a/Screen_Shot_2018-01-01_at_19.19.28.png)
### Expected beh...### One-sentence description
'None' value for cohort fields in member list
### Current behaviour
![Screen_Shot_2018-01-01_at_19.19.28](/uploads/25b73fb41bab178b78668255d6491a1a/Screen_Shot_2018-01-01_at_19.19.28.png)
### Expected behaviour
Not showing the cohort text.
### Steps to reproduce
1. Go to the member list and find a profile of a user without a cohort value.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/553Registration tests broken with regards to 'upgrades'2018-01-08T07:53:46+01:00Thom WiggersRegistration tests broken with regards to 'upgrades'### One-sentence description
The upgrade tests are broken due to poor date handling.
### Current behaviour
Broken build.
### Expected behaviour
Build works.
### Steps to reproduce
1. `./manage.py test`
### Suggested solution
Ins...### One-sentence description
The upgrade tests are broken due to poor date handling.
### Current behaviour
Broken build.
### Expected behaviour
Build works.
### Steps to reproduce
1. `./manage.py test`
### Suggested solution
Instead of mocking dates which is horribly complicated, use `freezegun` to fix dates in a more reliable and readable way:
```python
from freezegun import freeze_time
def test():
assert datetime.datetime.now() != datetime.datetime(2012, 1, 14)
with freeze_time("2012-01-14"):
assert datetime.datetime.now() == datetime.datetime(2012, 1, 14)
assert datetime.datetime.now() != datetime.datetime(2012, 1, 14)
```Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/562Newsletter uses old is_active2018-01-28T20:48:57+01:00Thom WiggersNewsletter uses old is_active### One-sentence description
Newsletter sending breaks due to old `members` api.
https://thalia-www.slack.com/archives/C3RSHV4S0/p1516575117000059### One-sentence description
Newsletter sending breaks due to old `members` api.
https://thalia-www.slack.com/archives/C3RSHV4S0/p1516575117000059Tom van BusselTom van Busselhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/564WYSIWYG editor allows setting underline, but this is stripped out by Bleach2018-02-08T14:06:31+01:00Thom WiggersWYSIWYG editor allows setting underline, but this is stripped out by Bleach### One-sentence description
In the admin, the WYSIWYG editor allows setting underline, but this is stripped out by Bleach
### Current behaviour
No underline
### Expected behaviour
underline
### Steps to reproduce
1. Create e.g. an a...### One-sentence description
In the admin, the WYSIWYG editor allows setting underline, but this is stripped out by Bleach
### Current behaviour
No underline
### Expected behaviour
underline
### Steps to reproduce
1. Create e.g. an announcement
2. Use the U button
3. Save
4. See that there's no `text-decoration: underline` in the output.Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/565Cancelling event registrations is broken2018-02-07T19:48:37+01:00Thom WiggersCancelling event registrations is broken### One-sentence description
Cancelling is broken
### Current behaviour
Crash
```
Traceback:
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
41. response = get_response(request)
...### One-sentence description
Cancelling is broken
### Current behaviour
Crash
```
Traceback:
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
41. response = get_response(request)
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.5/site-packages/django/views/generic/base.py" in view
68. return self.dispatch(request, *args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapper
67. return bound_func(*args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
23. return view_func(request, *args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/utils/decorators.py" in bound_func
63. return func.__get__(self, type(self))(*args2, **kwargs2)
File "/usr/local/lib/python3.5/site-packages/django/views/generic/base.py" in dispatch
88. return handler(request, *args, **kwargs)
File "./events/views.py" in post
88. services.cancel_registration(request, request.member, event)
File "./events/services.py" in cancel_registration
110. emails.notify_first_waiting(request, event)
File "./events/emails.py" in notify_first_waiting
25. language = first_waiting_member.member.language
Exception Type: AttributeError at /events/246/registration/cancel/
Exception Value: 'Member' object has no attribute 'member'
Request information:
```
### Expected behaviour
no crash.
### Steps to reproduce
1.Thom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/566Photos not available2018-02-12T16:22:57+01:00Serena RietbergenPhotos not availableWhile begin logged in, I can't view any photos of any event. Tested this on multiple devices.While begin logged in, I can't view any photos of any event. Tested this on multiple devices.Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/567Marking pizzas as paid is broken2018-02-12T16:22:57+01:00Thom WiggersMarking pizzas as paid is broken### One-sentence description
Marking pizzas as paid is broken via pizza interface (not admin)
### Current behaviour
### Expected behaviour
### Steps to reproduce
1.### One-sentence description
Marking pizzas as paid is broken via pizza interface (not admin)
### Current behaviour
### Expected behaviour
### Steps to reproduce
1.Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/589Documents tests fail to close a file handle.2018-02-21T19:14:33+01:00Thom WiggersDocuments tests fail to close a file handle.### One-sentence description
Documents tests fail to close a file handle.
### Current behaviour
```
./home/thom/git/thalia/concrexit/.tox/py36-django20/lib/python3.6/site-packages/django/db/models/query.py:195: ResourceWarning: unclos...### One-sentence description
Documents tests fail to close a file handle.
### Current behaviour
```
./home/thom/git/thalia/concrexit/.tox/py36-django20/lib/python3.6/site-packages/django/db/models/query.py:195: ResourceWarning: unclosed file <_io.FileIO name='/home/thom/git/thalia/concrexit/website/media/documents/file_nl_CwarPQj.pdf' mode='rb' closefd=True>
```
### Expected behaviour
No warning
### Steps to reproduce
1. toxThom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/592Properly order questions for event registrations2018-02-21T19:03:39+01:00Joost Rijneveldjoost@joostrijneveld.nlProperly order questions for event registrations### One-sentence description
The additional questions should be displayed in the desired order.
### Current behaviour
Currently the symposium has a question wrt talk preference, but the rounds are not ordered increasingly (but seeming...### One-sentence description
The additional questions should be displayed in the desired order.
### Current behaviour
Currently the symposium has a question wrt talk preference, but the rounds are not ordered increasingly (but seemingly randomly). However, in the back-end, the order fields are set properly.
### Expected behaviour
The fields should be displayed in the prescribed order.
### Steps to reproduce
1. Go to https://thalia.nu/admin/events/event/237/change/?next=/events/admin/237/
2. Observe that the order is as expected.
3. Go to https://thalia.nu/events/237/registration/ (assuming you've registered)
4. Observe that the order is disregarded.Thom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/600Vacancy expiration mails sent too late2019-05-28T10:52:08+02:00Joren VranckenVacancy expiration mails sent too late### One-sentence description
The email for an vacancy expiration is sent after the expiration date.
### Current behaviour
I received the following email on the 1st of march:
```
Hello!
A vacancy of Internship Capital Structuring, 'Rab...### One-sentence description
The email for an vacancy expiration is sent after the expiration date.
### Current behaviour
I received the following email on the 1st of march:
```
Hello!
A vacancy of Internship Capital Structuring, 'Rabobank' will expire within the next 30 days. Maybe you should contact them to negotiate a new deal.
Kisses,
The website
```
The vacancy "Internship Capital Structuring" has its expiration date set to `18-02-2018`.
### Expected behaviour
The email should have been sent on the 1st of February, not March.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/606Multiple pizza events in future causes crash2018-03-28T19:48:00+02:00Sébastiaan VersteegMultiple pizza events in future causes crash### One-sentence description
Multiple pizza events in future causes crash
### Current behaviour
When having multiple pizza events in the future the website crashes.
### Expected behaviour
No crash, duh.
### Steps to reproduce
1. ...### One-sentence description
Multiple pizza events in future causes crash
### Current behaviour
When having multiple pizza events in the future the website crashes.
### Expected behaviour
No crash, duh.
### Steps to reproduce
1. Create two pizza events in le future.
2. Go to `/api/v1/pizzas/event/`
3.
```
MultipleObjectsReturned at /api/v1/pizzas/event/
get() returned more than one PizzaEvent -- it returned 2!
```Thom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/609Creating an event without specifying time crashes the request2018-03-28T19:48:00+02:00Sébastiaan VersteegCreating an event without specifying time crashes the request### One-sentence description
Creating an event without specifying time crashes the request
### Current behaviour
Crash
### Expected behaviour
Nice error message
### Steps to reproduce
1. Create a new event, only specify the _date_...### One-sentence description
Creating an event without specifying time crashes the request
### Current behaviour
Crash
### Expected behaviour
Nice error message
### Steps to reproduce
1. Create a new event, only specify the _date_ and no _time_ for the start/end of the event.
2. SaveLuko van der MaasLuko van der Maashttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/610Uploading GIF as profile image triggers OSError2018-03-19T16:43:48+01:00Sébastiaan VersteegUploading GIF as profile image triggers OSError### One-sentence description
Uploading GIF as profile image triggers OSError
### Current behaviour
Error!
### Expected behaviour
No error.
### Steps to reproduce
1. Go to your profile in the frontend
2. Edit it
3. Upload a GIF as ...### One-sentence description
Uploading GIF as profile image triggers OSError
### Current behaviour
Error!
### Expected behaviour
No error.
### Steps to reproduce
1. Go to your profile in the frontend
2. Edit it
3. Upload a GIF as image
4. CRASH!Thom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/615No max length for user description.2018-03-21T20:25:21+01:00Jelte SmitsNo max length for user description.### One-sentence description
There is no maximum length for the user description
### Current behaviour
No error is given when making the user description insanely long
### Expected behaviour
It should give an error when trying to make ...### One-sentence description
There is no maximum length for the user description
### Current behaviour
No error is given when making the user description insanely long
### Expected behaviour
It should give an error when trying to make a user description with more than *x* characters.
### Steps to reproduce
Just try itThom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/618General meeting document names are tuples2018-03-29T15:13:43+02:00Joren VranckenGeneral meeting document names are tuples### One-sentence description
General Meeting document names are tuples instead of strings
### Current behaviour
![2018-03-24_1214x723](/uploads/ae7e22bb48fccbe23cfb94d17c959abc/2018-03-24_1214x723.png)
### Expected behaviour
General...### One-sentence description
General Meeting document names are tuples instead of strings
### Current behaviour
![2018-03-24_1214x723](/uploads/ae7e22bb48fccbe23cfb94d17c959abc/2018-03-24_1214x723.png)
### Expected behaviour
General Meeting document names are shown as strings.
### Steps to reproduce
1. Go to the [documents page](https://thalia.nu/documents/)
2. Observe general meeting document names.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/619Word "Notulen" on the documents page is not translated2018-03-31T21:14:39+02:00Luko van der MaasWord "Notulen" on the documents page is not translated### One-sentence description
At the general meeting section, the button "notulen" is dutch on the English website
### Current behaviour
At the general meeting section, the button "notulen" is dutch on the English website
### Expected b...### One-sentence description
At the general meeting section, the button "notulen" is dutch on the English website
### Current behaviour
At the general meeting section, the button "notulen" is dutch on the English website
### Expected behaviour
At the general meeting section, the button that downloads the minutes should say "minutes" on the English website
### Steps to reproduce
1. Tell the website to use English
2. Go to /documents/
3. Find the general meeting section
4. See that the button is in dutch.Joren VranckenJoren Vranckenhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/620Pressing the minutes button on a general meeting does not download the minutes2018-04-05T14:08:48+02:00Joren VranckenPressing the minutes button on a general meeting does not download the minutes### One-sentence description
Pressing the minutes button on a general meeting does not download the minutes
### Current behaviour
When downloading minutes of a general meeting, the sites returns another document.
### Expected behavio...### One-sentence description
Pressing the minutes button on a general meeting does not download the minutes
### Current behaviour
When downloading minutes of a general meeting, the sites returns another document.
### Expected behaviour
When downloading minutes of a general meeting, the sites returns the minutes.
### Steps to reproduce
1. Go to the [document page]()
2. Download the minutes of the general meeting of the 4th of october.
3. Observe that the `huishoudelijk-reglement-26-08-2014.pdf` is downloaded.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/622Crash on registration renew page2018-05-08T13:50:50+02:00Sébastiaan VersteegCrash on registration renew page### One-sentence description
Crash on registration renew page
### Current behaviour
```
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
35. response = get_response(request)
File "...### One-sentence description
Crash on registration renew page
### Current behaviour
```
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
35. response = get_response(request)
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
128. response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
126. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.5/site-packages/django/views/generic/base.py" in view
69. return self.dispatch(request, *args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapper
62. return bound_func(*args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
21. return view_func(request, *args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/utils/decorators.py" in bound_func
58. return func.__get__(self, type(self))(*args2, **kwargs2)
File "/usr/local/lib/python3.5/site-packages/django/views/generic/base.py" in dispatch
89. return handler(request, *args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/views/generic/edit.py" in get
133. return self.render_to_response(self.get_context_data())
File "./registrations/views.py" in get_context_data
143. c[1] for c in Membership.MEMBERSHIP_TYPES
File "./registrations/views.py" in <listcomp>
144. if c[0] == context['membership'].type
Exception Type: AttributeError at /registration/renew/
Exception Value: 'NoneType' object has no attribute 'type'
Request information:
USER: azijlstra
```
### Expected behaviour
No crash
### Steps to reproduce
Unknownhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/625HTML entities in emails are not decoded2018-06-13T19:04:38+02:00Joren VranckenHTML entities in emails are not decoded### One-sentence description
HTML entities in emails are not decoded
### Current behaviour
```
Hi,
A member that was registered for the event 'Workshop: Bufferoverflows' that you're organising has cancelled their registration after th...### One-sentence description
HTML entities in emails are not decoded
### Current behaviour
```
Hi,
A member that was registered for the event 'Workshop: Bufferoverflows' that you're organising has cancelled their registration after the deadline.
Name: Dob 'Moze beeuw' Joesburg
Registration date: 1-1-1970 00:00
```
### Expected behaviour
```
Hi,
A member that was registered for the event 'Workshop: Bufferoverflows' that you're organising has cancelled their registration after the deadline.
Name: Dob 'Moze beeuw' Joesburg
Registration date: 1-1-1970 00:00
```1.16https://gitlab.science.ru.nl/thalia/concrexit/-/issues/627Can't cancel event when you have a fine2018-05-16T15:46:53+02:00Luko van der MaasCan't cancel event when you have a fine### One-sentence description
You can't cancel an event if you have a fine
### Current behaviour
When you have a fine and can't attend events, you also can't cancel registrations to already existing events.
### Expected behaviour
When y...### One-sentence description
You can't cancel an event if you have a fine
### Current behaviour
When you have a fine and can't attend events, you also can't cancel registrations to already existing events.
### Expected behaviour
When you have a fine you can still cancel events you already registered for.
### Steps to reproduce
1. Register for an event
2. Get a fine
3. Try to cancel the registrationhttps://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/639Thabloid preview blokken zijn stuk2018-06-13T18:59:42+02:00Thom WiggersThabloid preview blokken zijn stuk### One-sentence description
![image](/uploads/131d6741fff0fef893e094ca03cb0cb1/image.png)
### Current behaviour
![image](/uploads/0b85b57ed28a56555c66617efd95ab48/image.png)
### Expected behaviour
niet
![image](/uploads/975646e501248886...### One-sentence description
![image](/uploads/131d6741fff0fef893e094ca03cb0cb1/image.png)
### Current behaviour
![image](/uploads/0b85b57ed28a56555c66617efd95ab48/image.png)
### Expected behaviour
niet
![image](/uploads/975646e5012488860a3af636a92813bd/image.png)
### Steps to reproduce
1. https://thalia.nu/thabloid/1.16https://gitlab.science.ru.nl/thalia/concrexit/-/issues/642Document link in the backend broken2018-07-04T19:24:25+02:00Joren VranckenDocument link in the backend broken### One-sentence description
The document link in the backend is broken.
### Current behaviour
When clicking on a link to download a document in the backend, you a re directed to 404 page instead of the document.
### Expected behaviou...### One-sentence description
The document link in the backend is broken.
### Current behaviour
When clicking on a link to download a document in the backend, you a re directed to 404 page instead of the document.
### Expected behaviour
Either a redirect to the document or no link to the document.
### Steps to reproduce
1. Go to the [backend page of the bylaws](https://thalia.nu/admin/documents/associationdocument/57/change/)
2. Click on the the link [`documents/miscellaneous/statuten_xImuGrw.pdf`](https://thalia.nu/media/documents/miscellaneous/statuten_xImuGrw.pdf)Thom WiggersThom Wiggershttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/644Sorting in events admin does not work on every machine2018-06-04T14:02:32+02:00Joren VranckenSorting in events admin does not work on every machine### One-sentence description
Sorting in events admin does not work on every machine
### Current behaviour
For me it is possible to sort a column on the admin page of an event on my Android (8.1) phone, but not Chrome on my pc.
@ghendrik...### One-sentence description
Sorting in events admin does not work on every machine
### Current behaviour
For me it is possible to sort a column on the admin page of an event on my Android (8.1) phone, but not Chrome on my pc.
@ghendriksen can't sort on his Android phone.
### Expected behaviour
It is possible to sort columns on every device.
### Steps to reproduce
1. Go to the admin page of an event
2. Try to sort by namehttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/652Running celery worker as root2018-07-04T21:48:13+02:00Joren VranckenRunning celery worker as root### One-sentence description
Running `celery` worker as `root` is not recommended.
### Current behaviour
When using the `docker-compose.yml` file, the following warning is shown:
```
celery_1 | /usr/local/lib/python3.5/site-packages...### One-sentence description
Running `celery` worker as `root` is not recommended.
### Current behaviour
When using the `docker-compose.yml` file, the following warning is shown:
```
celery_1 | /usr/local/lib/python3.5/site-packages/celery/platforms.py:796: RuntimeWarning: You're running the worker with superuser privileges: this is
celery_1 | absolutely not recommended!
```
### Expected behaviour
The `celery` worker is not run as `root` (and the warning is not shown).
### Steps to reproduce
1. Run `docker-compose up`.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/653Ordering for event registrations in backend is lexicographically, not chronol...2018-08-15T08:24:29+02:00Gijs HendriksenOrdering for event registrations in backend is lexicographically, not chronological### One-sentence description
Ordering in the events backend should be chronological when sorting based on a datetime field.
### Current behaviour
When ordering on the "Registration start" field, for example, the registrations are sorted...### One-sentence description
Ordering in the events backend should be chronological when sorting based on a datetime field.
### Current behaviour
When ordering on the "Registration start" field, for example, the registrations are sorted lexicographically, as can be seen in this screenshot:
![registration_ordering](/uploads/7f59f8d57f8b74e0d12ded2f867cca01/registration_ordering.png)
### Expected behaviour
When ordering on a datetime field, the registrations should be ordered chronologically.
### Steps to reproduce
1. Create registrations for June 2nd and July 1st for a certain event.
2. Go to the admin page for that specific event.
2. Notice that the registration in July is shown before the registration in June.1.17Sébastiaan VersteegSébastiaan Versteeghttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/655Do not schedule/revoke messages for unpublished events2018-07-09T09:39:38+02:00Sébastiaan VersteegDo not schedule/revoke messages for unpublished events### One-sentence description
Do not schedule/revoke messages for unpublished events
### Current behaviour
Non published events still schedule messages
### Expected behaviour
No messages should be schedule
### Steps to reproduce
1....### One-sentence description
Do not schedule/revoke messages for unpublished events
### Current behaviour
Non published events still schedule messages
### Expected behaviour
No messages should be schedule
### Steps to reproduce
1. Create an event1.17https://gitlab.science.ru.nl/thalia/concrexit/-/issues/656Reschedule event notification even if previously sent2018-07-09T09:39:40+02:00Sébastiaan VersteegReschedule event notification even if previously sent### One-sentence description
Reschedule event notification even if previously sent
### Current behaviour
Only the notification time is changed, even though it has been sent already.
### Expected behaviour
If the notification was sent a...### One-sentence description
Reschedule event notification even if previously sent
### Current behaviour
Only the notification time is changed, even though it has been sent already.
### Expected behaviour
If the notification was sent already it should be decoupled from the event and a new scheduled notification should be created.
### Steps to reproduce
1. Create event
2. Let notification send
3. Change the event start/registration times1.17https://gitlab.science.ru.nl/thalia/concrexit/-/issues/662Escape commas in address label csv export2018-07-11T14:51:58+02:00Gijs HendriksenEscape commas in address label csv export### One-sentence description
Addresses containing a comma are not surrounded with quotes in the csv export, meaning they are split into multiple columns.
### Current behaviour
When exporting addresses for users, some of these addresses ...### One-sentence description
Addresses containing a comma are not surrounded with quotes in the csv export, meaning they are split into multiple columns.
### Current behaviour
When exporting addresses for users, some of these addresses contain commas, like _"Mercator I, room ..."_. In csv, these commas are seen as separator, meaning these addresses are split into several columns. They should be contained in a single column.
### Expected behaviour
Commas are escaped correctly, by surrounding the corresponding fields in quotes during the export.
### Steps to reproduce
1. Add an address field containing a comma for a certain member.
2. Export the address labels csv file.
3. Notice the address field is separated into two columns.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/663Fix names of categories of pushnotifications2018-08-08T23:02:12+02:00Luko van der MaasFix names of categories of pushnotifications### One-sentence description
Make all names uppercase
### Current behaviour
All names are lowercase
### Expected behaviour
The names are uppercase
### Steps to reproduce
1. look at /api/v1/devices### One-sentence description
Make all names uppercase
### Current behaviour
All names are lowercase
### Expected behaviour
The names are uppercase
### Steps to reproduce
1. look at /api/v1/devicesLuko van der MaasLuko van der Maashttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/664Bug on registering as member with incomplete form2018-08-08T10:34:17+02:00Sébastiaan VersteegBug on registering as member with incomplete form### One-sentence description
Bug on registering as member with incomplete form
### Current behaviour
The website gives a 500
### Expected behaviour
Error message in the form
### Steps to reproduce
1. Go to the registration page (`...### One-sentence description
Bug on registering as member with incomplete form
### Current behaviour
The website gives a 500
### Expected behaviour
Error message in the form
### Steps to reproduce
1. Go to the registration page (`/registration/register`)
2. Enter the form and leave the starting year _empty_.
3. Submit
4. Error!1.16.2https://gitlab.science.ru.nl/thalia/concrexit/-/issues/665Crash on confirming non-existing email address2018-08-07T12:34:00+02:00Sébastiaan VersteegCrash on confirming non-existing email address### One-sentence description
### Current behaviour
500 error
### Expected behaviour
404 not found
### Steps to reproduce
1. Go to `/registration/confirm-email/some-uuid`
**Note that it should be a UUID inside the url!**
### Stac...### One-sentence description
### Current behaviour
500 error
### Expected behaviour
404 not found
### Steps to reproduce
1. Go to `/registration/confirm-email/some-uuid`
**Note that it should be a UUID inside the url!**
### Stacktrace
```
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
35. response = get_response(request)
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
128. response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
126. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.5/site-packages/django/views/generic/base.py" in view
69. return self.dispatch(request, *args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/views/generic/base.py" in dispatch
89. return handler(request, *args, **kwargs)
File "./registrations/views.py" in get
100. emails.send_new_registration_board_message(entry.get())
File "/usr/local/lib/python3.5/site-packages/django/db/models/query.py" in get
403. self.model._meta.object_name
Exception Type: DoesNotExist at /registration/confirm-email/33c721a7-c032-407b-82a0-2f81c4061804/
Exception Value: Entry matching query does not exist.
```1.16.2https://gitlab.science.ru.nl/thalia/concrexit/-/issues/666Registration with same username causes problems on payment process2018-08-27T17:37:09+02:00Sébastiaan VersteegRegistration with same username causes problems on payment process### One-sentence description
Registration with same username causes problems on payment process
### Current behaviour
If two registrations exist with the same entered/generated username and the first is fully processed while the secon...### One-sentence description
Registration with same username causes problems on payment process
### Current behaviour
If two registrations exist with the same entered/generated username and the first is fully processed while the second is in the accepted stage the payment for that second registration will not be able to fully succeed since the username is taken. However, the payment is marked processed. Thus the registration will be in limbo, forever.
### Expected behaviour
No limbo!
### Steps to reproduce
1. Create two registrations with the same first and last name
2. Accept them both
3. Process payment for 1
4. Try to process payment for 2
5. Erreur! :boom:https://gitlab.science.ru.nl/thalia/concrexit/-/issues/674sendexpirationnotification.py crashed2018-08-16T08:44:24+02:00Joren Vranckensendexpirationnotification.py crashed### One-sentence description
`sendexpirationnotification.py` crashed while being run by `cron`.
### Current behaviour
```
Cron <root@virtueleivo> /var/docker-compose/concrexit/manage.py.sh sendexpirationnotification 2>&1 > /var/www/co...### One-sentence description
`sendexpirationnotification.py` crashed while being run by `cron`.
### Current behaviour
```
Cron <root@virtueleivo> /var/docker-compose/concrexit/manage.py.sh sendexpirationnotification 2>&1 > /var/www/concrexit/log/cron_sendexpirationnotification.log
```
```
Traceback (most recent call last):
File "/usr/src/app/website/manage.py", line 19, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.5/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.5/site-packages/django/core/management/__init__.py", line 365, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.5/site-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.5/site-packages/django/core/management/base.py", line 335, in execute
output = self.handle(*args, **options)
File "/usr/src/app/website/members/management/commands/sendexpirationnotification.py", line 18, in handle
emails.send_expiration_announcement(bool(options['dry-run']))
File "/usr/src/app/website/members/emails.py", line 90, in send_expiration_announcement
with translation.override(member.language):
AttributeError: 'Member' object has no attribute 'language'
```
### Expected behaviour
No crash
### Steps to reproduce
1. run `sendexpirationnotification.py` command.https://gitlab.science.ru.nl/thalia/concrexit/-/issues/675Fix docblocks with faulty :param: specifications2018-08-28T16:38:11+02:00Thom WiggersFix docblocks with faulty :param: specificationsE.g.
![image](/uploads/34e8857fc703dee6bf665a8ce2d96968/image.png)
This is caused by a missing newline before the `:param:`E.g.
![image](/uploads/34e8857fc703dee6bf665a8ce2d96968/image.png)
This is caused by a missing newline before the `:param:`https://gitlab.science.ru.nl/thalia/concrexit/-/issues/680Batch accepting registrations doesn't create payment2018-09-12T16:23:08+02:00Sébastiaan VersteegBatch accepting registrations doesn't create payment### One-sentence description
Batch accepting registrations doesn't create payment
### Current behaviour
No payment objects are created
### Expected behaviour
Should create payment objects
### Steps to reproduce
1. Accept a batch o...### One-sentence description
Batch accepting registrations doesn't create payment
### Current behaviour
No payment objects are created
### Expected behaviour
Should create payment objects
### Steps to reproduce
1. Accept a batch of registrationshttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/683Email subject renewal is wrong2018-08-27T17:14:09+02:00Sébastiaan VersteegEmail subject renewal is wrong### One-sentence description
Email subject renewal is wrong
### Current behaviour
Dutch translation says 'afgekeurd'
### Expected behaviour
should be 'goedgekeurd'
### Steps to reproduce
1. Accept a renewal
2. Check the email subject### One-sentence description
Email subject renewal is wrong
### Current behaviour
Dutch translation says 'afgekeurd'
### Expected behaviour
should be 'goedgekeurd'
### Steps to reproduce
1. Accept a renewal
2. Check the email subjecthttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/685Improve privacy policy regarding server data2020-01-30T13:36:32+01:00Sébastiaan VersteegImprove privacy policy regarding server data@twiggers:
>If you want to write something about explicit and implicit data collected on the website, I'd call this section "Data collected on the website" and write "Certain actions on the website may cause data to be collected (such as...@twiggers:
>If you want to write something about explicit and implicit data collected on the website, I'd call this section "Data collected on the website" and write "Certain actions on the website may cause data to be collected (such as ordering a pizza on the website or registering to attend an event). We additionally may collect logs on anything happening on the site and app to ensure the correct functioning of the services provided. The Technicie tries to only collect data when errors occur."Jelle Besselingjelle@pingiun.comJelle Besselingjelle@pingiun.comhttps://gitlab.science.ru.nl/thalia/concrexit/-/issues/686Dutch translation in membership notification email incorrect2018-09-26T20:48:17+02:00Sébastiaan VersteegDutch translation in membership notification email incorrect### One-sentence description
Dutch translation in membership notification email incorrect
### Current behaviour
Starts with `Dear <name>`
### Expected behaviour
Starts with `Beste <name>`
### Steps to reproduce
1. `./manage.py sen...### One-sentence description
Dutch translation in membership notification email incorrect
### Current behaviour
Starts with `Dear <name>`
### Expected behaviour
Starts with `Beste <name>`
### Steps to reproduce
1. `./manage.py sendmembershipnotification`.Thijs de JongThijs de Jong2019-08-31