Add scheduled interval list view to the scheduler app

This commit is contained in:
Roberto Rosario
2012-06-17 18:01:26 -04:00
parent 4fc33b1bd5
commit c1c02812b7
8 changed files with 69 additions and 2 deletions

View File

@@ -10,10 +10,12 @@ from django.dispatch import receiver
from south.signals import pre_migrate
from signaler.signals import pre_collectstatic
from project_tools.api import register_tool
from .links import job_list
logger = logging.getLogger(__name__)
@receiver(post_syncdb, dispatch_uid='scheduler_shutdown_post_syncdb')
def scheduler_shutdown_post_syncdb(sender, **kwargs):
logger.debug('Scheduler shut down on post syncdb signal')
@@ -30,3 +32,6 @@ def sheduler_shutdown_pre_collectstatic(sender, **kwargs):
def sheduler_shutdown_pre_migrate(sender, **kwargs):
logger.debug('Scheduler shut down on pre_migrate signal')
scheduler.shutdown()
register_tool(job_list)

View File

@@ -25,3 +25,6 @@ def remove_job(name):
scheduler.unschedule_job(registered_jobs[name]['job'])
registered_jobs.pop(name)
def get_job_list():
return registered_jobs.values()

7
apps/scheduler/links.py Normal file
View File

@@ -0,0 +1,7 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from .permissions import PERMISSION_VIEW_JOB_LIST
job_list = {'text': _(u'interval job list'), 'view': 'job_list', 'icon': 'time.png', 'permissions': [PERMISSION_VIEW_JOB_LIST]}

View File

@@ -0,0 +1,8 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from permissions.models import PermissionNamespace, Permission
namespace = PermissionNamespace('scheduler', _(u'Scheduler'))
PERMISSION_VIEW_JOB_LIST = Permission.objects.register(namespace, 'jobs_list', _(u'View the interval job list'))

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

5
apps/scheduler/urls.py Normal file
View File

@@ -0,0 +1,5 @@
from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('scheduler.views',
url(r'^list/$', 'job_list', (), 'job_list'),
)

View File

@@ -1 +1,39 @@
# Create your views here.
from __future__ import absolute_import
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _
from django.core.exceptions import PermissionDenied
from permissions.models import Permission
from common.utils import encapsulate
from .permissions import PERMISSION_VIEW_JOB_LIST
from .api import get_job_list
def job_list(request):
Permission.objects.check_permissions(request.user, [PERMISSION_VIEW_JOB_LIST])
context = {
'object_list': get_job_list(),
'title': _(u'interval jobs'),
'extra_columns': [
{
'name': _(u'label'),
'attribute': encapsulate(lambda job: job['title'])
},
{
'name': _(u'start date time'),
'attribute': encapsulate(lambda job: job['job'].trigger.start_date)
},
{
'name': _(u'interval'),
'attribute': encapsulate(lambda job: job['job'].trigger.interval)
},
],
'hide_object': True,
}
return render_to_response('generic_list.html', context,
context_instance=RequestContext(request))

View File

@@ -34,6 +34,7 @@ urlpatterns = patterns('',
(r'^feedback/', include('feedback.urls')),
(r'^checkouts/', include('checkouts.urls')),
(r'^installation/', include('installation.urls')),
(r'^scheduler/', include('scheduler.urls')),
)