def save_vodb_group_properties(self, _id='', boknr='', name='', info='', camping_location='', vodb_contact_name='', vodb_contact_phone='', vodb_contact_email='', vodb_contact_address='', from_date='', to_date='', subtype='', visiting_group_properties=None): #...how do we handle new groups? Like new visiting_group, right? # better have type=visiting_group for all groups and then have subtypes=group, course, daytrip, funk, etc for filtering/deciding on additional capabillities id = _id is_new, vgroup_id = self.newOrExistingVgroupId(id) #...load or create new vgroup if is_new: # program_state = 0 # vodb_state = 0 if not subtype in ['program','course','staff']: tg.flash('error with subtype') raise redirect(request.referrer) visiting_group_o = dict(type='visiting_group', subtype=subtype, tags=[], boknstatus=0, vodbstatus=0) else: visiting_group_o = holly_couch[vgroup_id] #...fill in data visiting_group_o['name'] = name visiting_group_o['info'] = info visiting_group_o['from_date'] = str(from_date) visiting_group_o['to_date'] = str(to_date) visiting_group_o['vodb_contact_name'] = vodb_contact_name visiting_group_o['vodb_contact_email'] = vodb_contact_email visiting_group_o['vodb_contact_phone'] = vodb_contact_phone visiting_group_o['vodb_contact_address'] = vodb_contact_address visiting_group_o['boknr'] = boknr # if is_new: # visiting_group_o['boknstatus'] = program_state # visiting_group_o['vodbstatus'] = vodb_state visiting_group_o['camping_location'] = camping_location # TODO: figure out the order of updating things if something goes wrong. #...update properties visiting_group_o['visiting_group_properties'] = populatePropertiesAndRemoveUnusedProperties(visiting_group_o, visiting_group_properties) updateBookingsCacheContentAfterPropertyChange(holly_couch, visiting_group_o, getLoggedInUserId(request)) vodb_tag_times_tags = computeAllUsedVisitingGroupsTagsForTagSheet(visiting_group_o['tags'], visiting_group_o.get('vodb_tag_sheet',dict(items=[]))['items']) updateVisitingGroupComputedSheets(visiting_group_o, visiting_group_o['visiting_group_properties'], sheet_map=dict(vodb_eat_sheet=vodb_eat_times_options, vodb_live_sheet=vodb_live_times_options, vodb_tag_sheet=vodb_tag_times_tags)) holly_couch[vgroup_id] = visiting_group_o if visiting_group_o.has_key('_id'): raise redirect('/vodb_group/view_vodb_group?visiting_group_id='+visiting_group_o['_id']) raise redirect('/vodb_group/view_all')
def save_vodb_group_properties(self, vodb_group_id='', boknr='', name='', info='', camping_location='', vodb_contact_name='', vodb_contact_phone='', vodb_contact_email='', vodb_contact_address='', from_date='', to_date='', subtype='', visiting_group_properties=None): ensurePostRequest(request, __name__) log.debug('save_vodb_group_properties') id = vodb_group_id is_new, vgroup_id = self.newOrExistingVgroupId(id) #...load or create new vgroup if is_new: log.info("saving new group") # program_state = 0 # vodb_state = 0 if not subtype in ['program','course','staff']: flash('error with subtype') raise redirect(request.referrer) visiting_group_o = dict(type='visiting_group', subtype=subtype, tags=[], boknstatus=0, vodbstatus=0) else: visiting_group_o = holly_couch[vgroup_id] #...fill in data visiting_group_o['name'] = name visiting_group_o['info'] = cleanHtml(info) visiting_group_o['from_date'] = sanitizeDate(from_date)[1] # TODO better error handling visiting_group_o['to_date'] = sanitizeDate(to_date)[1] # TODO better error handling visiting_group_o['vodb_contact_name'] = vodb_contact_name visiting_group_o['vodb_contact_email'] = vodb_contact_email visiting_group_o['vodb_contact_phone'] = vodb_contact_phone visiting_group_o['vodb_contact_address'] = vodb_contact_address visiting_group_o['boknr'] = boknr visiting_group_o['camping_location'] = camping_location # TODO: figure out the order of updating things if something goes wrong. #...update properties visiting_group_o['visiting_group_properties'] = populatePropertiesAndRemoveUnusedProperties(visiting_group_o, visiting_group_properties) updateBookingsCacheContentAfterPropertyChange(holly_couch, visiting_group_o, getLoggedInUserId(request)) vodb_tag_times_tags = computeAllUsedVisitingGroupsTagsForTagSheet(visiting_group_o['tags'], visiting_group_o.get('vodb_tag_sheet',dict(items=[]))['items']) updateVisitingGroupComputedSheets(visiting_group_o, visiting_group_o['visiting_group_properties'], sheet_map=dict(vodb_eat_sheet=vodb_eat_times_options, vodb_live_sheet=vodb_live_times_options, vodb_tag_sheet=vodb_tag_times_tags)) holly_couch[vgroup_id] = visiting_group_o if visiting_group_o.has_key('_id'): raise redirect('/vodb_group/view_vodb_group?visiting_group_id='+visiting_group_o['_id']) raise redirect('/vodb_group/view_all')
def save_visiting_group_properties(self, visiting_group_id=None, name='', info='', from_date=None, to_date=None, contact_person='', contact_person_email='', contact_person_phone='', visiting_group_properties=None, camping_location='', boknr='', password='', subtype=''): log.info('save_visiting_group_properties') ensurePostRequest(request, __name__) is_new = ((None == visiting_group_id) or (visiting_group_id == '')) #...this is a hack so we can direct the id of the visiting group for special groups if not is_new: if 'visiting_group' not in visiting_group_id: is_new = True id_c = 'visiting_group.'+visiting_group_id else: id_c = genUID(type='visiting_group') if is_new: # TODO: make sure subtype is in one of if not subtype in ['program','course','staff']: flash('error with subtype') raise redirect(request.referrer) visiting_group_c = dict(type='visiting_group', subtype=subtype, tags=[], boknstatus=0, vodbstatus=0) #...populate sheets and computed sheets? else: id_c = visiting_group_id visiting_group_c = holly_couch[id_c] #visiting_group_c['type'] = 'visiting_group' visiting_group_c['name'] = name visiting_group_c['info'] = cleanHtml(info) ok, ok_from_date = sanitizeDate(from_date) if not ok: # TODO better error handling here flash('error with from-date') raise redirect(request.referrer) visiting_group_c['from_date'] = ok_from_date ok, ok_to_date = sanitizeDate(to_date) if not ok: # TODO: better error handling here flash('error with to-date') raise redirect(request.referrer) visiting_group_c['to_date'] = ok_to_date visiting_group_c['contact_person'] = contact_person visiting_group_c['contact_person_email'] = contact_person_email visiting_group_c['contact_person_phone'] = contact_person_phone # TODO: boknr maybe shouldnt be changeble if program or vodb state has passed by preliminary (10) ? visiting_group_c['boknr'] = boknr # TODO: password for group should be set in special page if password != '': visiting_group_c['password'] = password visiting_group_c['camping_location'] = camping_location #...now we have to update all cached content, so we need all bookings that belong to this visiting group visiting_group_c['visiting_group_properties'] = populatePropertiesAndRemoveUnusedProperties(visiting_group_c, visiting_group_properties) updateBookingsCacheContentAfterPropertyChange(holly_couch, visiting_group_c, getLoggedInUserId(request)) vodb_tag_times_tags = computeAllUsedVisitingGroupsTagsForTagSheet(visiting_group_c['tags'], visiting_group_c.get('vodb_tag_sheet',dict(items=[]))['items']) updateVisitingGroupComputedSheets(visiting_group_c, visiting_group_c['visiting_group_properties'], sheet_map=dict(vodb_eat_sheet=vodb_eat_times_options, vodb_live_sheet=vodb_live_times_options, vodb_tag_sheet=vodb_tag_times_tags)) holly_couch[id_c] = visiting_group_c if visiting_group_c.has_key('visiting_group_id'): raise redirect('/visiting_group/show_visiting_group?visiting_group_id='+visiting_group_c['visiting_group_id']) raise redirect('/visiting_group/view_all')