Esempio n. 1
0
    def test_apply_override(self):
        a_config_model = rule_handler.RuleSetConfigModel()
        a_config_override_model = rule_handler.RuleSetConfigModel()

        a_config_override_model.min_time_of_day = "1"
        a_config_override_model.max_time_of_day = "2"
        a_config_override_model.max_time_per_day = "3"
        a_config_override_model.min_break = "4"
        a_config_override_model.free_play = "Y"

        new_rule_set = rule_handler.apply_override(
            p_rule_set=a_config_model, p_rule_override=a_config_override_model)

        self.assertEqual(new_rule_set.min_time_of_day_class,
                         rule_handler.CSS_CLASS_EMPHASIZE_RULE_OVERRIDE)
        self.assertEqual(new_rule_set.max_time_of_day_class,
                         rule_handler.CSS_CLASS_EMPHASIZE_RULE_OVERRIDE)
        self.assertEqual(new_rule_set.max_time_per_day_class,
                         rule_handler.CSS_CLASS_EMPHASIZE_RULE_OVERRIDE)
        self.assertEqual(new_rule_set.min_break_class,
                         rule_handler.CSS_CLASS_EMPHASIZE_RULE_OVERRIDE)
        self.assertEqual(new_rule_set.free_play_class,
                         rule_handler.CSS_CLASS_EMPHASIZE_RULE_OVERRIDE)

        self.assertEqual(new_rule_set.min_time_of_day, "1")
        self.assertEqual(new_rule_set.max_time_of_day, "2")
        self.assertEqual(new_rule_set.max_time_per_day, "3")
        self.assertEqual(new_rule_set.min_break, "4")
        self.assertEqual(new_rule_set.free_play, True)
Esempio n. 2
0
    def test_apply_empty_override(self):
        a_config_model = rule_handler.RuleSetConfigModel()

        a_config_model.min_break = "1m"
        a_config_model.min_time_of_day = "12:34"
        a_config_model.max_time_of_day = "23:45"
        a_config_model.max_time_per_day = "1h"
        a_config_model.free_play = True

        a_config_override_model = rule_handler.RuleSetConfigModel()

        new_rule_set = rule_handler.apply_override(
            p_rule_set=a_config_model, p_rule_override=a_config_override_model)

        self.assertEqual(new_rule_set.min_time_of_day_class, "")
        self.assertEqual(new_rule_set.max_time_of_day_class, "")
        self.assertEqual(new_rule_set.max_time_per_day_class, "")
        self.assertEqual(new_rule_set.min_break_class, "")
        self.assertEqual(new_rule_set.free_play_class, "")

        self.assertEqual(new_rule_set.min_time_of_day, "12:34")
        self.assertEqual(new_rule_set.max_time_of_day, "23:45")
        self.assertEqual(new_rule_set.max_time_per_day, "1h")
        self.assertEqual(new_rule_set.min_break, "1m")
        self.assertEqual(new_rule_set.free_play, True)
Esempio n. 3
0
    def get_admin_infos(self):

        admin_infos = []

        user_infos = self.get_user_infos(p_include_history=False)

        days = [
            datetime.date.today() + datetime.timedelta(days=i)
            for i in range(0, self._config.admin_lookahead_in_days + 1)
        ]

        for override in self._rule_overrides.values():
            if not override.reference_date in days and override.reference_date >= datetime.date.today(
            ):
                days.append(override.reference_date)

        for username in sorted(self._usernames):
            admin_info = view_info.ViewInfo(p_html_key=username)
            admin_info.username = username

            admin_info.user_info = user_infos.get(username)
            admin_info.day_infos = []

            for reference_date in sorted(days):
                rule_set = self._rule_handler.get_active_ruleset_config(
                    p_username=username, p_reference_date=reference_date)

                if rule_set is not None:
                    key_rule_override = rule_override.get_key(
                        p_username=username, p_reference_date=reference_date)
                    override = self._rule_overrides.get(key_rule_override)

                    if override is None:
                        override = rule_override.RuleOverride(
                            p_reference_date=reference_date,
                            p_username=username)

                    effective_ruleset = rule_handler.apply_override(
                        p_rule_set=rule_set, p_rule_override=override)

                    day_info = view_info.ViewInfo(
                        p_parent=admin_info,
                        p_html_key=tools.get_simple_date_as_string(
                            p_date=reference_date))

                    if reference_date == datetime.date.today():
                        day_info.label = (_('Today ({day:%%a})', 'long'), {
                            "day": reference_date
                        })
                        day_info.short_label = (_('Today', 'short'), {
                            "day": reference_date
                        })

                    elif reference_date == datetime.date.today(
                    ) + datetime.timedelta(days=1):
                        day_info.label = (_('Tomorrow ({day:%%a})', 'long'), {
                            "day": reference_date
                        })
                        day_info.short_label = (_('Tomorrow', 'short'), {
                            "day": reference_date
                        })

                    else:
                        day_info.label = (_("{day:%%Y-%%m-%%d (%%a)}"), {
                            "day": reference_date
                        })
                        day_info.short_label = (_("{day:%%A}"), {
                            "day": reference_date
                        })

                    admin_info.day_infos.append(day_info)

                    day_info.reference_date = reference_date
                    day_info.rule_set = rule_set
                    day_info.override = override
                    day_info.effective_rule_set = effective_ruleset
                    day_info.max_lookahead_in_days = self._config.admin_lookahead_in_days

            admin_infos.append(admin_info)

        return admin_infos