Example #1
0
    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')
Example #2
0
    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')
Example #3
0
    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')