joeni

clocking.org

1
#+STARTUP: showall lognoteclock-out
2
#+SEQ_TODO: TODO STARTED WAITING DELEGATED APPT | DONE DEFERRED CANCELED
3
#+TODO: TODO(t) STARTED(s@) WAITING(w@) DELEGATED(r@) APPT(a@) | DONE(d@) DEFERRED(p@) CANCELED(c@)
4
5
* Werken aan Joeni
6
  :LOGBOOK:
7
  CLOCK: [2018-03-08 Thu 00:24]--[2018-03-08 Thu 00:24] =>  0:00
8
  CLOCK: [2018-03-07 Wed 18:24]--[2018-03-07 Wed 20:24] =>  2:00
9
  - Vandaag heb ik het nieuwe roostersysteem bijna volledig afgewerkt. Een hoop bugs
10
    zijn uit het systeem gewerkt, en volgens mij worden de evenementen nu ook
11
    correct in het rooster geplaatst. Er moet nog gedacht worden aan het
12
    weergeven van conflicterende events, maar dat zal niet zo moeilijk zijn. Ik ga
13
    me daar waarschijnlijk seffens nog mee bezig houden.
14
    
15
    De evenementen linken nu ook door naar relevante pagina's. Voor personen kan het
16
    soms zijn dat een gelinkt object niet bestaat, maar dat zal binnenkort ook
17
    worden opgelost. Het moet ook nog een beetje worden opgemaakt, opdat de links in
18
    de juiste kleur worden weergegeven.
19
  CLOCK: [2018-03-06 Tue 13:59]--[2018-03-06 Tue 18:33] =>  4:34
20
  - Een paar veranderingen van de vergadering van gisteren doorgevoerd in de Room
21
    models.
22
    Daarnaast heb ik me vandaag fel verdiept in de mogelijkheden van PostgreSQL om
23
    bepaalde beperkingen en valideringen op het niveau van de databank af te
24
    dwingen. Dit zou interessant zijn voor de verdere ontwikkeling van meer
25
    software.
26
    
27
    Ik ben ook begonnen met het herschrijven van de roostermodule. Er zitten een
28
    hele hoop fouten in op dit moment, en die moeten eruit gewerkt worden, zodat dat
29
    af is. Als het zover is, kan die roostermodule overal gebruikt worden, op de
30
    user-pagina, lokaalpagina, roosterpagina, ...
31
    
32
    Elke gebruiker krijgt nu ook een slug toegekend via zijn/haar naam. Het komt
33
    zelden voor dat er mensen met dezelfde voor- en achternaam op de unief zitten,
34
    maar ook daar is aan gedacht. Unicode wordt ook geaccepteerd in de slugnamen.
35
  CLOCK: [2018-03-05 Sun 14:00]--[2018-02-05 Sun 18:20] =>  4:20
36
  - Ines Boonen ontmoet, verantwoordelijke voor de lokaalreservaties voor de
37
    faculteit wetenschappen. Tijdens het gesprek ook bij de verantwoordelijken
38
    voor andere faculteiten terecht geraakt, omdat die aan dezelfde tafel
39
    zitten.
40
41
    Dit betrof een bespreking van ongeveer 1 uur 45 minuten. Daarna op de trein
42
    richting Gent de aantekeningen op papier omgezet in een gedetailleerd verslag.
43
  CLOCK: [2018-02-04 Sun 14:25]--[2018-02-04 Sun 22:58] =>  8:33
44
  - Vandaag is het roostersysteem zo goed als af voor de prototype-fase. Dus, er
45
    zitten nog wat bugs in en 't is zeker nog niet 100% af, maar de code werkt en
46
    kan goed demonstreren wat er mogelijk is. De functionaliteit die de uurroosters
47
    afhandelt is ook naar een aparte module verplaatst, omdat de code zo groot werd
48
    dat die niet meer paste in views.
49
    
50
    Daarnaast zijn er hier en daar een paar kleine bugs opgelost, en heb ik ook
51
    enkele nieuwe classes toegevoegd in plaats van alles via style-attributen af te
52
    handelen.
53
    
54
    Een extra grote nieuwigheid is de toevoeging van het algemene validatiesysteem
55
    voor lokalen af te huren. Dit controleert bij elke reservatie of dit mogelijk
56
    is, en of het al dan niet overlapt met een al bestaande reservatie. Moest dat
57
    wel zo zijn, dan wordt er een behulpzaam bericht getoond dat informatie
58
    verschaft over de reserveerder, de duratie, enz.
59
    
60
    Morgen begin ik aan het implementeren van de curriculumpagina, en misschien
61
    tussendoor ook de jobspagina. Die laatste zou normaal wel wat makkelijker moeten
62
    gaan, omdat het meer gaat om data presenteren dan behandelen. Maar we gaan zien.
63
  CLOCK: [2018-02-03 Sat 19:16]--[2018-02-03 Sat 22:12] =>  2:56
64
  - Het roostersysteem verder verfijnd. Daarnaast heb ik ook de huidige data in de
65
    databank gedumpt, zodat ik weet hoe ik straks gemakkelijk testdata kan genereren.
66
  CLOCK: [2018-02-02 Fri 17:11]--[2018-02-02 Fri 23:14] =>  6:03
67
  - Vandaag verder gewerkt aan het uurrooster, en de functies daarvan afgeschreven.
68
    Ik ga morgen voorbeelddata toevoegen zodat ik het ook in actie kan zien en
69
    eventuele bugs kan oplossen.
70
    Buiten dat een beetje extra informatie aan het roster-template toegevoegd,
71
    waarin ook wordt verklapt hoe en welke informatie zal worden weergegeven aan de
72
    gebruiker.
73
  CLOCK: [2018-02-01 Thu 14:28]--[2018-02-01 Thu 20:32] => 6:04
74
  - Vandaag flink gewerkt en nagedacht over het implementeren van het roostesysteem.
75
    Ik heb het overgrote deel van de template al geschreven, en de achterliggende
76
    view is voor de helft af.
77
    Het probleem dat zich hierbij stelt, is dat ik in HTML omgekeerd moet werken
78
    door de manier waarop kolommen en rijen werken, en hoe mensen gewoon zijn naar
79
    uurroosters te kijken. Ik heb daarom besloten om de tijdsrijen in de view te
80
    prepareren, en die dan kant-en-klaar naar DTL te sturen.
81
    Het nadeel is echter dat de view van roster relatief groot wordt. Dit kan later
82
    echter nog altijd gerefactored worden.
83
    
84
    Andere kleine veranderingen zijn er ook gemaakt:
85
    - Loginpagina onder handen genomen, zodat deze niet meer crasht na de gegevens
86
      ingevuld te hebben. Er wordt nu ook naar de juiste link geredirected. Er zit
87
      echter nog altijd een vervelende bug in waardoor het aanmelden niet opgesagen
88
      wordt, dat zal ik later nog moeten onderzoeken.
89
    - Wachtwoordcontrole afgezwakt. Voor debuggen is het irritant dat ik steeds een
90
      sterk wachtwoord moet ingeven, dus heb ik het zo ingesteld dat als debuggen
91
      aanstaat, de controle uitgezet wordt.
92
    - Header verborgen, die stond vervelend in de weg van mijn webpagina.
93
    - Nieuwe URL voor roster toegevoegd, zodat er nu ook een begin en end kan
94
      opgegeven worden. Ik ga morgen controleren of die het juist opneemt.
95
    - URL's naar results zijn opgeheven. Dit zal samengevoegd worden met curriculum,
96
      om zo het aantal pagina's naar een aanvaarbaar aantal te herleiden.
97
  - Even ter herinnering van de vorige keren dat ik eraan gewerkt heb.
98
  CLOCK: [2018-01-24 Wed 17:41]--[2018-01-24 Wed 22:45] =>  5:04
99
  - De loginpagina is nu afgewerkt. Er is ook een beetje CSS aangemaakt, en de
100
    basistemplates zijn gemaakt. Er is ook gewerkt zodat de STATIC en MEDIA naar de
101
    juiste folders linken. De URL's hebben ook een update gekregen, zodat alles
102
    gelinkt kan worden. Waarschijnlijk zal ik vanaf morgen enkel meer hoeven te
103
    werken aan Administration, en kan ik deze beginnen af te werken.
104
  CLOCK: [2018-01-23 Tue 18:21]--[2018-01-23 Tue 23:35] =>  5:14
105
  - Na een lange pauze ben ik vandaag begonnen met me terug in te werken in het
106
    systeem, en de vereisten. Ik ben begonnen met de technologie te implementeren om
107
    het rooster op te stellen. Ik ga hiervoor ook extra models moeten toevoegen. De
108
    pagina's wil ik morgen afhebben, zodat ik met een voorbeeldaccount kan inloggen.
109
  CLOCK: [2017-12-08 Fri 18:53]--[2017-12-08 Fri 20:19] =>  1:26
110
  - Verder gewerkt aan verslag over het opzettelijk vermijden van /client side
111
    scripting/ in Joeni. Omdat dit deel grotendeels is afgewerkt, ben ik ook
112
    begonnen aan het stuk om de keuze om een /web-based app/ te maken te argumenteren.
113
  CLOCK: [2017-12-07 Thu 18:35]--[2017-12-07 Thu 19:06] =>  0:31
114
  - Begonnen met het schrijven /Client side scripting/, en waarom dit in Joeni
115
    nergens gebruikt wordt.
116
  CLOCK: [2017-12-07 Thu 17:54]--[2017-12-07 Thu 18:16] =>  0:22
117
  - Overstap trein, zie volgende log.
118
  CLOCK: [2017-12-05 Tue 12:41]--[2017-12-05 Tue 16:02] =>  3:21
119
  - Deze keer is er niet zozeer gewerkt aan Joeni zelf, maar wel aan de meer
120
    administratieve kant van het project.
121
    Zo heb ik een prioriteitenlijst opgesteld (en deze verzonden), omdat dit werd
122
    gevraagd door de professor.
123
    Daarnaast heb ik ook enkele punten toegevoegd aan de TODO-lijst.
124
    Nu dat de data voor de verdediging en het indienen van het werk ook bekend zijn
125
    gemaakt, heb ik deze in mijn agenda toegevoegd.
126
    In verband met de vorige vergadering, heb ik ook een verslag-document
127
    aangemaakt, waarin ik alle verslagen zal opschrijven. Het eerste verslag staat
128
    er ondertussen ook al in.
129
    Tot slot heb ik ook de structuur van mijn bachelor-folder aangepast en
130
    verbeterd; verschillende bestanden zijn nu in een archief geplaatst, en er is
131
    een betere structuur (lees: voor bepaalde bestanden die over hetzelfde onderwerp
132
    gaan, zijn nieuwe folders aangemaakt).
133
    
134
    Voor de nabije toekomst zal ik echter niet meer actief kunnen werken aan m'n
135
    bachelorproef; ik moet werk inhalen van m'n andere vakken (waarvan ik examens
136
    moet afleggen begin januari), ik kan dus geen
137
    blokken toekennen om werk in te verzetten.
138
    Wat ik wel ga doen, is tijdens mijn treinreizen tussen Gent en Bilzen al
139
    schrijven aan bepaalde onderdelen van mijn bachelorproef. Er zijn een hoop delen
140
    waarover ik al een aardig stuk kan schrijven. Omdat ik in de trein toch enkel
141
    kan zitten en kan lezen of op de laptop zitten, zal ik dat dus tijdens mijn
142
    treinritten doen. Deze momenten zal ik ook registreren in dit logboek.
143
  CLOCK: [2017-11-29 Wed 20:43]--[2017-11-29 Wed 21:41] =>  0:58
144
  - Gewerkt aan enkele templates van de Courses-app.
145
    
146
    Een kleine nieuwigheid: In Joeni zal het mogelijk zijn om orgmode-syntax te
147
    gebruiken voor het opmaken van tekst. Maar deze tekst wordt niet automatisch
148
    omgezet naar HTML als deze verzonden wordt, en blijft dus als orgmode-code in de
149
    databank opgeslagen.
150
    Ik heb dan ook een nieuwe tag ontwikkeld die ik zal gebruiken op plaatsen waar
151
    dit bruikbaar is, de "org"-tag. Deze tag aanvaardt een arbitraire input, en
152
    behandelt deze als org-syntax. De teruggegeven waarde is dan HTML-geformatteerd.
153
    Er wordt ook aangegeven dat deze tekst "safe" is, zodat Django deze niet
154
    behandeld als gevaarlijk (wat dus alle HTML-tags letterlijk zou weergeven).
155
    
156
    In de toekomst moet er ook een manier zijn om deze modus uit te zetten in de
157
    settings.py, zodat, moest er echt ongecontroleerde chaos ontstaan omdat het
158
    misbruikt wordt, dat de tag onschadelijk wordt gemaakt. In dat geval wordt de
159
    tekst gewoon als orgmode-tekst weergegeven. Dit is een handige /fallback/, omdat
160
    Orgmode-syntax op zich al zeer leesbaar is.
161
  CLOCK: [2017-11-23 Thu 17:38]--[2017-11-23 Thu 18:32] =>  0:54
162
  - Gewerkt aan enkele templates en aan de views van Courses. Er zal ook een nieuw
163
    URL-pattern toegevoegd voor het verwijderen van elementen.
164
  CLOCK: [2017-11-23 Thu 17:11]--[2017-11-23 Thu 17:19] =>  0:08
165
  - Werken aan views van Courses, maar moet tijdelijk werk staken omdat ik moet
166
    overstappen in Leuven...
167
  CLOCK: [2017-11-23 Thu 11:03]--[2017-11-23 Thu 12:36] =>  1:33
168
  - In de trein gewerkt aan een nieuw template voor een Course weer te geven. Ik
169
    denk dat ik de aparte weergaven voor /announcements/, /assignments/, ... ga
170
    wegdoen, en gewoon alles op 1 centrale pagina ga bewaren. Daar kan dan naar
171
    genavigeerd worden met ID's, en ongewenste onderdelen kunnen dan worden
172
    dichtgeklapt.
173
    
174
    Ook de view aangemaakt zodat deze bereikt kan worden.
175
  CLOCK: [2017-11-22 Wed 18:16]--[2017-11-22 Wed 21:08] =>  2:52
176
  - Initieel gewerkt aan het definiëren van zoveel mogelijk URL-patronen voor alle
177
    apps. Ik denk dat ik hier ondertussen mee klaar ben, maar ik acht het zeer
178
    waarschijnlijk dat daar later nog enkelen bij gaan komen. Maar het huidige
179
    aantal geeft een goede indicatie van wat het meest prioritair is om af te
180
    krijgen.
181
    
182
    Ben ook begonnen aan de views van Courses. Het wordt van de grond af aan
183
    opgebouwd met in permissies in het achterhoofd, zodat studenten en personeel de
184
    juiste informatie voorgeschoteld krijgen.
185
    
186
    ProgrammeInformation is hernoemd naar CourseProgramme. De oude naam was te vaag
187
    om uit af te leiden waar het eigenlijk om draaide.
188
    
189
    In Curriculum wordt niet meer verwezen naar Courses die erin zijn opgenomen,
190
    maar naar CourseProgrammes. Dit sluit aan bij de reële bedoeling van
191
    CourseProgrammes. Er is ook een functie toegevoegd, courses(), die de opgenomen
192
    Course-elementen uit de CourseProgrammes haalt, en die zo presenteert. Bestaande
193
    code hoeft dus niet aangepast te worden.
194
    
195
    Daarnaast is er ook gewerkt aan een paar nieuwe templates, course-index en
196
    joeni-base, joeni-footer, en mogelijk enkele anderen. Het draait dan vooral rond
197
    het implementeren en gebruiken van de context die aan de templates wordt
198
    gegeven. Er wordt op gelet zo weinig mogelijk expliciete info te voorzien voor
199
    CSS. Het is namelijk zo dat binnen Joeni zoveel mogelijk van de stijl impliciet
200
    moet kunnen worden afgeleid van de bestaande structuur. Indien nodig kan er
201
    later wat meer expliciete waarden gebruikt worden, maar voor nu hou ik het zo.
202
    
203
    Toekomstig werk zal bestaan uit het aanpassen van de User-class (zodat deze
204
    juist werkt binnen de databank), het migreren van de aanpassingen die
205
    ondertussen gemaakt zijn, en het verder uitwerken van de benodigde views.
206
    Hiervoor is het misschien nodig om /sample data/ te gebruiken, maar daarvoor zal
207
    misschien eerst contact opgenomen moeten worden met de universiteit.
208
  CLOCK: [2017-11-21 Tue 22:33]--[2017-11-22 Wed 00:09] =>  1:36
209
  - Heb gewerkt aan enkele templates in het systeem, om een beetje de toon aan te
210
    geven van hoe ze er allemaal uit gaan zien; minimale hoeveelheid
211
    CSS-hulpmiddelen (zoals classes), en zoveel mogelijk impliciet afgeleide
212
    informatie.
213
    
214
    Ik ben ook nog een paar foutjes tegengekomen in mijn models, met name in
215
    courses; sommige tabellen zijn nogal onoverzichtelijk, en dat maakt het moeilijk
216
    om ze te gebruiken in de template-code. Ik ga kijken of ik deze wat beter kan
217
    structureren, zonder in te moeten boeten aan flexibiliteit binnen de vereisten
218
    van de universiteit.
219
    
220
    Ik heb ook enkele URL-patronen toegevoegd. Het zijn er op dit moment nogal
221
    weinig, maar ik denk dat het later wel wat meer zal worden als alles écht af
222
    begint te geraken en het vooral detailwerking gaat zijn.
223
    
224
    Ik ga morgen misschien ook proberen wat /dummy-data/ toe te voegen voor een
225
    opleiding, waarschijnlijk informatica, gewoon om al een /proof of concept/ te
226
    hebben van hoe het eruit zal zien.
227
  CLOCK: [2017-11-21 Tue 16:59]--[2017-11-21 Tue 21:31] =>  4:32
228
  - Ik ben erin geslaagd eindelijk een superuser aan te maken, en ben gestart met
229
    het verwijderen van bugs in de opgestelde modellen.
230
    Ook heb ik een post-template aangemaakt, dat in staat zal zijn om een post voor
231
    te stellen op Agora.
232
  CLOCK: [2017-11-18 Sat 22:01]--[2017-11-18 Sat 23:18] =>  1:17
233
  - De migraties zijn uitgevoerd, hier en daar heb ik enkele kleine veranderingen
234
    aangebracht in de models. Maar alles is nu in orde.
235
    Ik ga morgen proberen uit te vogelen hoe ik een account kan toevoegen dat ik kan
236
    gebruiken om in te loggen als admin.
237
  CLOCK: [2017-11-18 Sat 18:12]--[2017-11-18 Sat 21:08] =>  2:56
238
  - Behoudens verwikkelingen, is _fase 1 afgerond; de databank is klaar!_
239
    De volgende wijzigingen werden nog aangebracht in de databanken:
240
    - Agora
241
      - VideoPost, MusicPost, ... vervangen door 1 *FilePost*, waarin wordt
242
        aangegeven welk type het bestand is.
243
      - Velden van SharedFile en Message verplaatst naar *Chat*, wat mooier uitkwam.
244
        Chat was gewoon een abstracte tabel zonder eigen velden, maar is nu een stuk
245
        nuttiger. De andere tabellen zijn natuurlijk ook wat simpeler.
246
      - *GroupChat, PrivateChat, GroupInvite* gemaakt.
247
    - Administration
248
      - *Room, RoomReservation, Degree* gemaakt.
249
    - Courses
250
      - *Assignment, Announcement, Upload, StudyGroup* gemaakt.
251
    Er wordt zo dadelijk gestart met een poging om de databank volledig te migreren,
252
    bugs om te zetten in tests waar mogelijk, en het werken aan enkele zekere
253
    templates, URL-patronen en SCSS-bestanden.
254
  CLOCK: [2017-11-17 Fri 22:18]--[2017-11-17 Fri 23:55] =>  1:37
255
  - Nog eventjes doorgewerkt aan enkele dingen.
256
    - URL-patterns opgesteld voor Agora. Een paar zullen zeker gebruikt worden, dus
257
      die heb ik er al ingezet. Er zullen er nog wel enkele bijkomen, maar deze zijn
258
      al volledig voorbereid, inclusief I18N-ondersteuning.
259
    - Agora-databank:
260
      - SharedFile
261
      - Message
262
      - Chat (GroupChat, PrivateChat)
263
      - GroupInvite
264
      Deze hoeven natuurlijk weinig uitleg, ze zijn redelijk zelfverklarend.
265
    - Administration:
266
      - RoomReservation :: Docenten kunnen lokalen afhuren voor hun vak, en dat
267
           wordt dan hier opgeslagen, zodat er geen overlappingen gebeuren. Heeft
268
           nog wel enkele likjes verf nodig.
269
    - Courses:
270
      - HomeworkTask
271
      - Announcement
272
      - Upload
273
      - StudyGroup
274
      Ook niet al te moeilijk. StudyGroup zal verbonden moeten worden met een groep
275
      uit Agora.
276
    Merk wel op dat *deze nieuwe tabellen nog niet af zijn!* Het zijn ideeën die
277
    daarnet in me zijn opgekomen over waar ik nog aan moet werken, maar ze zijn
278
    bijlange nog niet af. Ik ga daar morgen aan werken, zodat fase 1 deze week zeker
279
    kan gefinaliseerd worden.
280
  CLOCK: [2017-11-17 Fri 17:57]--[2017-11-17 Fri 21:33] =>  3:36
281
  - Wederom gewerkt aan het opbouwen van de databank. Prominente veranderingen:
282
    - Administration
283
      - Curriculum :: Stelt een curriculum van een student voor. Hierin worden
284
                      vakken en een jaar opgeslagen, de commissie kan dit goedkeuren
285
                      of weigeren, ...
286
      - CourseResult :: Het behaalde resultaat van een bepaald vak. Hierin wordt ook
287
                        opgeslagen wat het resultaat in tweede zit was. Er wordt
288
                        gebruik gemaakt van een validator om zeker te zijn dat de
289
                        score niet groter is dan 20.
290
      - PreRegistration :: Een voorinschrijving.
291
    - Courses
292
      - StudyProgramme :: Voor een bepaalde studie bestaan verschillende trajecten,
293
                          minors, majors, specialisaties, ... Elk met verschillende
294
                          vakken en punten. Een bepaald programma wordt hiermee
295
                          voorgesteld.
296
    - *Communication is hernoemd naar Agora.* De naam was te lang om praktisch
297
      bruikbaar te zijn in de templates, in de code, ... Daarbij is Agora een mooie
298
      verwijzing naar de Griekse betekenis van het woord, wat in... Agora... toch
299
      wel de doelstelling is.
300
    En nog wat niet nader vermelde wijzigingen, maar daarvoor verwijs ik naar de Git
301
    commit. Er zal de volgende keer gewerkt worden aan het afwerken van de databank,
302
    maar deze keer met het oog op de eigenlijke finalisatie en een beetje
303
    /finetunen/ van de bestaande tabellen. Als dat gedaan is, kan er begonnen worden
304
    met de migratie van de databank, en het zoeken van bugs. Deze bugs zullen dan
305
    direct vertaald worden in /test cases/, als dit mogelijk is.
306
    
307
    _Joeni bereikt deze week het einde van fase 1: Opstellen van de database._ Na
308
    deze fase begint het werk aan /views/ en het knutselen aan /templates/ die
309
    sowieso gebruikt moeten worden. Aan dit laatste wordt hier en daar al een beetje
310
    gewerkt. Het doel hiervan is zo generiek mogelijke templates te maken die door
311
    álle gedeelten van Joeni gebruikt kunnen worden. Er zal dan ook gewerkt moeten
312
    worden met SCSS om een coherent gevoel te verspreiden doorheen het hele programma.
313
  CLOCK: [2017-11-15 Wed 19:12]--[2017-11-15 Wed 21:07] =>  1:55
314
  - Gewerkt aan Communication-app, met name de databank. Nieuwe tabellen:
315
    - Post :: Stelt een post voor die iemand heeft gemaakt. Hiervan zijn
316
              verschillende types beschikbaar.
317
    - Page :: Een pagina op het netwerk. Deze kan gelinkt zijn aan een Account, een
318
              Group, of een Course. Bij een Account zou deze enkel door dat Account
319
              mogen worden aangepast, bij een Group enkel door de groepsleden, en
320
              bij Course enkel mensen uit dat onderwijsteam.
321
    - AccountCollection :: Accounts kunnen collecties aanleggen van andere accounts.
322
         Extraatje zal zijn dat, als beide accounts een groep "Vrienden" hebben, en
323
         elkaar daarin hebben zitten, dat ze dan wel van elkaar zullen weten dat ze
324
         beiden vrienden van elkaar zijn.
325
    - Vote :: Op Posts kan gestemd worden. Deze stemmen worden hier opgeslagen.
326
    Buiten dat zijn er nog een stel kleine dingetjes die erbij zijn gekomen, maar ik
327
    kan niet meer doorwerken op dit moment. Als er nog dingen zijn waar ik aan moet
328
    denken, dan zal ik die in dit bestand oplijsten als TODO-punten, zodat ze niet
329
    worden vergeten.
330
  CLOCK: [2017-11-15 Wed 16:01]--[2017-11-15 Wed 19:02] =>  3:01
331
  - Databanktabellen van Courses-app grotendeels afgewerkt:
332
    - Study :: Stelt een te volgen opleiding voor
333
    - Course :: Stelt een bepaald vak voor binnen de universiteit
334
    - ProgrammeInformation :: Tabel die studies en cursussen met elkaar verbindt, en
335
         specifieke info hierover bijhoudt.
336
    Ook 2 nieuwe velden toegevoegd aan User-tabel in Joeni:
337
    - is_staff :: Geeft aan of de gebruiker een personeelslid is
338
    - title :: De academische titel die deze gebruiker mag voeren. In de templates
339
               zal gezorgd worden dat de titel als prefix, dan wel als suffix zal
340
               worden gepresenteerd (bv.: "dr. ir." komt voor de naam, maar "MSc"
341
               komt ná de naam)
342
  CLOCK: [2017-11-14 Tue 15:30]--[2017-11-14 Tue 21:50] =>  6:20
343
  - Begonnen met de implementatie van de databank. Deze is nu gedeeltelijk
344
    afgewerkt, maar ik ga hier morgen aan verder werken, en deze hopelijk ook
345
    *af* krijgen. Ook een logo ontworpen wat op de website zal worden afgebeeld,
346
    geïnspireerd door het logo van de UHasselt. Een simpele versie zal in de
347
    bovenste balk worden afgebeeld, de volledige versie kan elders gebruikt
348
    worden, en zal in de footer te zien zijn.
349
  :END:
350
351
** Algemeen
352
*** TODO Fix login
353
Inloggen lukt, maar redirect altijd terug naar de loginpagina, ongeacht de
354
gegeven redirect. Aanmelding is ook niet persistent, dus klopt niet volgens mij?
355
*** STARTED Vervang ugettext door gettext
356
ugettext dient voor onderscheid te maken tussen unicode-strings en bytestrings,
357
zoals die in Python 2 voorkwamen. Joeni zal enkel werken met Python 3 (en is ook
358
geschreven met Django 2.0 in het achterhoofd), en het is mogelijk dat ugettext
359
dus /deprecated/ wordt. Om dit voor te zijn, vervang ugettext door gettext waar
360
mogelijk.
361
** Templates
362
*** TODO Org-filter verbeteren
363
Het moet mogelijk zijn om via een constante in settings.py deze functionaliteit
364
aan of uit te zetten, zodat, moest er te veel misbruik gemaakt worden, deze kan
365
worden uitgeschakeld, zonder overal filters te moeten gaan opsporen en
366
verwijderen.
367
Misschien dan de org-filter behandelen middels een fallback, bv. escapestring?
368
Zodat een paar dingen (zoals \n) toch behandeld kunnen worden en een paar
369
linebreaks neergezet kunnen worden.
370
*** TODO Zorg dat titelvoering juist is
371
Alle titels van een gebruiker worden bij elkaar opgeslagen, maar soms moet dit
372
vóór de naam, en soms ná de naam:
373
- MSc, BSc, BA, MA, ... Zijn titels van de Bolognaverklaring en worden doorgaans
374
  na de eigenlijke naam gevoerd. Titels van voor deze verklaring (ir., dr.,
375
  prof., ...) moeten vóór de eigenlijke naam komen.
376
*** DONE Template maken voor een Post
377
    CLOSED: [2017-11-22 Wed 18:16]
378
    - State "DONE"       from "TODO"       [2017-11-22 Wed 18:16] \\
379
      Eigenlijk gisteren al afgerond, maar merk nu pas op dat die in mijn TODO
380
      stond... Maar ja. Betreft een recursieve oplossing in agora/post.djhtml.
381
Dit template moet enkel voor een Post zijn, maar moet alle soorten Posts kunnen
382
ondersteunen (videopost, muziekpost, ...). Dit geeft maximale ondersteuning en
383
DRY binnen het hele project.
384
*** TODO Template voor Pages
385
Een template dat voor aangemaakte Pagina's dient. Net zoals Post, alles kunnen
386
ondersteunen.
387
*** TODO Gedragscode opstellen
388
Ik wil heel graag dat iedereen op zijn pagina een hoop vrijheid kan hebben, maar
389
niet dat dat misbruikt wordt. Om Orgmode-pagina's toe te laten, moet er een
390
gedragscode worden opgesteld die duidelijk maakt wat wel en niet door de beugel
391
kan. JS-miners bijvoorbeeld moeten ten strengste verboden zijn.
392
(Waarschijnlijk wordt dit een flat page)
393
*** TODO Template voor Pages-settings
394
Wat er moet kunnen worden ingesteld:
395
- Voor wie de pagina zichtbaar is
396
- Als het een groep betreft, wie het kan aanpassen (LATER)
397
- De /main content/
398
- De banner
399
*** TODO Template voor Group-settings
400
- Wie kan de groep vinden?
401
- Vrije toegang tot groep / enkel op uitnodiging
402
- Kleur van de groep
403
- Naam van de groep
404
405
*** TODO Template voor Courses-settings
406
- Wie kan de pagina zien? (standaard iedereen, maar kan ook enkel leden zijn)
407
- Van welke veranderingen moet er een melding gemaakt worden?
408
  - Nieuwe taken
409
  - Nieuwe documenten
410
  - Niewe meldingen
411
412
** Models
413
*** TODO Verkrijgen van diploma kent automatisch titel toe
414
Veel diploma's geven toegang tot het dragen van een titel, maar als men een
415
diploma krijgt, wordt de titel niet automatisch geüpdatet. Dit zou normaal
416
gezien mogelijk moeten zijn.
417
*** TODO Voeg Slug-velden toe voor bv. vakken
418
Deze /slugs/ laten toe om proper en ondubbelzinnig naar vakken te verwijzen, wat
419
zeer fel van pas komt voor het maken van propere URL's.
420
*** TODO Probeer faculteitskleur als standaard voor te stellen
421
Cursussen worden vaak enkel binnen één faculteit gedoceerd. Probeer deze kleur
422
voor te stellen als standaardkleur voor een pagina van een cursus.
423
424
** DONE Hernoem Communication naar Agora
425
   CLOSED: [2017-11-17 Fri 23:36]
426
   - State "DONE"       from "TODO"       [2017-11-17 Fri 23:36] \\
427
     Hernoemd in alle verwijzingen over het hele programma heen.
428
Lijkt me een toepasselijke naam voor dit onderdeel van het systeem, en is
429
tenminste niet zo onzinnig als uw programma's vernoemen naar een stel Griekse
430
goden /kuch/ UGent /kuch/...
431
432
** Thesis
433
*** TODO Vrijesoftwarekeuze
434
Waarom Vrije software? Schrijf een korte inleidende tekst over vrije software,
435
hoe dit van toepassing is op de universiteit en op Joeni. Leg in subhoofdstukken
436
uit hoe dit slaat op onderwerpen zoals programma-onderhoud, privacy, veiligheid, enz.
437
* TODO Vertaal naar Nederlands
438
Joeni wordt geschreven in Engels, zoals het hoort voor software. Maar de
439
templates en teksten zullen vooral door Nederlandstaligen gebruikt worden. Als
440
het volledige project klaar is, zou er sterk nagedacht moeten worden om aan de
441
vertaling te werken. Frans en andere talen kunnen nog even wachten.
442
443
* Database ontwerpen
444
* Software instellen instellen
445
  :LOGBOOK:
446
  CLOCK: [2017-10-30 Mon 13:20]--[2017-10-30 Mon 14:20] =>  1:00
447
  :END:
448
** DONE Django opstellen
449
   CLOSED: [2017-10-30 Mon 13:44]
450
Wordt Django 2.0 i.v.m. toekomstige ontwikkeling van het project.
451
** CANCELED PostgreSQL opstellen
452
   CLOSED: [2017-10-30 Mon 14:20]
453
   - State "CANCELED"   from "TODO"       [2017-10-30 Mon 14:20] \\
454
     Voor dit project is PostgreSQL /overkill/; Joeni zal gewoon SQLite gebruiken
455
     voor zijn data.
456
** DONE Git instellen
457
   CLOSED: [2017-10-30 Mon 13:50]
458
*** DONE Licentie-informatie toevoegen aan Git-repo (GNU AGPL v3+)
459
    CLOSED: [2017-10-30 Mon 14:05]
460
    - State "DONE"       from "TODO"       [2017-10-30 Mon 14:05] \\
461
      COPYING toegevoegd, namelijk de [[https://www.gnu.org/licenses/agpl.txt][GNU AGPL v3+]]. Ik ga de /copyright notices/ in de
462
      verschillende broncodebestanden nog niet toevoegen, omdat dat /by default/ dan
463
      toch volledige © wordt. Als het project bijna klaar is, zal ik deze wel toevoegen.
464
** DONE Projecten toevoegen
465
   CLOSED: [2017-10-30 Mon 14:20]
466
   - State "DONE"       from "TODO"       [2017-10-30 Mon 14:20] \\
467
     Projecten toegevoegd aan /root directory/.
468
   - [X] Administration :: Het studentendossier, om het zo te zeggen.
469
   - [X] Communication :: Het platform dat de communicatie tussen mensen op de
470
        unief zal onderhouden.
471
   - [X] Courses :: Eigenlijk het BloatBoard van Joeni, alleen zonder de Bloat en
472
                    Board.
473
474
* Agora
475
** TODO Aliassysteem
476
Het moet mogelijk zijn om elke niet-ingenomen alias aan te nemen. Er is echter 1
477
uitzondering:
478
De standaardalias (voornaam_naam) kan enkel worden aangenomen door mensen met
479
exact die naam. Dus als iemand in die vorm een alias neemt, moet het ook
480
zijn/haar voornaam en naam zijn, om identiteitsfraude te voorkomen.