- Timestamp:
- 20 Sep 2012, 08:49:37 (12 years ago)
- Location:
- main/waeup.kofa/branches/uli-zc-async
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.kofa/branches/uli-zc-async
- Property svn:mergeinfo changed
-
main/waeup.kofa/branches/uli-zc-async/src/waeup/kofa/hostels/hostel.py
r8685 r9209 22 22 from zope.event import notify 23 23 from zope.component import getUtility 24 from zope.component.interfaces import IFactory 24 25 from datetime import datetime 25 26 from waeup.kofa.utils.helpers import attrs_to_fields … … 40 41 target = self.__name__ 41 42 return grok.getSite()['hostels'].logger_info(ob_class,target,comment) 43 44 @property 45 def bed_statistics(self): 46 total = len(self.keys()) 47 booked = 0 48 for value in self.values(): 49 if value.owner != NOT_OCCUPIED: 50 booked += 1 51 return {'booked':booked, 'total':total} 52 53 def clearHostel(self): 54 """Remove all beds 55 """ 56 keys = [i for i in self.keys()] # create deep copy 57 for bed in keys: 58 del self[bed] 59 return 42 60 43 61 def addBed(self, bed): … … 128 146 grok.provides(IBed) 129 147 130 def getBedCoordinates(self): 148 @property 149 def coordinates(self): 131 150 """Determine the coordinates from the bed_id. 132 151 """ 133 152 return self.bed_id.split('_') 153 154 # The following property attributes are only needed 155 # for the exporter to ease evaluation with Excel. 156 157 @property 158 def hall(self): 159 return self.coordinates[0] 160 161 @property 162 def block(self): 163 return self.coordinates[1] 164 165 @property 166 def room(self): 167 return self.coordinates[2] 168 169 @property 170 def bed(self): 171 return self.coordinates[3] 172 173 @property 174 def special_handling(self): 175 return self.bed_type.split('_')[0] 176 177 @property 178 def sex(self): 179 return self.bed_type.split('_')[1] 180 181 @property 182 def bt(self): 183 return self.bed_type.split('_')[2] 184 134 185 135 186 def bookBed(self, student_id): … … 145 196 """ 146 197 sh, sex, bt = self.bed_type.split('_') 147 hostel_id, block, room_nr, bed = self. getBedCoordinates()198 hostel_id, block, room_nr, bed = self.coordinates 148 199 hostel = self.__parent__ 149 200 beds_for_fresh = getattr(hostel,'beds_for_fresh',[]) … … 221 272 Bed = attrs_to_fields(Bed) 222 273 274 class HostelFactory(grok.GlobalUtility): 275 """A factory for hostels. 276 277 We need this factory for the hostel processor. 278 """ 279 grok.implements(IFactory) 280 grok.name(u'waeup.Hostel') 281 title = u"Create a new hostel.", 282 description = u"This factory instantiates new hostel instances." 283 284 def __call__(self, *args, **kw): 285 return Hostel() 286 287 def getInterfaces(self): 288 return implementedBy(Hostel) 289 290 223 291 @grok.subscribe(IBedTicket, grok.IObjectRemovedEvent) 224 292 def handle_bedticket_removed(bedticket, event): … … 229 297 bedticket.bed.owner = NOT_OCCUPIED 230 298 notify(grok.ObjectModifiedEvent(bedticket.bed)) 299
Note: See TracChangeset for help on using the changeset viewer.