Beispiel #1
0
 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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
 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))
Beispiel #5
0
    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)
Beispiel #6
0
    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)