Changeset 17737


Ignore:
Timestamp:
16 Apr 2024, 06:29:43 (5 months ago)
Author:
Henrik Bettermann
Message:

More adjustments.

Location:
main/kofacustom.udss/trunk/src/kofacustom/udss
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • main/kofacustom.udss/trunk/src/kofacustom/udss/locales/en/LC_MESSAGES/waeup.kofa.po

    r17712 r17737  
    66"Last-Translator: Henrik Bettermann <henrik@waeup.org>\n"
    77"Language-Team: \n"
     8"Language: en\n"
    89"MIME-Version: 1.0\n"
    910"Content-Type: text/plain; charset=iso-8859-1\n"
    1011"Content-Transfer-Encoding: 8bit\n"
     12"X-Generator: Poedit 3.2.2\n"
    1113
    1214msgid "Academics"
    13 msgstr "Classes"
     15msgstr "School Structure"
     16
     17msgid "Academic Section"
     18msgstr "School Structure"
     19
     20msgid "Manage academic section"
     21msgstr "Manage school structure"
     22
     23msgid "Search academic section"
     24msgstr "Search school structure"
     25
     26msgid "Faculties"
     27msgstr "Schools"
    1428
    1529msgid "Name of faculty"
    16 msgstr "Name of class"
     30msgstr "Name of school"
    1731
    1832msgid "The code chosen already exists in this faculty."
    19 msgstr "The code chosen already exists in this class."
     33msgstr "The code chosen already exists in this school."
    2034
    2135msgid "Manage faculty"
    22 msgstr "Manage class"
     36msgstr "Manage school"
    2337
    2438msgid "Add faculty"
    25 msgstr "Add class"
     39msgstr "Add school"
    2640
    2741msgid "Faculty ${a} added."
    28 msgstr "Class ${a} added."
     42msgstr "School ${a} added."
    2943
    3044msgid "Faculty Code"
    31 msgstr "Class Code"
     45msgstr "School Code"
    3246
    3347msgid "Faculty:"
    34 msgstr "Class:"
     48msgstr "School:"
    3549
    3650msgid "Faculty Processor"
    37 msgstr "Faculty (Class) Processor"
     51msgstr "School Processor"
    3852
    3953msgid "Faculty Officer 1"
    40 msgstr "Class Officer 1"
     54msgstr "School Officer 1"
    4155
    4256msgid "Faculty Officer 2"
    43 msgstr "Class Officer 2"
    44 
    45 msgid "Departments"
    46 msgstr "Arms"
    47 
    48 msgid "Department"
    49 msgstr "Arm"
    50 
    51 msgid "Add department"
    52 msgstr "Add arm"
    53 
    54 msgid "Manage department"
    55 msgstr "Manage arm"
    56 
    57 msgid "'All students, who requested clearance in this department, will be cleared. Are you sure?'"
    58 msgstr "'All students, who requested clearance in this arm, will be cleared. Are you sure?'"
    59 
    60 msgid "in department"
    61 msgstr "in arm"
    62 
    63 msgid "Name of department"
    64 msgstr "Name of arm"
    65 
    66 msgid "Department ${a} added."
    67 msgstr "Arm ${a} added."
    68 
    69 msgid "Department Code"
    70 msgstr "Arm Code"
    71 
    72 msgid "Department:"
    73 msgstr "Arm:"
    74 
    75 msgid "Department Processor"
    76 msgstr "Department (Arm) Processor"
    77 
    78 msgid "Department Officer 1"
    79 msgstr "Arm  Officer 1"
    80 
    81 msgid "Department Officer 2"
    82 msgstr "Arm  Officer 2"
    83 
    84 msgid "Department Officer 3"
    85 msgstr "Arm  Officer 3"
    86 
    87 msgid "Department Officer 4"
    88 msgstr "Arm Officer 4"
     57msgstr "School Officer 2"
     58
     59#: waeup/kofa/browser/templates/certificatecoursepage.pt:26
     60msgid "Level:"
     61msgstr ""
     62
     63#: waeup/kofa/browser/viewlets.py:1093
     64msgid "Course Levels"
     65msgstr ""
     66
     67#: waeup/kofa/browser/viewlets.py:1101
     68#: waeup/kofa/students/browser_templates/studycoursemanagepage.pt:12
     69msgid "Study Levels"
     70msgstr ""
     71
     72#: waeup/kofa/students/batching.py:607
     73msgid "StudentStudyLevel Processor"
     74msgstr ""
     75
     76#: waeup/kofa/students/browser.py:1226 waeup/kofa/students/browser.py:1300
     77msgid "Remove selected levels"
     78msgstr ""
     79
     80#: waeup/kofa/students/browser.py:1227 waeup/kofa/students/browser.py:1273
     81msgid "Add study level"
     82msgstr ""
     83
     84#: waeup/kofa/students/browser.py:1252
     85msgid "Current level not available for certificate."
     86msgstr ""
     87
     88#: waeup/kofa/students/browser.py:1278
     89msgid "You must select a session for the level."
     90msgstr ""
     91
     92#: waeup/kofa/students/browser.py:1283
     93msgid "Level zero must not be assigned a session."
     94msgstr ""
     95
     96#: waeup/kofa/students/browser.py:1294
     97msgid "Study level has been added."
     98msgstr ""
     99
     100#: waeup/kofa/students/browser.py:1296 waeup/kofa/students/browser.py:3245
     101msgid "This level exists."
     102msgstr ""
     103
     104#: waeup/kofa/students/browser.py:1306
     105msgid "No study level selected."
     106msgstr ""
     107
     108#: waeup/kofa/students/browser.py:1725
     109msgid "Current level does not match certificate levels."
     110msgstr ""
     111
     112#: waeup/kofa/students/browser.py:1811
     113msgid "Level Data"
     114msgstr ""
     115
     116#: waeup/kofa/students/browser.py:1832
     117msgid "Level Courses"
     118msgstr ""
     119
     120#. Default: ""
     121#: waeup/kofa/students/browser.py:1982
     122msgid "Edit transcript remark of level ${a}"
     123msgstr ""
     124
     125#: waeup/kofa/students/browser.py:2009 waeup/kofa/students/browser.py:2035
     126msgid "This is not the student's current level."
     127msgstr ""
     128
     129#: waeup/kofa/students/browser.py:2080
     130msgid "This is not your current level."
     131msgstr ""
     132
     133#. Default: ""
     134#: waeup/kofa/students/browser.py:3218
     135msgid "Add current level ${a}"
     136msgstr ""
     137
     138msgid "Current Level"
     139msgstr ""
     140
     141#: waeup/kofa/students/browser.py:3737
     142msgid "at any level"
     143msgstr ""
     144
     145msgid "Level"
     146msgstr ""
     147
     148#: waeup/kofa/students/browser.py:4293
     149msgid "All Levels"
     150msgstr ""
     151
     152#: waeup/kofa/students/browser_templates/exportconfig.pt:113
     153msgid "Course Ticket Level"
     154msgstr ""
     155
     156#: waeup/kofa/students/browser_templates/reverttransfer.pt:4
     157msgid ""
     158"Student transfers can be reverted one after the other. When reverting a "
     159"transfer, the active study course will be entirely removed including all "
     160"containing course lists (study levels) and the previous study course will be "
     161"reactivated."
     162msgstr ""
     163
     164#: waeup/kofa/students/browser_templates/studycoursemanagepage.pt:40
     165#: waeup/kofa/students/browser_templates/studycoursepage.pt:69
     166#: waeup/kofa/students/browser_templates/studycoursemanagepage.pt:41
     167#: waeup/kofa/students/browser_templates/studycoursepage.pt:70
     168msgid "Level Title"
     169msgstr ""
     170
     171#: waeup/kofa/students/browser_templates/studycoursepage.pt:64
     172msgid "Study Levels (Course Lists)"
     173msgstr ""
     174
     175#: waeup/kofa/students/browser_templates/studycoursepage.pt:83
     176msgid "There are no levels registered yet."
     177msgstr ""
     178
     179#: waeup/kofa/students/browser_templates/studyleveladdpage.pt:4
     180msgid ""
     181"In Kofa a study level is a container for courses, which means it can list "
     182"the courses taken by the student at a certain level. The container also "
     183"stores and provides the information when and by whom the course list was "
     184"validated, in which session the level was taken and which verdict the "
     185"student finally obtained."
     186msgstr ""
     187
     188#: waeup/kofa/students/browser_templates/studylevelmanagepage.pt:7
     189#: waeup/kofa/students/browser_templates/studylevelremarkpage.pt:7
     190msgid "Study Level Data"
     191msgstr ""
     192
     193#: waeup/kofa/students/export.py:476
     194msgid "Student Study Levels (Data Backup)"
     195msgstr ""
     196
     197#: waeup/kofa/students/export.py:499
     198msgid "First Course Student Study Levels (Data Backup)"
     199msgstr ""
     200
     201#: waeup/kofa/students/export.py:510
     202msgid "Second Course Student Study Levels (Data Backup)"
     203msgstr ""
     204
     205#: waeup/kofa/students/export.py:943
     206msgid "Study Levels Overview"
     207msgstr ""
     208
     209#: waeup/kofa/students/interfaces.py:770
     210#: waeup/kofa/students/browser_templates/exportconfig_course.pt:23
     211#: waeup/kofa/students/browser_templates/exportconfig.pt:99
     212msgid "Level Session"
     213msgstr ""
     214
     215#: waeup/kofa/students/interfaces.py:858 waeup/kofa/students/interfaces.py:901
     216#: waeup/kofa/students/interfaces.py:924
     217msgid "Payment Level"
     218msgstr ""
     219
     220#: waeup/kofa/students/reports/browser_templates/levelreportgeneratorpage.pt:2
     221msgid ""
     222"Please pick the certificate, session and level for which the report should "
     223"be generated. The report will be processed and then made available for you "
     224"to view/download."
     225msgstr ""
     226
     227#: waeup/kofa/students/reports/level_report.py:134
     228#: waeup/kofa/students/reports/level_report.py:292
     229msgid "Level Report"
     230msgstr ""
     231
     232#: waeup/kofa/students/reports/level_report.py:318
     233msgid "Create level report"
     234msgstr ""
     235
     236#: waeup/kofa/students/reports/session_results_presentation.py:180
     237msgid "all levels"
     238msgstr ""
     239
     240#: waeup/kofa/students/utils.py:218
     241msgid "Current Level:"
     242msgstr ""
     243
     244#: waeup/kofa/students/utils.py:765
     245msgid "Course has already been passed at previous level."
     246msgstr ""
     247
     248#. Default: ""
     249#: waeup/kofa/students/vocabularies.py:107
     250#: waeup/kofa/students/vocabularies.py:115
     251msgid "Error: wrong level id ${value}"
     252msgstr ""
     253
     254#: waeup/kofa/students/vocabularies.py:110
     255msgid "Level Zero"
     256msgstr ""
     257
     258#. Default: ""
     259#: waeup/kofa/students/vocabularies.py:120
     260#: waeup/kofa/students/vocabularies.py:123
     261msgid "Error: level id ${value} out of range"
     262msgstr ""
     263
     264#: waeup/kofa/university/interfaces.py:265
     265msgid "Start Level"
     266msgstr ""
     267
     268#: waeup/kofa/university/interfaces.py:272
     269msgid "End Level"
     270msgstr ""
     271
     272#: waeup/kofa/university/interfaces.py:339
     273#: waeup/kofa/university/interfaces.py:341
     274msgid "Start level and end level must correspond."
     275msgstr ""
     276
     277#: waeup/kofa/university/interfaces.py:343
     278#: waeup/kofa/university/interfaces.py:346
     279msgid "Study mode, start level and end level must correspond."
     280msgstr ""
     281
     282#: waeup/kofa/university/vocabularies.py:41
     283msgid "Postgraduate Level"
     284msgstr ""
     285
     286#: waeup/kofa/university/vocabularies.py:42
     287msgid "Modules Level"
     288msgstr ""
    89289
    90290msgid "Pre-Studies"
     
    121321msgstr "Child Base Data"
    122322
    123 msgid "I confirm that the Passport Photograph uploaded on this form is a true picture of me."
    124 msgstr "I confirm that the Passport Photograph uploaded on this form is a true picture of the child."
     323msgid ""
     324"I confirm that the Passport Photograph uploaded on this form is a true "
     325"picture of me."
     326msgstr ""
     327"I confirm that the Passport Photograph uploaded on this form is a true "
     328"picture of the child."
  • main/kofacustom.udss/trunk/src/kofacustom/udss/students/browser.py

    r17689 r17737  
    2121from zope.component import getUtility
    2222from zope.security import checkPermission
     23from zope.formlib.textwidgets import BytesDisplayWidget
    2324from hurry.workflow.interfaces import IWorkflowInfo
    2425from waeup.kofa.interfaces import REQUESTED, IExtFileStore, IKofaUtils
     
    2728from waeup.kofa.browser.layout import action, jsaction
    2829from waeup.kofa.students.browser import (
    29     StudyLevelEditFormPage, StudyLevelDisplayFormPage,
    30     StudentBasePDFFormPage, ExportPDFCourseRegistrationSlip,
    31     CourseTicketDisplayFormPage, StudentTriggerTransitionFormPage,
    32     PaymentsManageFormPage, msave, emit_lock_message)
     30    StudentPersonalDisplayFormPage,
     31    StudentPersonalManageFormPage,
     32    StudentPersonalEditFormPage,
     33    StudentClearanceDisplayFormPage,
     34    StudentClearanceManageFormPage,
     35    StudentClearanceEditFormPage,
     36    ExportPDFClearanceSlip,
     37    StudyLevelEditFormPage,
     38    StudyLevelDisplayFormPage,
     39    StudentBasePDFFormPage,
     40    ExportPDFCourseRegistrationSlip,
     41    CourseTicketDisplayFormPage,
     42    StudentTriggerTransitionFormPage,
     43    PaymentsManageFormPage,
     44    msave, emit_lock_message)
    3345from waeup.kofa.students.interfaces import IStudentsUtils, ICourseTicket
    3446from waeup.kofa.students.workflow import FORBIDDEN_POSTGRAD_TRANS
     
    3951    NigeriaOnlinePaymentAddFormPage,
    4052    NigeriaExportPDFPaymentSlip,
    41     NigeriaExportPDFClearanceSlip,
    4253    )
    4354
    4455from kofacustom.udss.students.interfaces import (
    45     ICustomStudentOnlinePayment, ICustomStudentStudyCourse,
    46     ICustomStudentStudyLevel)
     56    ICustomStudentOnlinePayment,
     57    ICustomStudentStudyCourse,
     58    ICustomStudentStudyLevel,
     59    ICustomStudentPersonal,
     60    ICustomStudentClearance)
    4761from kofacustom.udss.interfaces import MessageFactory as _
    4862
     
    5569    def manage_payments_allowed(self):
    5670        return checkPermission('waeup.manageStudent', self.context)
     71
     72class CustomStudentPersonalDisplayFormPage(StudentPersonalDisplayFormPage):
     73    """ Page to display student personal data
     74    """
     75    form_fields = grok.AutoFields(ICustomStudentPersonal)
     76    form_fields['perm_address'].custom_widget = BytesDisplayWidget
     77    form_fields['mother_res_address'].custom_widget = BytesDisplayWidget
     78    form_fields['father_res_address'].custom_widget = BytesDisplayWidget
     79    form_fields['sponsor_res_address'].custom_widget = BytesDisplayWidget
     80    form_fields[
     81        'personal_updated'].custom_widget = FriendlyDatetimeDisplayWidget('le')
     82
     83class CustomStudentPersonalEditFormPage(StudentPersonalEditFormPage):
     84    """ Page to edit personal data
     85    """
     86    form_fields = grok.AutoFields(ICustomStudentPersonal).omit('personal_updated')
     87
     88class CustomStudentPersonalManageFormPage(StudentPersonalManageFormPage):
     89    """ Page to edit personal data
     90    """
     91    form_fields = grok.AutoFields(ICustomStudentPersonal)
     92    form_fields['personal_updated'].for_display = True
     93    form_fields[
     94        'personal_updated'].custom_widget = FriendlyDatetimeDisplayWidget('le')
     95
     96class CustomStudentClearanceDisplayFormPage(StudentClearanceDisplayFormPage):
     97    """ Page to display student clearance data
     98    """
     99
     100    @property
     101    def form_fields(self):
     102        form_fields = grok.AutoFields(
     103            ICustomStudentClearance).omit('clearance_locked')
     104        if not getattr(self.context, 'officer_comment'):
     105            form_fields = form_fields.omit('officer_comment')
     106        else:
     107            form_fields['officer_comment'].custom_widget = BytesDisplayWidget
     108        return form_fields
     109
     110class CustomExportPDFClearanceSlip(ExportPDFClearanceSlip):
     111    """Deliver a PDF slip of the context.
     112    """
     113    omit_fields = ('password', 'suspended', 'suspended_comment',
     114        'phone', 'adm_code', 'email', 'date_of_birth', 'current_level',
     115        'flash_notice')
     116
     117    @property
     118    def form_fields(self):
     119        form_fields = grok.AutoFields(
     120            ICustomStudentClearance).omit('clearance_locked')
     121        if not getattr(self.context, 'officer_comment'):
     122            form_fields = form_fields.omit('officer_comment')
     123        return form_fields
     124
     125class CustomStudentClearanceManageFormPage(StudentClearanceManageFormPage):
     126    """ Page to edit student clearance data
     127    """
     128
     129    @property
     130    def form_fields(self):
     131        form_fields = grok.AutoFields(
     132            ICustomStudentClearance).omit('clr_code')
     133        return form_fields
     134
     135class CustomStudentClearanceEditFormPage(StudentClearanceEditFormPage):
     136    """ View to edit student clearance data by student
     137    """
     138
     139    @property
     140    def form_fields(self):
     141        form_fields = grok.AutoFields(ICustomStudentClearance).omit(
     142            'clearance_locked', 'clr_code', 'officer_comment',
     143            'physical_clearance_date')
     144        return form_fields
  • main/kofacustom.udss/trunk/src/kofacustom/udss/students/interfaces.py

    r17689 r17737  
    1818
    1919from zope import schema
     20from waeup.kofa.interfaces import SimpleKofaVocabulary, academic_sessions_vocab
    2021from waeup.kofa.students.vocabularies import StudyLevelSource
     22from waeup.kofa.students.interfaces import IStudentPersonal, IUGStudentClearance
    2123from kofacustom.nigeria.students.interfaces import (
    2224    INigeriaStudentBase, INigeriaUGStudentClearance, INigeriaPGStudentClearance,
     
    3335    """
    3436
    35 class ICustomStudentPersonal(INigeriaStudentPersonal):
     37class ICustomStudentPersonal(IStudentPersonal):
    3638    """Student personal data.
    3739
    3840    """
    3941
    40 class ICustomUGStudentClearance(INigeriaUGStudentClearance):
     42    religion = schema.Choice(
     43        title = u'Religion',
     44        default = 'no_say',
     45        required = False,
     46        vocabulary = SimpleKofaVocabulary(
     47            (_('Muslim'), 'muslim'),
     48            (_('Christian'), 'christian'),
     49            (_('Others'), 'others'),
     50            (_('Prefer not to say'), 'no_say'),)
     51        )
     52
     53    disabled = schema.Bool(
     54        title = u'Disabled',
     55        default = False,
     56        required = False,
     57        )
     58
     59    father_firstname = schema.TextLine(
     60        title = _(u'First Name of Father'),
     61        required = False,
     62        )
     63    father_middlename = schema.TextLine(
     64        title = _(u'Middle Name of Father'),
     65        required = False,
     66        )
     67    father_lastname = schema.TextLine(
     68        title = _(u'Last Name (Surname) of Father'),
     69        required = False,
     70        )
     71    father_status = schema.TextLine(
     72        title = _(u'Father\'s Status and Rank'),
     73        required = False,
     74        )
     75    father_employer = schema.TextLine(
     76        title = _(u'Father\'s Employer'),
     77        required = False,
     78        )
     79    father_res_address = schema.Text(
     80        title = _(u'Father\'s Residential Address'),
     81        required = False,
     82        )
     83    father_contact_address = schema.Text(
     84        title = _(u'Father\'s Contact Address (incl. P.O. Box)'),
     85        required = False,
     86        )
     87    mother_firstname = schema.TextLine(
     88        title = _(u'First Name of Mother'),
     89        required = False,
     90        )
     91    mother_middlename = schema.TextLine(
     92        title = _(u'Middle Name of Mother'),
     93        required = False,
     94        )
     95    mother_lastname = schema.TextLine(
     96        title = _(u'Last Name (Surname) of Mother'),
     97        required = False,
     98        )
     99    mother_status = schema.TextLine(
     100        title = _(u'Mother\'s Status and Rank'),
     101        required = False,
     102        )
     103    mother_employer = schema.TextLine(
     104        title = _(u'Mother\'s Employer'),
     105        required = False,
     106        )
     107    mother_res_address = schema.Text(
     108        title = _(u'Mother\'s Residential Address'),
     109        required = False,
     110        )
     111    mother_contact_address = schema.Text(
     112        title = _(u'Mother\'s Contact Address (incl. P.O. Box)'),
     113        required = False,
     114        )
     115    sponsor_firstname = schema.TextLine(
     116        title = _(u'First Name of sponsor'),
     117        required = False,
     118        )
     119    sponsor_middlename = schema.TextLine(
     120        title = _(u'Middle Name of Sponsor'),
     121        required = False,
     122        )
     123    sponsor_lastname = schema.TextLine(
     124        title = _(u'Last Name (Surname) of Sponsor'),
     125        required = False,
     126        )
     127    sponsor_status = schema.TextLine(
     128        title = _(u'Sponsor\'s Status and Rank'),
     129        required = False,
     130        )
     131    sponsor_employer = schema.TextLine(
     132        title = _(u'Sponsor\'s Employer'),
     133        required = False,
     134        )
     135    sponsor_res_address = schema.Text(
     136        title = _(u'Sponsor\'s Residential Address'),
     137        required = False,
     138        )
     139    sponsor_contact_address = schema.Text(
     140        title = _(u'Sponsor\'s Contact Address (incl. P.O. Box)'),
     141        required = False,
     142        )
     143
     144class ICustomStudentClearance(IUGStudentClearance):
    41145    """Representation of ug student clearance data.
    42146
    43147    """
    44148
    45 class ICustomPGStudentClearance(INigeriaPGStudentClearance):
    46     """Representation of pg student clearance data.
    47 
    48     """
    49 
    50 
    51 class ICustomStudent(ICustomStudentBase,ICustomUGStudentClearance,
    52     ICustomPGStudentClearance,ICustomStudentPersonal):
     149class ICustomStudent(ICustomStudentBase,ICustomStudentClearance,
     150    ICustomStudentPersonal):
    53151    """Representation of a student.
    54152
Note: See TracChangeset for help on using the changeset viewer.