source: main/waeup.kofa/trunk/CHANGES.txt @ 16301

Last change on this file since 16301 was 16299, checked in by Henrik Bettermann, 4 years ago

Implement bulk emailing.

File size: 21.9 KB
Line 
1Changes
2*******
3
41.6.1.dev0 (unreleased)
5=======================
6
7* Implement bulk emailing.
8
9* Make login trouble links more conspicuous.
10
11* Add `ApplicantEmailSource` (not used and tested in base package).
12
13* Redirect to payment ticket page after ticket creation.
14
15* Use Uli's marker substitution hack to inject signature
16  images into pdf files.
17
18* Implement `ExportPDFPersonalDataSlip` (without button
19  in the base package). Rename `ExportPDFBaseDataPlusSlip`
20  `ExportPDFStudyCourseBaseDataSlip`.
21
22* Save email address provided by mandate when referee report
23  is created. Add `RefereeReportManageFormPage` (no button available).
24
25* Show submitted transcript application records on
26  `TranscriptOfficerLandingPage` (not used in base package).
27
28* Implement `ContactApplicantFormPage`.
29
30* Use `Applicant.createStudent` method also to create graduated
31  students from transcript application data (not used in base package).
32
33* Implement `RefereesRemindPage`.
34
35* Remove contact email header and add footer.
36
37* Implement webservice `get_payment`.
38
39* `year` (Year of Entrance) is no longer required when creating
40  an applicants container.
41
42* Implement temporary clearance.
43
44* `reg_number` is no longer a required field in `IApplicantBaseData`.
45
46* Add `entry_session` to student data exporters.
47
48* Add `DownloadTranscript` permission.
49
50* Implement webservice `get_unpaid_payments`.
51
52* Prepare `renderPDFAdmissionLetter` for merging with another pdf document.
53
54* Add `picture_editable` property attribute to `ApplicantsContainer`.
55
56* Add webservice to check if graduated student exists.
57
58* Implement `ExportPDFBaseDataPlusSlip` (without button
59  in the base package)
60
61* Implement `ApplicantRefereeReportExporter`.
62
63* Improve referee reports.
64
65* Use consistent flow value formatting for CGPA.
66
67* Bugfix: If level_session of a studylevel object has changed,
68  coursetickets_catalog must be informed. Otherwise lecturers
69  don't see their students.
70
71* Implement `BatchProcessor.checkCreateRequirements` and
72  `BatchProcessor.checkUpdateRequirements` methods mainly
73  to protect course result lists of graduated student.
74
75* Do not allow course validation if no score has been entered.
76
77* Add `unlock_score` field to `CourseTicketProcessor`.
78
79* Add `UpdateCourseTicketsView`.
80
81* Don't show 'Base Data' header on slips if no form fields do
82  follow.
83
84* When adding course tickets, check if course has already been
85  passed at previous level.
86
87* Add `StudentTrimmedPaymentExporter` (requested by Uniben).
88
89* Add `AccommodationDisplayFormPage`.
90
91* Don't allow students to add former courses in course lists.
92
93* Use kofa-filterbox for filtering users when assigniing
94  local roles in academics section.
95
96* Add `waeup.local.ReportsOfficer` role.
97
98* Add `TrimmedDataExporter`.
99
100* Make `getUsers` customizable.
101
102* Add logging message to `releaseBedIfMaintenanceNotPaid`.
103
104* Provide components for file uploads in the applicants section.
105
106* Copy also files from applicants to students section.
107
108* Reset _curr_stud_id if student could not be created.
109
110* Add `TranscriptDataExporter` and reorganize exporter names.
111
112* Add `session_level`filter to `StudentStudyLevelExporter`.
113
114* Add LetterPDFCreator utility and use this pdf creator
115  for admission slips. letterhead_admission.jpg file
116  must exist in students/static.
117
118* Add application worklfow transition `reset6`.
119
120* Add `StudentOutstandingCoursesExporter`.
121
122* Sort lecturers on scores slip.
123
124* Don't show hint on pdf slips.
125
126* Make max passport picture size customizable.
127
128* Redirect to `ChangePasswordRequestPage` after successfully
129  adding an officer.
130
131* Add get_bursary_data webservice.
132
133* Implement bed selector.
134
135* Implement combi payments.
136
137* Make max file size customizable.
138
139* Add `score_editing_disabled` switch at course level.
140
141* Take `DELETION_MARKER` into consideration when updating passwords.
142
143* Implement parents access to student data.
144
145* Do not print picture on application slip if application is without
146  passport picture.
147
148* Do not copy applicant_id into reg_number field after applicant creation.
149
150* Successful applicant payments do trigger 'approve' transition only
151  if applicant is in state 'started' and either p_category is 'application' or
152  applicant is special.
153
154* Allow to add applicants containers with a number instead of entrance year
155  in container code.
156
157* Add semester filter to Fix `CourseTicketExporter`.
158
159* Add `FacultiesExportJobContainerSelectStudents` view to allow
160  bursary officers to export student data for a  small subset of students
161  by entering a list of student ids or matric numbers.
162
163* Add passport picture switch to applicants containers.
164
165* Use decimal.Decimal to counteract Python floating point limitation.
166
167* Add level 0 (None) to course levels.
168
169* Ease customization of selectable payment categories.
170
171* Make maximum number of files listed in `finished` subfolder
172  customizable.
173
174* Add attendance_sheet.pdf view.
175
176* Implement course result validation workflow for lecturers.
177
178* Add graduated students filter.
179
180* Backup deleted graduated student data somewhere else to ease graduated
181  student data migration.
182
183* Add `transcript_remark` field to study levels. Add page to allow
184  transcript officers editing the field during transcript processing.
185
186* Increase password strength. Officers are now required
187  to set a password which has at least 8 characters and which contains
188  at least one uppercase letter, one lowercase letter and one
189  digit. Stored insecure passwords are no longer accepted.
190  Officers with an insecure password can't login and are
191  redirected to the `ChangePasswordRequestPage` to request a
192  new password.
193
194* Add `AccommodationPaymentsExporter` which can be used by
195  accommodation officers.
196
197* Add ReleaseExpiredAllocationsActionButton which has previously
198  only been used by Uniben.
199
200* Fix get_student_payment_stats. Department codes are not
201  unique. Use its path instead.
202
203* Implement study level 0 (Level Zero) option for storing
204  orphaned course tickets (tickets without level assignment
205  or information). Add `ticket_session` field to `ICourseTicket`.
206
207* Implement new transcript processing workflow.
208
209* Always display applicant payments if they exist.
210
211* Allow `ApplicationsManager` to view statistics.
212
213* Add payment session filter to payment exporters.
214
215* Add `SessionPaymentsOverviewExporter`.
216
217* Rename `StudentPaymentsOverviewExporter`.
218
219* Fix `CourseTicketExporter`. Ticket level and session filter
220  did not work.
221
222* Add payment category filter to payment exporters.
223
224* Remove 'hidden' attribute from ordereddSelectionList which has
225  caused a malfunction in Internet Exporer.
226
227* Set ssl index URL in buildout.cfg
228
229* Use the 'new' recaptcha v2.
230
231* Allow lecturer role assignment also at department level.
232
2331.6 (2018-04-05)
234================
235
236* Add ticket level and session filter to `CourseTicketExporter`.
237
238* Add 'Student Record Creation' Report page.
239
240* Add `CreateStudents` permission and `StudentsCreator` role.
241
242* Do not allow uploading data with trailing whitespaces.
243
244* Do no longer hide the 'Create students' buttons but switch the portal to
245  maintenance mode to ensure that nobody can enter the portal during
246  record creation except for user 'admin'. This guarantees that record
247  creation is only started once.
248
249* Replace `gpa_boundaries` utility attribute by `GPABoundaries` method
250  which may return different values in custom packages depending on faculty,
251  department or certificate code (requested by AAU Ekpoma).
252
253* Allow `ApplicantOnlinePaymentProcessor` to import records without
254  `p_id` column in create mode.
255
256* Add `waeup.showStudents` permission to `ExportManager` role.
257
258* Fix `CertificateProcessor.checkHeaders`. The processor requires both
259  faculty_code *and* department_code in create mode.
260
261* Add 'Update all tickets' button to `StudyLevelEditFormPage`.
262
263* Do not allow to create more than 10 students with a single request to
264  avoid a timeout of Nginx/Apache.
265
266* Redirect to manage page after editing of certificate courses.
267
268* Add `course_category` attribute to course tickets. In the base package,
269  this attribute is omitted from display and manage pages.
270
271* Add `course_category` attribute to certificate courses.
272
273* Simplify configuration of maximum or minimum total credits.
274
275* Add `outstanding` attribute to course tickets.
276
277* Exclude graduated students from `LevelReport`, `SessionResultsPresentation`
278  and `RawScoreReport`.
279
280* Allow applicants in states `admitted`, `not admitted` or `created` to
281  download the payment slip.
282
283* Catch traceback (`RequiredMissing`) if a required field is cleared
284  by import.
285
286* Add role `FingerprintReaderDeviceRole` intended for fingerprint reader
287  devices that access the portal via XMLRPC.
288
289
2901.5 (2017-02-14)
291================
292
293* Happy Valentines Day everybody!
294
295* Sort arguments in table of `ReportsContainerPage`.
296
297* Add `entry_session` and `p_session` filter to Student Payment Statistics
298  generator. Adjust reports: Change footer and filename formats.
299
300* Add officer name fields do `IDepartment` and `IFaculty`.
301  Plugins must be updated!
302
303* Add serial number column to Session Results Presentations.
304
305* Add Raw Score Report to base package.
306
307* Only user 'admin' is allowed to access the `DatacenterSettings` page.
308
309* Show correct level title on Level Reports and Session Results Presentations.
310
311* Get set of selected students also from list of matric numbers.
312
313* Confine Level Reports and Session Results Presentations to certificates.
314
315* Show report number (job_id) on report pdf slips.
316
317* Level report: Count and display the number of courses registered but
318  not taken.
319
320* Add control button to create graduated students.
321
322* Add option to render transcripts without passport picture and QR code.
323
324* Catch Reportlab `LayoutError`.
325
326* Replace `course_registration_allowed` by `course_registration_forbidden`
327  method.
328
329* Add export purge button.
330
331* Add report purge button.
332
333* Add property attribute `total_score` in order to make provision
334  for additional scores (like contineous assessments) in custom
335  packages.
336
337* Make provision against storing other objects than applicant payments
338  in applicant containers.
339
340* Count mandates on configuration page and provide 'Purge' button.
341
342* Start `ApplicantExporter` and `ApplicantPaymentExporter` at the same
343  time when calling `ExportJobContainerJobStart`.
344
345* Add `ApplicantPaymentExporter`.
346
347* Add file upload functionality to `EditScoresPage`.
348
349* Add `LecturerLandingPage` and `LecturerCourses` `ManageLink`
350  viewlet.
351
352* Add `ExportPDFScoresSlip`.
353
354* Add `DownloadScoresView` which is for lecturers only. Remove
355  `waeup.showStudents` from `Lecturer` role. Adjust
356  `DataForLecturerExporter`. Only editable course tickets are being
357  exported.
358
359* Remove application fee fallback option. Application fees can only
360  be set via applicants containers. Hide Payment Tickets section on
361  application pages if fee isn't set.
362
363* Add  `ApplicantOnlinePaymentProcessor`.
364
365* Improve `AddStudyLevelFormPage`.
366
367* Create new exporter for lecturers and further restrict the usage of
368  exporters at course level. Lecturers can only export data of
369  current academic session.
370
371* Show certificate-specific p_level value on payment pages.
372  Ensure that only allowed payment levels can be selected when
373  adding a balance payment.
374
375* Add `flash_notice` field.
376
377* Documentation updates.
378
379* Update pinned versions: six
380
381
3821.4.1 (2016-02-14)
383==================
384
385* Add new application workflow state (`processed`) and transition
386  (`process`).
387
388* Add `DegreeSource` and `degree` field to `ICertificate`.
389  Plugins must be updated!
390
391* Upgrade bootstrap.py script and update some dependencies. For
392  already running instances a new init might be neccessary, i.e.
393  you might have to create a new virtualenv and run bootstap.py
394  and buildout from that new virtualenv to get rid of old
395  package versions in the runtime environment.
396
397* Upgrade versions.cfg to contain bugfix releases of packages we
398  depend on.
399
400
4011.4 (2016-01-14)
402================
403
404* Add button and view which allow students to unregister their
405  current course list unless the courses have not been validated.
406
407* Configure transfer payments and let students enter their desired
408  study course. Save entered text in `p_item` attribute.
409
410* Add further permissions to the local `ApplicationsManager` role and
411  make it assignable at applicants container level.
412
413* Disable rendering of HTML tags in fullnames.
414
415* Add bed statistics components.
416
417* Add option which allows students to select a desired hostel before
418  booking accommodation.
419
420* Add `BedProcessor`.
421
422* Add portal maintenance mode.
423
424* Allow also `reg_number` on public page to check application status
425  without password.
426
427* Remove `beds_reserved` attribute from hostels. Hostels do no longer
428  contain information about reserved bed spaces.
429
430* Add methods and page to release expired bed allocations.
431
432* Use lastname instead of firstname for first-time password requests.
433
434* When building docs, ignore members with dots in name.
435
436
4371.3.3 (2015-10-06)
438==================
439
440* Show file size of pdf documents in the documents section.
441
442* Add `MANIFEST.in`.
443
444
4451.3.2 (2015-09-14)
446==================
447
448* Add public page to check application status without password.
449
450* Fix department breakdown of student statistics.
451
452* Enable purging of applicants containers.
453
454* Enable pre-filling of applicants containers with empty
455  application records which are used during self-registration
456  to avoid excessive growth of the Data.fs.
457
458* Do only allow one running export job.
459
460* Add switch to disable all exports.
461
462* Enable import of list-of-choices fields.
463
464* Include 'end day' when searching for payments in a given period.
465
466* Do not create special application payment tickets with zero amount.
467
468* Remove manual clearance lock. Replace `clearance_locked` field by
469  property attribute.
470
471* Make student email field required.
472
473* Rename application workflow transitions and remove forbidden transitions.
474
475* Rename 'application section' for the sake of consistency.
476
477* Rename student views which are not layout-aware and thus not pages.
478
479* Register KofaSourceOrderedMultiSelectWidget for IterableSource and
480  KofaSourceOrderedMultiSelectWidget for IVocabularyTokenized.
481
482* Implement session-specific course registration deadline and
483  late registration payment.
484
485* Remove quite old bug in `doImport`: Replace empty strings *and* lists with
486  ignore-markers in update *and* create mode.
487
488* Add StudentUnpaidPaymentExporter to export only unpaid tickets.
489  This exporter is designed for finding and finally purging outdated
490  payment ticket.
491
492* Remove deprecated xml importer and exporter components.
493
494* Rearrange datacenter upload page. Provide modal windows to view all
495  processors and sources and vocabularies.
496
497* Reorganize doctests. Remove deprecated doctests.
498
499* Enable temporary suspension of officer accounts. Plugins must be
500  updated after restart.
501
502* Rename 'Portal Users' 'Officers'.
503
504* Add link 'Kofa Docs for this page' at the end of the content box
505  which refers to the corresponding section of the
506  `Kofa Documentation <http://kofa-doc.waeup.org>`_.
507
508* Filter students by current level in reports.
509
510* Add `StudentsUtils.increaseMatricInteger` method which allows to use various
511  matric number counters when computing the matric number.
512
513* Bypass school fee payment activation code creation if student is allowed
514  to proceed to next session.
515
516* Convert `level` into a schema field to be consistent with the documentation.
517
518* Rename classes `StudentPaymentsExporter` and `BedTicketsExporter` to be
519  in accordance with other exporter names.
520
521* Add `ReportsOfficer` and `ReportsManager` roles with corresponding
522  permissions.
523
524* Do not automatically allow import managers to import user data.
525
526* Skip empty rows produced by spreadsheet software.
527
528* Add components to  configure a student export jobs in faculties.
529
530* `StudentOnlinePaymentProcessor` : Raise `DuplicationError` if payment
531  (in state ``paid``) with same `p_session` and `p_category` exists.
532
533* Add new payment state ``waived``. This state can only be set by import
534  and is only used for the payments overview exporter to
535  mark sessions with waived fees.
536
537* Add exporter methods and export page to filter student data exports
538  by entering a list of student ids.
539
540* Student statistic can now be broken down by faculties or by departments.
541
542* Check if `p_id` exists in payments catalog when importing payment tickets in
543  create mode.
544
545
5461.3.1 (2015-01-14)
547==================
548
549* 1.3 was a brown bag release. Fix uploaded files.
550
551
5521.3 (2015-01-13)
553================
554
555* Add documents package.
556
557* Do not compare ResultEntry objects but their attributes.
558
559* Modify getWidgetsData so that we always get the same error format.
560
561* Validate all codes in university.
562
563* Catch traceback when creating an application slip with a corrupted
564  image file.
565
566* Remove deprecated HTML and REST widgets and use html2dict and rest2dict
567  instead.
568
569* UserProcessor: Check if imported roles do exist in the portal.
570
571* Enable localization of batch processing modules.
572
573* Hide 'Create students' button. Only user admin can see this button.
574
575* Add application_slip_notice field to ApplicantsContainer.
576
577* Remove 'Size' column from logfiles table.
578
579* Add permission, page and button to mass-clear all students in a department.
580
581* Hide export download button 24 hours after file generation.
582
583* Add helper to allow `meminfo` checks for cached memory, etc.
584
585* Allow external checks of system load before performing expensive
586  actions.
587
588* Add new dependency: `psutil` (required to check system state).
589
590* Show flash message on general search page for the academic section.
591
592* Fix `CertificateCourseProcessor`. Mandatory is not a required field
593  and might be missing in import files. Improve logging. Extend and
594  fix CertCourseProcessorTests.
595
596* Provide customizable method for disabling clearance by clearance
597  officers.
598
599* Merge Javascript functions into one file. Add Javascript function to
600  calculate copyright notice year automatically.
601
602* Use lastname (surname) instead of firstname to verify found
603  application record on ApplicantRegistrationPage.
604
605* Append hash '#' also to datetimes to circumvent unwanted excel
606  automatic.
607
608* Method for (customizable) application passport upload requirements
609  added.
610
611* Filter payment ticket data exports by specifying the payment_date
612  period.
613
614* Method for (customizable) application payment slip download
615  requirements added.
616
617* Method for (customizable) application payment ticket upload
618  requirements added.
619
620* Remove unused rowadd javascript function.
621
622* certcode and reg_number added to DataForBursaryExporter.
623
624* Some batch processor names corrected.
625
626* Fixed ReST markup in setup.py long description.
627
628
6291.2 (2014-06-16)
630================
631
632* Redirect to login page after using password mandate.
633
634* Adding student payment tickets is logged.
635
636* Provide XMLRPC services for storing and retrieving fingerprint
637  scans.
638
639* Sort ContextualDictSource by dictionary values not by keys.
640
641* Add regular school fee and balance payments when exporting payments
642  overviews.
643
644* Add samePaymentMade method to StudentsUtils.
645
646* Fingerprint file upload enabled.
647
648* is_fresh property method added to Student class.
649
650* Special application procedure modified. Special applicants must submit
651  their form before they can download payment slips. Thus the regular
652  workflow is now applied but, in contrast to regular applications,
653  special applicants can create and pay more than one payment ticket.
654  Also application slips are hidden.
655
656* Add setMatricNumber and constructMatricNumber methods to StudentsUtils.
657
658* When sending mails, always set from-address to 'no-reply@waeup.org'.
659  Real from-addresses are now set in Cc and Reply-To fields. This is
660  to tackle problems with yahoo (does not allow yahoo.com mails to be
661  sent from non-yahoo servers).
662
663* Multiple payments in special application containers enabled.
664  Special payment applicants remain in state started after payment.
665
666* File input fields brought into shape with Bootstrap 3.
667
668* Transcript and access code pagetemplates adjusted.
669
670* Print QR codes on all student slips.
671
672* Allow adding current_level to base data section on all student slips
673  (requested by Uniben).
674
675* Windows is no longer supported. Installation manual removed.
676
677* Added JS helper to scroll to sequencelists after adding/removing items.
678
679
6801.1 (2014-03-13)
681================
682
683* Add display_fullname column to `CourseTicketExporter` (requested by Uniben).
684
685* Do also export student and course ticket data of students on probation.
686
687* 'Create student' option removed from 'Application Transition'
688  select field.
689
690* API docs added.
691
692* Back-to links replaced by animated jQuery plugins.
693
694* Default frontpage text updated.
695
696* Use absolute urls on datacenter pages.
697
698* Provide customizable method for disabling student payments.
699
700* After login and logout, regular users (officers) are redirected
701  to the portal's index page not to the portal's root. The
702  root URL can now be rewritten be Nginx or Apache so that the user
703  is being redirected to the university website
704  when entering the root URL directly or clicking the acronym.
705
706* Show tooltip alert and warning window before updating plugins.
707
708* JSAction has been deprecated. KofaAction can be used instead. Additional
709  parameters can be used in @action decorators to enable tooltips and/or
710  warning windows. The old @jsaction decorator still triggers a default
711  warning message.
712
713* jquery-ui.min.js is also used for tooltips.
714
715* Do not create TSC AC batch when updating plugins.
716  All TSC batches are created.
717
718* Make table on applicantsrootpage responsive.
719
720* Change width of input, select and textarea fields.
721
722* Use only https in theme.html.
723
724* INSTALL.txt updated and integrated into Sphinx documentation.
725
726* Redundancies removed in docs.
727
728
7291.0 (2014-02-22)
730================
731
732* Diazofied the complete package.
733
734
7350.2.1 (2014-02-21)
736==================
737
738* Send mails to from-address, if site-wide config admin is
739  different from it.
740
741* Change flash message for successful applicants.
742
743* Use more attributes of applicants with payer objects.
744
745* Update copyright infos (year).
746
747* Localization updates.
748
749
7500.2 (2014-01-09)
751================
752
753Tons of changes.
754
755
7560.1 (never released)
757====================
758
759Initial version. Copy from waeup.sirp.
Note: See TracBrowser for help on using the repository browser.