Beispiel #1
0
    def __init__(self, schema_parser, schema_name):
        self.profile_opts = {
            # Task execution time
            'hour': self._set_hour,
            'minute': self._set_minute,
            'month': self._set_month,
            'day': self._set_day,
            'weekday': self._set_weekday,
        }

        self.options = {
            # Task scheduling profile
            'profile': self._set_profile,
            # Task command
            'command': self._set_command,
            # Task options
            'enabled': self._set_enabled,
            'addtoinv': self._set_addtoinv,
            'saveto': self._set_saveto,
            'mailto': self._set_mailto,
            'smtp': self._set_smtp
        }

        self.__schema_name = schema_name
        self.schema_parser = schema_parser
        self.last_check = None
        self.cron_parser = CronParser()
        self.profiles = Path.sched_profiles
        self.setup_schema(self.schema_name)
    def _save_profile(self, event):
        """
        Save scheduling profile.
        """
        pname = self.schedp_name.get_active_text()
        if not len(pname):
            dlg = HIGAlertDialog(self,
                                 message_format=_('Scheduling Profile - Error \
while saving'),
                                 secondary_text=_("You need to specify a name \
for Profile."))
            dlg.run()
            dlg.destroy()
            return

        parser = CronParser()
        minute = self.cron_minute.get_text()
        hour = self.cron_hour.get_text()
        day = self.cron_day.get_text()
        month = self.cron_month.get_text()
        weekday = self.cron_weekday.get_text()
        try:
            parser.parse_minute(minute)
            parser.parse_hour(hour)
            parser.parse_day(day)
            parser.parse_month(month)
            parser.parse_weekday(weekday)
        except Exception, e:
            dlg = HIGAlertDialog(self,
                                 message_format=_('Scheduling Profile - Error \
while saving'),
                                 secondary_text=_("Check your cron syntax and \
try to save again."))
            dlg.run()
            dlg.destroy()
            return