Created forms app and added initial models

This commit is contained in:
David Taylor
2015-08-05 15:24:50 +03:00
committed by Tom Price
parent e286d8bdee
commit 56a2ea68fb
6 changed files with 63 additions and 0 deletions

0
forms/__init__.py Normal file
View File

10
forms/admin.py Normal file
View File

@@ -0,0 +1,10 @@
from django.contrib import admin
from forms import models
import reversion
# Register your models here.
admin.site.register(models.Type, reversion.VersionAdmin)
admin.site.register(models.Schema, reversion.VersionAdmin)
admin.site.register(models.Form, reversion.VersionAdmin)

View File

47
forms/models.py Normal file
View File

@@ -0,0 +1,47 @@
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
import reversion
from RIGS.models import RevisionMixin
@reversion.register
class Type(models.Model, RevisionMixin):
name = models.CharField(max_length=255, blank=False, null=False)
description = models.CharField(max_length=255, blank=True, null=True)
active = models.BooleanField(default=True)
class SchemaManager(models.Manager):
def current_schema(self, schemaType):
return self.find_schema(schemaType, datetime.datetime.now())
def find_schema(self, schemaType, date):
return self.filter(schema_type=schemaType, start_at__lte=date).latest()
@reversion.register
@python_2_unicode_compatible
class Schema(models.Model, RevisionMixin):
schema_type = models.ForeignKey('Type', related_name='schemas', blank=False)
start_at = models.DateTimeField()
schema = models.TextField(blank=False, null=False, default="{}")
layout = models.TextField(blank=False, null=False, default="{}")
comment = models.CharField(max_length=255)
objects = SchemaManager()
class Meta:
ordering = ['-start_at']
get_latest_by = 'start_at'
def __str__(self):
return self.comment + " " + str(self.start_at) + " @ " + "%"
@reversion.register
class Form(models.Model, RevisionMixin):
event = models.ForeignKey('RIGS.Event', related_name='forms', blank=False)
schema = models.ForeignKey('Schema', related_name='forms', blank=False)
data = models.TextField(blank=False, null=False, default="{}")

3
forms/tests.py Normal file
View File

@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

3
forms/views.py Normal file
View File

@@ -0,0 +1,3 @@
from django.shortcuts import render
# Create your views here.