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)
--- /dev/null
+# -*- 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,),
+ ),
+ ]
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):
@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)