From: Maciej Tronowski Date: Tue, 5 May 2015 12:09:56 +0000 (+0200) Subject: creating template from submitted jobs X-Git-Tag: v1.0~18 X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=commitdiff_plain;h=f7057f1d6b31506eba169cd9db44f74a34a91f69;p=qcg-portal.git creating template from submitted jobs --- diff --git a/pkgs/pyqcg-0.6.1.tar.gz b/pkgs/pyqcg-0.6.1.tar.gz new file mode 100644 index 0000000..ff98756 Binary files /dev/null and b/pkgs/pyqcg-0.6.1.tar.gz differ diff --git a/pkgs/pyqcg-0.6.tar.gz b/pkgs/pyqcg-0.6.tar.gz deleted file mode 100644 index ba13a7a..0000000 Binary files a/pkgs/pyqcg-0.6.tar.gz and /dev/null differ diff --git a/qcg/migrations/0004_auto_20150505_1202.py b/qcg/migrations/0004_auto_20150505_1202.py new file mode 100644 index 0000000..1909bdf --- /dev/null +++ b/qcg/migrations/0004_auto_20150505_1202.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('qcg', '0003_jobtemplate'), + ] + + operations = [ + migrations.AddField( + model_name='job', + name='description_type', + field=models.IntegerField(blank=True, null=True, verbose_name='Typ opisu', choices=[(0, b'JSDL'), (1, b'QCG'), (2, b'QCG_SIMPLE')]), + preserve_default=True, + ), + migrations.AddField( + model_name='job', + name='qcg_description', + field=models.TextField(default=b'', verbose_name='Opis QCG', blank=True), + preserve_default=True, + ), + migrations.AddField( + model_name='task', + name='description_type', + field=models.IntegerField(blank=True, null=True, verbose_name='Typ opisu', choices=[(0, b'JSDL'), (1, b'QCG'), (2, b'QCG_SIMPLE')]), + preserve_default=True, + ), + ] diff --git a/qcg/models.py b/qcg/models.py index 580944c..316f56e 100644 --- a/qcg/models.py +++ b/qcg/models.py @@ -4,7 +4,7 @@ from django.core.urlresolvers import reverse from django.db import models from django.utils.timezone import now from pyqcg.service import Job as QcgJob, Task as QcgTask -from pyqcg.utils import JobStatus, TaskStatus, TaskType, AllocationType, EPRUtils +from pyqcg.utils import JobStatus, TaskStatus, TaskType, AllocationType, EPRUtils, DescriptionType from qcg.utils import username_from_dn, get_attributes @@ -20,6 +20,10 @@ class User(AbstractUser): return Task.objects.filter(job__owner=self) +DESC_TYPE_CHOICES = list(enumerate(field for field in dir(DescriptionType) if not field.startswith('__'))) +DESC_TYPE_CHOICES_REVERSED = {v: k for k, v in DESC_TYPE_CHOICES} + + class Job(models.Model): STATUS_CHOICES = list(enumerate(field for field in dir(JobStatus) if not field.startswith('__'))) STATUS_CHOICES_REVERSED = {v: k for k, v in STATUS_CHOICES} @@ -31,6 +35,8 @@ class Job(models.Model): status = models.IntegerField(u"Status", choices=STATUS_CHOICES) note = models.TextField(u"Notatka", blank=True, default='') description = models.TextField(u"Opis", blank=True, default='') + description_type = models.IntegerField(u"Typ opisu", choices=DESC_TYPE_CHOICES, blank=True, null=True) + qcg_description = models.TextField(u"Opis QCG", blank=True, default='') project = models.TextField(u"Projekt", blank=True, default='') submission_time = models.DateTimeField(u"Data wysłania") finish_time = models.DateTimeField(u"Data zakończenia", blank=True, null=True) @@ -61,11 +67,12 @@ class Job(models.Model): @staticmethod def qcg_map(qcg_job, user=None): - attrs = get_attributes(qcg_job, ('job_id', 'note', 'description', 'submission_time', 'finish_time', - 'project', 'purged')) + attrs = get_attributes(qcg_job, ('job_id', 'note', 'description', 'qcg_description', 'submission_time', + 'finish_time', 'project', 'purged')) attrs['epr'] = EPRUtils.serialize_epr(qcg_job.epr) attrs['status'] = Job.STATUS_CHOICES_REVERSED[qcg_job.status] + attrs['description_type'] = DESC_TYPE_CHOICES_REVERSED[qcg_job.description_type] attrs['proxy_lifetime'] = now() + qcg_job.proxy_lifetime username = username_from_dn(qcg_job.user_dn) @@ -100,6 +107,7 @@ class Task(models.Model): type = models.IntegerField(u"Typ", choices=TYPE_CHOICES) note = models.TextField(u"Notatka", blank=True, default='') description = models.TextField(u"Opis", blank=True, default='') + description_type = models.IntegerField(u"Typ opisu", choices=DESC_TYPE_CHOICES, blank=True, null=True) submission_time = models.DateTimeField(u"Data wysłania") start_time = models.DateTimeField(u"Data rozpoczęcia", blank=True, null=True) finish_time = models.DateTimeField(u"Data zakończenia", blank=True, null=True) @@ -138,6 +146,7 @@ class Task(models.Model): attrs['epr'] = EPRUtils.serialize_epr(qcg_task.epr) attrs['status'] = Task.STATUS_CHOICES_REVERSED[qcg_task.status] attrs['type'] = Task.TYPE_CHOICES_REVERSED[qcg_task.type] + attrs['description_type'] = DESC_TYPE_CHOICES_REVERSED[qcg_task.description_type] attrs['proxy_lifetime'] = now() + qcg_task.proxy_lifetime if job is not None: diff --git a/qcg/templates/qcg/job.html b/qcg/templates/qcg/job.html index d20049d..d3c3922 100644 --- a/qcg/templates/qcg/job.html +++ b/qcg/templates/qcg/job.html @@ -1,5 +1,5 @@ {% extends 'qcg/base.html' %} -{% load qcg_utils %} +{% load qcg_utils bootstrap3 %} {% block container %}