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

Last change on this file since 16746 was 16671, checked in by Henrik Bettermann, 3 years ago

Ease customization of portrait upload conditions.

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