def view(self, url): visiting_groups = [x.doc for x in getAllVisitingGroups(holly_couch)] visiting_group_names = [x['name'] for x in visiting_groups] v_group_map = dict() has_notes_map = getTargetNumberOfNotesMap(holly_couch) activity_groups = ["group", "staff", "course", "school"] return dict(visiting_groups=visiting_groups, remaining_visiting_group_names=v_group_map.keys(), bokn_status_map=bokn_status_map, reFormatDate=reFormatDate, all_tags=[t.key for t in getAllTags(holly_couch)], has_notes_map=has_notes_map, activity_groups=activity_groups)
def view_all(self): visiting_groups = [v.doc for v in getAllVisitingGroups(holly_couch)] remaining_visiting_groups_map = dict() has_notes_map = getTargetNumberOfNotesMap(holly_couch) all_tags = [t.key for t in getAllTags(holly_couch)] all_tags_list = '[' + ''.join(['"'+l+'", ' for l in all_tags] ) +']' state_map_list = '['+ ','.join( ['["'+str(k)+'","'+v+'"]' for (k,v) in bokn_status_map.items()] ) +']' return dict(visiting_groups=visiting_groups, remaining_visiting_group_names=remaining_visiting_groups_map.keys(), program_state_map=bokn_status_map, reFormatDate=reFormatDate, all_tags=all_tags, has_notes_map=has_notes_map, visiting_group_types=getVisitingGroupTypes(holly_couch), state_map_list=state_map_list, vodb_state_map=bokn_status_map)
def view_period(self, period=None): # TODO: refactor so we only show visiting groups in time span given by daterange document. if period == '1an': from_date='2011-01-01' to_date='2011-07-16' visiting_groups = [v.doc for v in getVisitingGroupsInDatePeriod(holly_couch, from_date, to_date)] elif period == '2an': from_date='2011-07-17' to_date='2011-08-24' visiting_groups = [v.doc for v in getVisitingGroupsInDatePeriod(holly_couch, from_date, to_date)] else: from_date='' to_date='' visiting_groups = [v.doc for v in getAllVisitingGroups(holly_couch, from_date, to_date)] v_group_map = dict() #self.makeRemainingVisitingGroupsMap(visiting_groups, from_date=from_date, to_date=to_date) has_notes_map = getTargetNumberOfNotesMap(holly_couch) return dict(visiting_groups=visiting_groups, remaining_visiting_group_names=v_group_map.keys(), bokn_status_map=bokn_status_map, reFormatDate=reFormatDate, all_tags=[t.key for t in getAllTags(holly_couch)], has_notes_map=has_notes_map)
def view_all(self): visiting_groups = [v.doc for v in getAllVisitingGroups(holly_couch)] remaining_visiting_groups_map = dict() #self.makeRemainingVisitingGroupsMap(visiting_groups) has_notes_map = getTargetNumberOfNotesMap(holly_couch) return dict(visiting_groups=visiting_groups, remaining_visiting_group_names=remaining_visiting_groups_map.keys(), program_state_map=bokn_status_map, vodb_state_map=bokn_status_map, reFormatDate=reFormatDate, all_tags=[t.key for t in getAllTags(holly_couch)], has_notes_map=has_notes_map, visiting_group_types=getVisitingGroupTypes(holly_couch))
def sanity_check_property_usage(self): # ...iterate through all bookings, we are only interested in scheduled bookings bookings = getAllScheduledBookings(holly_couch, limit=1000000) booking_days_map = dict() for bd in getAllBookingDays(holly_couch): booking_days_map[bd.doc["_id"]] = bd.doc visiting_group_map = dict() for vg in getAllVisitingGroups(holly_couch): visiting_group_map[vg.key[1]] = vg.doc # activity_map = dict() activity_title_map = getActivityTitleMap(holly_couch) problems = list() for tmp_bx in bookings: tmp_b = tmp_bx.doc tmp_b_day_id = tmp_b["booking_day_id"] tmp_b_day = booking_days_map[tmp_b_day_id] # if not activity_map.has_key(tmp_b_day['day_schema_id']): # activity_map[tmp_b_day['day_schema_id']] = getSchemaSlotActivityMap(holly_couch, tmp_b_day['day_schema_id']) # tmp_activity_map = activity_map[tmp_b_day['day_schema_id']] if None != tmp_b_day: # and tmp_b_day.date >= datetime.date.today(): if tmp_b["visiting_group_id"] != "" and (False == tmp_b.get("hide_warn_on_suspect_booking", False)): tmp_date = tmp_b_day["date"] tmp_content = activity_title_map[tmp_b["activity_id"]] + " " + tmp_b["content"] tmp_b_visiting_group = visiting_group_map[tmp_b["visiting_group_id"]] if not tmp_b_visiting_group.has_key("from_date"): problems.append( dict( booking=tmp_b, msg="visiting group %s has no from_date" % tmp_b_visiting_group["visiting_group_name"], severity=100, ) ) else: if tmp_b_visiting_group["from_date"] > tmp_date: problems.append( dict( booking=tmp_b, msg="arrives at %s but booking %s is at %s" % (str(tmp_b_visiting_group["from_date"]), tmp_content, str(tmp_date)), severity=10, ) ) if tmp_b_visiting_group["from_date"] == tmp_date: problems.append( dict( booking=tmp_b, msg="arrives same day as booking %s, at %s" % (tmp_content, str(tmp_b_visiting_group["from_date"])), severity=self.get_severity(tmp_b_visiting_group, 1), ) ) if tmp_b_visiting_group["to_date"] < tmp_date: problems.append( dict( booking=tmp_b, msg="leves at %s but booking %s is at %s" % (str(tmp_b_visiting_group["to_date"]), tmp_content, str(tmp_date)), severity=10, ) ) if tmp_b_visiting_group["to_date"] == tmp_date: problems.append( dict( booking=tmp_b, msg="leves same day as booking %s, at %s" % (tmp_content, str(tmp_b_visiting_group["to_date"])), severity=self.get_severity(tmp_b_visiting_group, 1), ) ) tmp_content = tmp_b["content"] for tmp_prop in tmp_b_visiting_group["visiting_group_properties"].values(): checks = [x + tmp_prop["property"] for x in ["$$", "$", "$#", "#"]] for check in checks: if check in tmp_content: if tmp_prop["from_date"] > tmp_date: problems.append( dict( booking=tmp_b, msg="property $" + tmp_prop["property"] + " usable from " + str(tmp_prop["from_date"]) + " but booking is at " + str(tmp_date), severity=10, ) ) if tmp_prop["from_date"] == tmp_date: problems.append( dict( booking=tmp_b, msg="property $" + tmp_prop["property"] + " arrives at " + str(tmp_prop["from_date"]) + " and booking is the same day", severity=self.get_severity(tmp_b_visiting_group, 1), ) ) if tmp_prop["to_date"] < tmp_date: problems.append( dict( booking=tmp_b, msg="property $" + tmp_prop["property"] + " usable to " + str(tmp_prop["to_date"]) + " but booking is at " + str(tmp_date), severity=10, ) ) if tmp_prop["to_date"] == tmp_date: problems.append( dict( booking=tmp_b, msg="property $" + tmp_prop["property"] + " leavs at " + str(tmp_prop["to_date"]) + " and booking is the same day ", severity=self.get_severity(tmp_b_visiting_group, 1), ) ) break # there can be more than one match in checks problems.sort(self.fn_sort_problems_by_severity) return dict(problems=problems, visiting_group_map=visiting_group_map)
def sanity_check_property_usage(self): log.info("sanity_check_property_usage()") ##ensurePostRequest(request, __name__) #...iterate through all bookings, we are only interested in scheduled bookings bookings = getAllScheduledBookings(holly_couch, limit=1000000) booking_days_map = dict() for bd in getAllBookingDays(holly_couch): booking_days_map[bd.doc['_id']] = bd.doc visiting_group_map = dict() for vg in getAllVisitingGroups(holly_couch): visiting_group_map[vg.key[1]] = vg.doc #activity_map = dict() activity_title_map = getActivityTitleMap(holly_couch) problems = list() for tmp_bx in bookings: tmp_b = tmp_bx.doc tmp_b_day_id = tmp_b['booking_day_id'] tmp_b_day = booking_days_map[tmp_b_day_id] # if not activity_map.has_key(tmp_b_day['day_schema_id']): # activity_map[tmp_b_day['day_schema_id']] = getSchemaSlotActivityMap(holly_couch, tmp_b_day['day_schema_id']) # tmp_activity_map = activity_map[tmp_b_day['day_schema_id']] if None != tmp_b_day: # and tmp_b_day.date >= datetime.date.today(): if tmp_b['visiting_group_id'] != '' and (False == tmp_b.get('hide_warn_on_suspect_booking', False)): tmp_date = tmp_b_day['date'] tmp_content = activity_title_map[tmp_b['activity_id']] + ' ' + tmp_b['content'] tmp_b_visiting_group = visiting_group_map[tmp_b['visiting_group_id']] if not tmp_b_visiting_group.has_key('from_date'): problems.append(dict(booking=tmp_b, msg='visiting group %s has no from_date' % tmp_b_visiting_group['visiting_group_name'], severity=100)) else: if tmp_b_visiting_group['from_date'] > tmp_date: problems.append(dict(booking=tmp_b, msg='arrives at %s but booking %s is at %s' %(str(tmp_b_visiting_group['from_date']), tmp_content ,str(tmp_date)), severity=10)) if tmp_b_visiting_group['from_date'] == tmp_date: problems.append(dict(booking=tmp_b, msg='arrives same day as booking %s, at %s' % (tmp_content, str(tmp_b_visiting_group['from_date'])), severity=self.get_severity(tmp_b_visiting_group, 1))) if tmp_b_visiting_group['to_date'] < tmp_date: problems.append(dict(booking=tmp_b, msg='leves at %s but booking %s is at %s' % (str(tmp_b_visiting_group['to_date']), tmp_content , str(tmp_date)), severity=10)) if tmp_b_visiting_group['to_date'] == tmp_date: problems.append(dict(booking=tmp_b, msg='leves same day as booking %s, at %s' % (tmp_content, str(tmp_b_visiting_group['to_date'])), severity=self.get_severity(tmp_b_visiting_group, 1))) tmp_content = tmp_b['content'] for tmp_prop in tmp_b_visiting_group['visiting_group_properties'].values(): checks = [x+tmp_prop['property'] for x in ['$$','$', '$#','#']] for check in checks: if check in tmp_content: if tmp_prop['from_date'] > tmp_date: problems.append(dict(booking=tmp_b, msg='property $' + tmp_prop['property'] + ' usable from ' + str(tmp_prop['from_date']) + ' but booking is at ' + str(tmp_date), severity=10)) if tmp_prop['from_date'] == tmp_date: problems.append(dict(booking=tmp_b, msg='property $' + tmp_prop['property'] + ' arrives at ' + str(tmp_prop['from_date']) + ' and booking is the same day', severity=self.get_severity(tmp_b_visiting_group, 1))) if tmp_prop['to_date'] < tmp_date: problems.append(dict(booking=tmp_b, msg='property $' + tmp_prop['property'] + ' usable to ' + str(tmp_prop['to_date']) + ' but booking is at ' + str(tmp_date), severity=10)) if tmp_prop['to_date'] == tmp_date: problems.append(dict(booking=tmp_b, msg='property $' + tmp_prop['property'] + ' leavs at ' + str(tmp_prop['to_date']) + ' and booking is the same day ', severity=self.get_severity(tmp_b_visiting_group, 1))) break # there can be more than one match in checks problems.sort(self.fn_sort_problems_by_severity) return dict (problems=problems, visiting_group_map=visiting_group_map)