From 5e547a8cc20ef2bd450b3b839564e56e99099cee Mon Sep 17 00:00:00 2001 From: Maciej Tronowski Date: Wed, 29 Apr 2015 17:59:49 +0200 Subject: [PATCH] job template model --- qcg/admin.py | 7 +++++++ qcg/migrations/0003_jobtemplate.py | 31 +++++++++++++++++++++++++++++++ qcg/models.py | 18 +++++++++++++++++- 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 qcg/migrations/0003_jobtemplate.py diff --git a/qcg/admin.py b/qcg/admin.py index cff7b4b..9a7fc5e 100644 --- a/qcg/admin.py +++ b/qcg/admin.py @@ -24,8 +24,15 @@ class JobAdmin(admin.ModelAdmin): date_hierarchy = 'submission_time' +class JobTemplateAdmin(admin.ModelAdmin): + list_display = ('name', 'owner', 'created', 'updated') + list_filter = ('owner',) + date_hierarchy = 'updated' + + admin.site.register(User, CustomUserAdmin) admin.site.register(Job, JobAdmin) admin.site.register(Task) admin.site.register(Allocation) admin.site.register(NodeInfo) +admin.site.register(JobTemplate, JobTemplateAdmin) diff --git a/qcg/migrations/0003_jobtemplate.py b/qcg/migrations/0003_jobtemplate.py new file mode 100644 index 0000000..3de77ce --- /dev/null +++ b/qcg/migrations/0003_jobtemplate.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +from django.conf import settings + + +class Migration(migrations.Migration): + + dependencies = [ + ('qcg', '0002_allocation_working_directory'), + ] + + operations = [ + migrations.CreateModel( + name='JobTemplate', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=100, verbose_name='Nazwa')), + ('description', models.TextField(verbose_name='Opis')), + ('created', models.DateTimeField(auto_now_add=True, verbose_name='Utworzono')), + ('updated', models.DateTimeField(auto_now=True, verbose_name='Uaktualniono')), + ('owner', models.ForeignKey(related_name='templates', verbose_name='W\u0142a\u015bciciel', to=settings.AUTH_USER_MODEL)), + ], + options={ + 'verbose_name': 'Szablon zadania', + 'verbose_name_plural': 'Szablony zadania', + }, + bases=(models.Model,), + ), + ] diff --git a/qcg/models.py b/qcg/models.py index fa5065b..608c59f 100644 --- a/qcg/models.py +++ b/qcg/models.py @@ -9,7 +9,7 @@ from pyqcg.utils import JobStatus, TaskStatus, TaskType, AllocationType, EPRUtil from qcg.utils import username_from_dn, get_attributes -__all__ = ['User', 'Job', 'Task', 'Allocation', 'NodeInfo'] +__all__ = ['User', 'Job', 'Task', 'Allocation', 'NodeInfo', 'JobTemplate'] class User(AbstractUser): @@ -234,3 +234,19 @@ class NodeInfo(models.Model): @staticmethod def qcg_map(qcg_node): return {'name': qcg_node.name, 'count': qcg_node.slots_count} + + +class JobTemplate(models.Model): + name = models.CharField(u"Nazwa", max_length=100) + description = models.TextField(u"Opis") + + owner = models.ForeignKey(User, verbose_name=u"Właściciel", related_name='templates') + created = models.DateTimeField(u"Utworzono", auto_now_add=True) + updated = models.DateTimeField(u"Uaktualniono", auto_now=True) + + class Meta: + verbose_name = u"Szablon zadania" + verbose_name_plural = u"Szablony zadania" + + def __unicode__(self): + return u"{} ({})".format(self.name, self.owner) -- 1.7.9.5