From a48622a1086a47a1abc26dcd3d1d05a384eb1e8f Mon Sep 17 00:00:00 2001 From: Maciej Tronowski Date: Thu, 30 Apr 2015 16:04:50 +0200 Subject: [PATCH] job templates: saving and deleting --- qcg/forms.py | 8 ++- qcg/models.py | 3 ++ qcg/service.py | 6 +-- qcg/templates/qcg/base.html | 4 +- qcg/templates/qcg/job_submit.html | 91 ++++++++++++++++++++++++++++++++-- qcg/templates/qcg/job_templates.html | 41 ++++++++++++++- qcg/urls.py | 3 ++ qcg/views.py | 59 +++++++++++++++++----- 8 files changed, 189 insertions(+), 26 deletions(-) diff --git a/qcg/forms.py b/qcg/forms.py index d3d1915..93f9c29 100644 --- a/qcg/forms.py +++ b/qcg/forms.py @@ -5,7 +5,7 @@ from django.template.defaultfilters import capfirst from pyqcg.utils import TaskStatus from qcg.fields import TimeRangeField -from qcg.models import Task, Allocation +from qcg.models import Task, Allocation, JobTemplate date_range_validator = RegexValidator(r'[0-9]{2}\.[0-9]{2}\.[0-9]{4} - [0-9]{2}\.[0-9]{2}\.[0-9]{4}') @@ -253,3 +253,9 @@ class ColumnsForm(forms.Form): columns = forms.MultipleChoiceField(choices=COLUMNS_CHOICES, initial=[k for k, v in COLUMNS_CHOICES[1:]], label=u"Kolumny", required=False, widget=forms.CheckboxSelectMultiple) + + +class JobTemplateForm(forms.ModelForm): + class Meta: + model = JobTemplate + fields = ('name',) diff --git a/qcg/models.py b/qcg/models.py index 608c59f..580944c 100644 --- a/qcg/models.py +++ b/qcg/models.py @@ -250,3 +250,6 @@ class JobTemplate(models.Model): def __unicode__(self): return u"{} ({})".format(self.name, self.owner) + + def get_absolute_url(self): + return reverse('template_submit', kwargs={'template_id': self.id}) diff --git a/qcg/service.py b/qcg/service.py index 972592f..15d939c 100644 --- a/qcg/service.py +++ b/qcg/service.py @@ -137,7 +137,7 @@ def update_job(job, proxy): elapsed, job.job_id, elapsed_job, job.tasks.count(), elapsed_tasks, elapsed_py) -def submit_job(params, proxy): +def make_job_desc(params, proxy): QCG.start() desc = JobDescription(Credential(proxy)) @@ -174,9 +174,7 @@ def submit_job(params, proxy): desc.set_watch_output(params['watch_output'], params['watch_output_pattern']) # TODO monitoring - job = desc.submit() - - return job.job_id + return desc def cancel(obj, proxy): diff --git a/qcg/templates/qcg/base.html b/qcg/templates/qcg/base.html index 64cb5bf..b907fe3 100644 --- a/qcg/templates/qcg/base.html +++ b/qcg/templates/qcg/base.html @@ -32,7 +32,7 @@ Zadania - + Zleć zadanie @@ -49,7 +49,7 @@