[Checkins] SVN: lovely.remotetask/trunk/ - allow '*' to select all
possible times in the cron job add/edit forms
Juergen Kartnaller
juergen at kartnaller.at
Sun Oct 28 04:56:43 EDT 2007
Log message for revision 81162:
- allow '*' to select all possible times in the cron job add/edit forms
- allow to cancel a delayed job
- version bump
Changed:
U lovely.remotetask/trunk/CHANGES.txt
U lovely.remotetask/trunk/setup.py
U lovely.remotetask/trunk/src/lovely/remotetask/browser/job.py
U lovely.remotetask/trunk/src/lovely/remotetask/service.py
-=-
Modified: lovely.remotetask/trunk/CHANGES.txt
===================================================================
--- lovely.remotetask/trunk/CHANGES.txt 2007-10-28 03:05:43 UTC (rev 81161)
+++ lovely.remotetask/trunk/CHANGES.txt 2007-10-28 08:56:41 UTC (rev 81162)
@@ -3,8 +3,16 @@
=============================
+2007/10/28 0.2.11:
+==================
+
+- allow '*' to select all possible times in the cron job add/edit forms
+
+- allow to cancel a delayed job
+
+
2007/10/24 0.2.10:
-=================
+==================
- avoided deprecation warnings
Modified: lovely.remotetask/trunk/setup.py
===================================================================
--- lovely.remotetask/trunk/setup.py 2007-10-28 03:05:43 UTC (rev 81161)
+++ lovely.remotetask/trunk/setup.py 2007-10-28 08:56:41 UTC (rev 81162)
@@ -3,7 +3,7 @@
setup (
name='lovely.remotetask',
- version='0.2.10',
+ version='0.2.11',
author = "Lovely Systems",
author_email = "office at lovelysystems.com",
description = "A remotetask client utiltiy for zope 3",
Modified: lovely.remotetask/trunk/src/lovely/remotetask/browser/job.py
===================================================================
--- lovely.remotetask/trunk/src/lovely/remotetask/browser/job.py 2007-10-28 03:05:43 UTC (rev 81161)
+++ lovely.remotetask/trunk/src/lovely/remotetask/browser/job.py 2007-10-28 08:56:41 UTC (rev 81162)
@@ -63,22 +63,50 @@
class StringTupleWidget(TextWidget):
+ values = None
+
def _toFormValue(self, input):
if not input:
return u''
return u' '.join([str(v) for v in input])
def _toFieldValue(self, input):
+ input = input.strip()
if self.convert_missing_value and input == self._missing:
- value = self.context.missing_value
- else:
- value = tuple([int(v) for v in input.split()])
- return value
+ return self.context.missing_value
+ if self.values is not None and input == '*':
+ return self.values
+ return tuple([int(v) for v in input.split()])
-class CronJobEdit(formlib.form.EditForm):
- """An edit view for cron jobs."""
+class HourWidget(StringTupleWidget):
+ values = tuple(range(0,24))
+
+
+class MinuteWidget(StringTupleWidget):
+
+ values = tuple(range(0,60))
+
+
+class DayOfMonthWidget(StringTupleWidget):
+
+ values = tuple(range(0,31))
+
+
+class MonthWidget(StringTupleWidget):
+
+ values = tuple(range(0,12))
+
+
+class DayOfWeekWidget(StringTupleWidget):
+
+ values = tuple(range(0,7))
+
+
+class CronJobFormBase(object):
+ """base settings for all cron job forms"""
+
form_fields = formlib.form.Fields(ICronJob).select(
'task',
'hour',
@@ -88,17 +116,21 @@
'dayOfWeek',
'delay',
)
- form_fields['hour'].custom_widget = StringTupleWidget
- form_fields['minute'].custom_widget = StringTupleWidget
- form_fields['dayOfMonth'].custom_widget = StringTupleWidget
- form_fields['month'].custom_widget = StringTupleWidget
- form_fields['dayOfWeek'].custom_widget = StringTupleWidget
+ form_fields['hour'].custom_widget = HourWidget
+ form_fields['minute'].custom_widget = MinuteWidget
+ form_fields['dayOfMonth'].custom_widget = DayOfMonthWidget
+ form_fields['month'].custom_widget = MonthWidget
+ form_fields['dayOfWeek'].custom_widget = DayOfWeekWidget
- inputForm = None
-
base_template = formlib.form.EditForm.template
template = ViewPageTemplateFile('cronjob.pt')
+
+class CronJobEdit(formlib.form.EditForm, CronJobFormBase):
+ """An edit view for cron jobs."""
+
+ inputForm = None
+
def setUpWidgets(self, ignore_request=False):
jobtask = component.queryUtility(self.context.__parent__.taskInterface,
name=self.context.task)
@@ -145,29 +177,9 @@
self.request)
-class AddCronJob(formlib.form.Form):
+class AddCronJob(formlib.form.Form, CronJobFormBase):
"""An edit view for cron jobs."""
- form_fields = formlib.form.Fields(
- ICronJob,
- ).select(
- 'task',
- 'hour',
- 'minute',
- 'dayOfMonth',
- 'month',
- 'dayOfWeek',
- 'delay',
- )
- form_fields['hour'].custom_widget = StringTupleWidget
- form_fields['minute'].custom_widget = StringTupleWidget
- form_fields['dayOfMonth'].custom_widget = StringTupleWidget
- form_fields['month'].custom_widget = StringTupleWidget
- form_fields['dayOfWeek'].custom_widget = StringTupleWidget
-
- base_template = formlib.form.EditForm.template
- template = ViewPageTemplateFile('cronjob.pt')
-
@formlib.form.action(u'Add')
def handle_add_action(self, action, data):
self.context.addCronJob(
Modified: lovely.remotetask/trunk/src/lovely/remotetask/service.py
===================================================================
--- lovely.remotetask/trunk/src/lovely/remotetask/service.py 2007-10-28 03:05:43 UTC (rev 81161)
+++ lovely.remotetask/trunk/src/lovely/remotetask/service.py 2007-10-28 08:56:41 UTC (rev 81162)
@@ -92,7 +92,7 @@
newjob = job.CronJob(jobid, task, input,
minute, hour, dayOfMonth, month, dayOfWeek, delay)
self.jobs[jobid] = newjob
- if delay is None:
+ if newjob.delay is None:
newjob.status = interfaces.CRONJOB
else:
newjob.status = interfaces.DELAYED
@@ -124,7 +124,9 @@
break
if jobid in self.jobs:
job = self.jobs[jobid]
- if job.status == interfaces.CRONJOB:
+ if ( job.status == interfaces.CRONJOB
+ or job.status == interfaces.DELAYED
+ ):
job.status = interfaces.CANCELLED
def getStatus(self, jobid):
More information about the Checkins
mailing list