[Checkins] SVN: lovely.remotetask/trunk/ Use drop-down instead of text-input for cron job adding form.

Dan Korostelev nadako at gmail.com
Wed Jan 28 08:26:06 EST 2009


Log message for revision 95312:
  Use drop-down instead of text-input for cron job adding form.

Changed:
  U   lovely.remotetask/trunk/CHANGES.txt
  U   lovely.remotetask/trunk/src/lovely/remotetask/browser/job.py

-=-
Modified: lovely.remotetask/trunk/CHANGES.txt
===================================================================
--- lovely.remotetask/trunk/CHANGES.txt	2009-01-28 13:18:23 UTC (rev 95311)
+++ lovely.remotetask/trunk/CHANGES.txt	2009-01-28 13:26:06 UTC (rev 95312)
@@ -2,6 +2,12 @@
 Changes for lovely.remotetask
 =============================
 
+2009/01/28 (...):
+=================
+
+- Use dropdown widget with available tasks in the cron job
+  adding form, instead of text input.
+
 2008/11/07 0.2.15a1:
 ====================
 

Modified: lovely.remotetask/trunk/src/lovely/remotetask/browser/job.py
===================================================================
--- lovely.remotetask/trunk/src/lovely/remotetask/browser/job.py	2009-01-28 13:18:23 UTC (rev 95311)
+++ lovely.remotetask/trunk/src/lovely/remotetask/browser/job.py	2009-01-28 13:26:06 UTC (rev 95312)
@@ -30,6 +30,8 @@
 
 from zope.app.pagetemplate import ViewPageTemplateFile
 from zope.app.form.browser.textwidgets import TextWidget
+from zope.app.form.browser.itemswidgets import DropdownWidget
+from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary
 
 from lovely.remotetask.interfaces import CRONJOB, ICronJob
 
@@ -103,6 +105,12 @@
 
     values = tuple(range(0,7))
 
+class TaskWidget(DropdownWidget):
+    
+    def __init__(self, field, request):
+        terms = [SimpleTerm(name) for name in field.context.getAvailableTasks()]
+        vocabulary = SimpleVocabulary(terms)
+        super(TaskWidget, self).__init__(field, vocabulary, request)
 
 class CronJobFormBase(object):
     """base settings for all cron job forms"""
@@ -116,6 +124,7 @@
             'dayOfWeek',
             'delay',
             )
+    form_fields['task'].custom_widget = TaskWidget
     form_fields['hour'].custom_widget = HourWidget
     form_fields['minute'].custom_widget = MinuteWidget
     form_fields['dayOfMonth'].custom_widget = DayOfMonthWidget



More information about the Checkins mailing list