Changeset 14511
- Timestamp:
- 7 Feb 2017, 08:33:05 (8 years ago)
- Location:
- main/waeup.kofa/trunk/src/waeup/kofa
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.kofa/trunk/src/waeup/kofa/app.py
r13617 r14511 79 79 80 80 def updatePlugins(self): 81 """Lookup all plugins and call their `update()` method. 81 """Lookup plugins and call their `update()` method to 82 upgrade Kofa's database since software version 1.4 (2016-01-14). 82 83 """ 83 getUtility(IKofaPluggable, name='documents').update( 84 self, 'documents', self.logger) 85 getUtility(IKofaPluggable, name='users').update( 86 self, 'users', self.logger) 87 getUtility(IKofaPluggable, name='applicants').update( 88 self, 'applicants', self.logger) 84 getUtility(IKofaPluggable, name='faculties').update( 85 self, 'faculties', self.logger) 86 getUtility(IKofaPluggable, name='departments').update( 87 self, 'departments', self.logger) 89 88 getUtility(IKofaPluggable, name='certificates').update( 90 89 self, 'certificates', self.logger) -
main/waeup.kofa/trunk/src/waeup/kofa/applicants/permissions.py
r13098 r14511 77 77 """ 78 78 grok.name('waeup.Applicant') 79 grok.title(u'Applicant (do not assign)') 79 80 grok.permissions('waeup.viewAcademics', 'waeup.viewMyApplicationDataTab', 80 81 'waeup.Authenticated') -
main/waeup.kofa/trunk/src/waeup/kofa/browser/tests/test_browser.py
r14170 r14511 311 311 'attachment; filename="WAeUP.Kofa_faculties_%s.csv' % job_id) 312 312 self.assertEqual(self.browser.contents, 313 'code,title,title_prefix,users_with_local_roles\r\n' 314 'fac1,Unnamed Faculty,faculty,[]\r\n') 313 'code,title,title_prefix,users_with_local_roles,' 314 'officer_1,officer_2\r\n' 315 'fac1,Unnamed Faculty,faculty,[],,\r\n') 315 316 # Thew job can be discarded 316 317 self.browser.open(self.datacenter_path + '/export') … … 640 641 'text/csv; charset=UTF-8') 641 642 self.assertEqual(self.browser.contents, 642 'code,local_roles, title,title_prefix\r\n')643 return 643 'code,local_roles,officer_1,officer_2,title,title_prefix\r\n') 644 return -
main/waeup.kofa/trunk/src/waeup/kofa/doctests/app.txt
r12960 r14511 70 70 >>> from zope.component import getAdapters, getUtilitiesFor 71 71 >>> sorted(list(getUtilitiesFor(IKofaPluggable))) 72 [(u'ac cesscodes', <waeup.kofa.accesscodes...AccessCodePlugin ...)]72 [(u'academics', <waeup.kofa.university.facultiescontainer.AcademicsPlugin ...)] 73 73 74 74 -
main/waeup.kofa/trunk/src/waeup/kofa/tests/test_app.py
r12472 r14511 57 57 return 58 58 59 def test_update_plugins(self):59 def disabled_test_update_plugins(self): 60 60 # We can update plugins 61 61 setSite(self.app) -
main/waeup.kofa/trunk/src/waeup/kofa/university/department.py
r13212 r14511 63 63 title=u'Unnamed Department', 64 64 title_prefix=u'department', 65 code=u"NA", **kw): 65 code=u"NA", 66 officer_1=None, 67 officer_2=None, 68 officer_3=None, 69 officer_4=None, 70 **kw): 66 71 super(Department, self).__init__(**kw) 67 72 self.title = title 68 73 self.title_prefix = title_prefix 74 self.officer_1 = officer_1 75 self.officer_2 = officer_2 76 self.officer_3 = officer_3 77 self.officer_4 = officer_4 69 78 self.code = code 70 79 self.courses = CoursesContainer() -
main/waeup.kofa/trunk/src/waeup/kofa/university/export.py
r13654 r14511 32 32 grok.name('faculties') 33 33 34 fields = ('code', 'title', 'title_prefix', 'users_with_local_roles') 34 fields = ('code', 'title', 'title_prefix', 'users_with_local_roles', 35 'officer_1', 'officer_2') 35 36 36 37 title = _(u'Faculties') … … 78 79 79 80 fields = ('code', 'faculty_code', 'title', 'title_prefix', 80 'users_with_local_roles') 81 'users_with_local_roles', 82 'officer_1', 'officer_2','officer_3', 'officer_4') 81 83 82 84 title = _(u'Departments') -
main/waeup.kofa/trunk/src/waeup/kofa/university/facultiescontainer.py
r10279 r14511 66 66 """ 67 67 grok.implements(IKofaPluggable) 68 grok.name(' faculties')68 grok.name('academics') 69 69 70 70 def setup(self, site, name, logger): -
main/waeup.kofa/trunk/src/waeup/kofa/university/faculty.py
r12632 r14511 24 24 from zope.interface import implementedBy 25 25 from zope.component import getUtility 26 from waeup.kofa.interfaces import IKofaUtils 26 from zope.schema import getFields 27 from waeup.kofa.interfaces import IKofaUtils, IKofaPluggable 27 28 from waeup.kofa.utils.batching import VirtualExportJobContainer 28 29 from waeup.kofa.university.interfaces import ( … … 67 68 title=u'Unnamed Faculty', 68 69 title_prefix=u'faculty', 69 code=u'NA', **kw): 70 code=u'NA', 71 officer_1=None, 72 officer_2=None, 73 **kw): 70 74 super(Faculty, self).__init__(**kw) 71 75 self.title = title 72 76 self.title_prefix = title_prefix 73 77 self.code = code 78 self.officer_1 = officer_1 79 self.officer_2 = officer_2 74 80 75 81 def traverse(self, name): … … 107 113 def getInterfaces(self): 108 114 return implementedBy(Faculty) 115 116 class FacultiesPlugin(grok.GlobalUtility): 117 """A plugin that updates faculties. 118 """ 119 120 grok.implements(IKofaPluggable) 121 grok.name('faculties') 122 123 deprecated_attributes = [] 124 125 def setup(self, site, name, logger): 126 return 127 128 def update(self, site, name, logger): 129 items = getFields(IFaculty).items() 130 for faculty in site['faculties'].values(): 131 # Add new attributes 132 for i in items: 133 if not hasattr(faculty,i[0]): 134 setattr(faculty,i[0],i[1].missing_value) 135 logger.info( 136 'FacultiesPlugin: %s attribute %s added.' % ( 137 faculty.code,i[0])) 138 # Remove deprecated attributes 139 for i in self.deprecated_attributes: 140 try: 141 delattr(faculty,i) 142 logger.info( 143 'FacultiesPlugin: %s attribute %s deleted.' % ( 144 faculty.code,i)) 145 except AttributeError: 146 pass 147 return -
main/waeup.kofa/trunk/src/waeup/kofa/university/interfaces.py
r13617 r14511 56 56 ) 57 57 58 officer_1 = schema.TextLine( 59 title = _(u'Faculty Officer 1'), 60 default = u'', 61 required = False, 62 ) 63 64 officer_2 = schema.TextLine( 65 title = _(u'Faculty Officer 2'), 66 default = u'', 67 required = False, 68 ) 69 58 70 59 71 class IFacultiesContainer(IKofaContainer): … … 93 105 required = False, 94 106 default = False, 107 ) 108 109 officer_1 = schema.TextLine( 110 title = _(u'Department Officer 1'), 111 default = u'', 112 required = False, 113 ) 114 115 officer_2 = schema.TextLine( 116 title = _(u'Department Officer 2'), 117 default = u'', 118 required = False, 119 ) 120 121 officer_3 = schema.TextLine( 122 title = _(u'Department Officer 3'), 123 default = u'', 124 required = False, 125 ) 126 127 officer_4 = schema.TextLine( 128 title = _(u'Department Officer 4'), 129 default = u'', 130 required = False, 95 131 ) 96 132 -
main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_export.py
r13654 r14511 67 67 self.assertEqual( 68 68 result, 69 'code,title,title_prefix,users_with_local_roles\r\n' 70 'F1,Faculty of Cheese,faculty,[]\r\n' 69 'code,title,title_prefix,users_with_local_roles,' 70 'officer_1,officer_2\r\n' 71 'F1,Faculty of Cheese,faculty,[],,\r\n' 71 72 ) 72 73 return … … 79 80 self.assertEqual( 80 81 result, 81 'code,title,title_prefix,users_with_local_roles\r\n' 82 'F1,Faculty of Cheese,faculty,[]\r\n' 82 'code,title,title_prefix,users_with_local_roles,' 83 'officer_1,officer_2\r\n' 84 'F1,Faculty of Cheese,faculty,[],,\r\n' 83 85 ) 84 86 return … … 97 99 self.assertEqual( 98 100 result, 99 'code,title,title_prefix,users_with_local_roles\r\n' 100 'F1,Faculty of Cheese,faculty,[]\r\n' 101 'F2,Centre of Onion,centre,[]\r\n' 101 'code,title,title_prefix,users_with_local_roles,' 102 'officer_1,officer_2\r\n' 103 'F1,Faculty of Cheese,faculty,[],,\r\n' 104 'F2,Centre of Onion,centre,[],,\r\n' 102 105 ) 103 106 return … … 115 118 self.assertEqual( 116 119 result, 117 'code,title,title_prefix,users_with_local_roles\r\n' 118 'F1,Faculty of Cheese,faculty,[]\r\n' 119 'F2,Centre of Onion,centre,[]\r\n' 120 'code,title,title_prefix,users_with_local_roles,' 121 'officer_1,officer_2\r\n' 122 'F1,Faculty of Cheese,faculty,[],,\r\n' 123 'F2,Centre of Onion,centre,[],,\r\n' 120 124 ) 121 125 return … … 136 140 container.addFaculty(self.fac1) 137 141 container.addFaculty(self.fac2) 138 self.dept1 = Department('Department of Cheddar', 'department', 'D1') 142 self.dept1 = Department( 143 'Department of Cheddar', 'department', 'D1', 'HoCheese') 139 144 self.dept2 = Department('Institue of Gouda', 'institute', 'D2') 140 145 self.dept3 = Department('Department of Rings', 'department', 'D3') … … 170 175 self.assertEqual( 171 176 result, 172 'code,faculty_code,title,title_prefix,users_with_local_roles\r\n' 177 'code,faculty_code,title,title_prefix,users_with_local_roles,' 178 'officer_1,officer_2,officer_3,officer_4\r\n' 173 179 'D1,F1,Department of Cheddar,department,' 174 '"[{\'user_name\': u\'bob\', \'local_role\': u\'bobsrole\'}]"\r\n' 180 '"[{\'user_name\': u\'bob\', \'local_role\': u\'bobsrole\'}]",' 181 'HoCheese,,,\r\n' 175 182 ) 176 183 return … … 182 189 self.assertEqual( 183 190 result, 184 'code,faculty_code,title,title_prefix,users_with_local_roles\r\n' 191 'code,faculty_code,title,title_prefix,users_with_local_roles,' 192 'officer_1,officer_2,officer_3,officer_4\r\n' 185 193 'D1,F1,Department of Cheddar,department,' 186 '"[{\'user_name\': u\'bob\', \'local_role\': u\'bobsrole\'}]"\r\n' 187 'D2,F1,Institue of Gouda,institute,[]\r\n' 194 '"[{\'user_name\': u\'bob\', \'local_role\': u\'bobsrole\'}]",' 195 'HoCheese,,,\r\n' 196 'D2,F1,Institue of Gouda,institute,[],,,,\r\n' 188 197 ) 189 198 return … … 196 205 self.assertEqual( 197 206 result, 198 'code,faculty_code,title,title_prefix,users_with_local_roles\r\n' 207 'code,faculty_code,title,title_prefix,users_with_local_roles,' 208 'officer_1,officer_2,officer_3,officer_4\r\n' 199 209 'D1,F1,Department of Cheddar,department,' 200 '"[{\'user_name\': u\'bob\', \'local_role\': u\'bobsrole\'}]"\r\n' 201 'D2,F1,Institue of Gouda,institute,[]\r\n' 202 'D3,F2,Department of Rings,department,[]\r\n' 210 '"[{\'user_name\': u\'bob\', \'local_role\': u\'bobsrole\'}]",' 211 'HoCheese,,,\r\n' 212 'D2,F1,Institue of Gouda,institute,[],,,,\r\n' 213 'D3,F2,Department of Rings,department,[],,,,\r\n' 203 214 ) 204 215 return … … 210 221 self.assertEqual( 211 222 result, 212 'code,faculty_code,title,title_prefix,users_with_local_roles\r\n' 223 'code,faculty_code,title,title_prefix,users_with_local_roles,' 224 'officer_1,officer_2,officer_3,officer_4\r\n' 213 225 'D1,F1,Department of Cheddar,department,' 214 '"[{\'user_name\': u\'bob\', \'local_role\': u\'bobsrole\'}]"\r\n' 215 'D2,F1,Institue of Gouda,institute,[]\r\n' 216 'D3,F2,Department of Rings,department,[]\r\n' 226 '"[{\'user_name\': u\'bob\', \'local_role\': u\'bobsrole\'}]",' 227 'HoCheese,,,\r\n' 228 'D2,F1,Institue of Gouda,institute,[],,,,\r\n' 229 'D3,F2,Department of Rings,department,[],,,,\r\n' 217 230 ) 218 231 return
Note: See TracChangeset for help on using the changeset viewer.