def apply_rule(self, filename, id_):
        values = self.ui.get_values()
        refstart = values['start_unix_time']
        endtype = values['end_type']
        rend = values['end_relative_time']
        rendn = values['end_relative_number']
        rendu = values['end_relative_unit']
        alarmtype = values['alarm_type']
        ralarm = values['alarm_relative_time']
        ralarmn = values['alarm_relative_number']
        ralarmu = values['alarm_relative_unit']
        standard = values['time_standard']

        try:
            if standard == 'UTC':
                ruled = organism_basicrules_api.make_occur_regularly_rule_UTC(
                    refstart, 2551443, rend, ralarm,
                    ('sy', endtype, alarmtype))
            else:
                ruled = organism_basicrules_api.make_occur_regularly_rule_local(
                    refstart, 2551443, rend, ralarm,
                    ('sy', endtype, alarmtype))
        except organism_basicrules_api.BadRuleError:
            msgboxes.warn_bad_rule(msgboxes.end_time).ShowModal()
        else:
            label = self._make_label(refstart, rend, ralarm, endtype,
                                     alarmtype, rendn, rendu, ralarmn, ralarmu,
                                     standard)
            wxscheduler_api.apply_rule(filename, id_, ruled, label)
    def create_random_rule():
        refstart = int((random.gauss(_time.time(), 15000)) // 60 * 60)

        endtype = random.randint(0, 2)

        if endtype == 0:
            rend = None
        else:
            rend = random.randint(1, 360) * 60

        alarmtype = random.randint(0, 2)

        if alarmtype == 0:
            ralarm = None
        else:
            ralarm = random.randint(0, 360) * 60

        stdn = random.randint(0, 1)

        if stdn == 0:
            return organism_basicrules_api.make_occur_regularly_rule_local(
                    refstart, 604800, rend, ralarm, ('1w', endtype, alarmtype))
        else:
            return organism_basicrules_api.make_occur_regularly_rule_UTC(
                    refstart, 604800, rend, ralarm, ('1w', endtype, alarmtype))
    def apply_rule(self, filename, id_):
        values = self.ui.get_values()
        refstart = values['start_unix_time']
        endtype = values['end_type']
        rend = values['end_relative_time']
        rendn = values['end_relative_number']
        rendu = values['end_relative_unit']
        alarmtype = values['alarm_type']
        ralarm = values['alarm_relative_time']
        ralarmn = values['alarm_relative_number']
        ralarmu = values['alarm_relative_unit']
        standard = values['time_standard']

        try:
            if standard == 'UTC':
                ruled = organism_basicrules_api.make_occur_regularly_rule_UTC(
                  refstart, 2551443, rend, ralarm, ('sy', endtype, alarmtype))
            else:
                ruled = organism_basicrules_api.make_occur_regularly_rule_local(
                  refstart, 2551443, rend, ralarm, ('sy', endtype, alarmtype))
        except organism_basicrules_api.BadRuleError:
            msgboxes.warn_bad_rule(msgboxes.end_time).ShowModal()
        else:
            label = self._make_label(refstart, rend, ralarm, endtype,
                        alarmtype, rendn, rendu, ralarmn, ralarmu, standard)
            wxscheduler_api.apply_rule(filename, id_, ruled, label)
    def apply_rule(self, filename, id_):
        values = self.ui.get_values()
        rwstart = values['start_relative_week_time']
        rstartA = values['start_weekday']
        rstartH = values['start_hour']
        rstartM = values['start_minute']
        endtype = values['end_type']
        rend = values['end_relative_time']
        fend = values['end_next_day']
        rendn = values['end_relative_number']
        rendu = values['end_relative_unit']
        rendH = values['end_hour']
        rendM = values['end_minute']
        alarmtype = values['alarm_type']
        ralarm = values['alarm_relative_time']
        palarm = values['alarm_previous_day']
        ralarmn = values['alarm_relative_number']
        ralarmu = values['alarm_relative_unit']
        ralarmH = values['alarm_hour']
        ralarmM = values['alarm_minute']
        standard = values['time_standard']

        refstart = int(_time.time()) // 604800 * 604800 + rwstart

        try:
            if standard == 'UTC':
                ruled = organism_basicrules_api.make_occur_regularly_rule_UTC(
                    refstart, 604800, rend, ralarm, ('1w', endtype, alarmtype))
            else:
                ruled = organism_basicrules_api.make_occur_regularly_rule_local(
                    refstart, 604800, rend, ralarm, ('1w', endtype, alarmtype))
        except organism_basicrules_api.BadRuleError:
            msgboxes.warn_bad_rule(msgboxes.generic).ShowModal()
        else:
            label = self._make_label(rstartA, rstartH, rstartM, rendH, rendM,
                        ralarmH, ralarmM, rendn, rendu, ralarmn,
                        ralarmu, endtype, alarmtype, fend, palarm, standard)
            wxscheduler_api.apply_rule(filename, id_, ruled, label)