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

Last change on this file since 17253 was 17253, checked in by Henrik Bettermann, 23 months ago

Add AccommodationViewer role.

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