Switch to unified view

a b/OSSEval/methodology/models.py
1
from django.db import models
2
from entity.models import Entity
3
4
    
5
class Methodology(models.Model):
6
    name = models.CharField(max_length=200)
7
    description = models.CharField(max_length=2000,null=True,blank=True)
8
    documentation = models.TextField(null=True,blank=True)
9
    active = models.BooleanField(default=True)
10
    # The entity type the methodology helps you assess
11
    entity = models.ForeignKey(Entity)
12
    def __unicode__(self):
13
        return self.name
14
15
class MethodologyVersion(models.Model):
16
    number = models.IntegerField()
17
    created = models.DateField() 
18
    current = models.BooleanField(default=False)
19
    methodology = models.ForeignKey(Methodology)
20
    def __unicode__(self):
21
        return self.methodology.name + " - " + str(self.number) + (" (Active version)" if self.current else "")
22
23
class Page(models.Model):
24
    name = models.CharField(max_length=200)
25
    order = models.IntegerField(null=False,blank=False)
26
    parent = models.ForeignKey('self',null=True,blank=True)
27
    methodology_version = models.ForeignKey(MethodologyVersion)
28
    def __unicode__(self):
29
        return self.name
30
    
31
class QuestionType(models.Model):
32
    name = models.CharField(max_length=200)
33
34
class Question(models.Model):
35
    page = models.ForeignKey(Page)
36
    text = models.CharField(max_length=200)
37
    eval_description = models.TextField(null=True,blank=True)
38
    eval_value = models.TextField(null=True,blank=True)
39
    question_type =  models.ForeignKey(QuestionType)
40
    def __unicode__(self):
41
        return self.page.name + " - " + self.text
42
43
class Query(models.Model):
44
    question = models.ForeignKey(Question)
45
    eval_text = models.CharField(max_length=2000)
46
    eval_site = models.CharField(max_length=2000)
47
    eval_site_exclude = models.CharField(max_length=2000)
48
49
class Choice(models.Model):
50
    question = models.ForeignKey(Question)
51
    order = models.IntegerField()
52
    todo = models.CharField(max_length=2000)
53
54
class WeightScenario(models.Model):
55
    name = models.CharField(max_length=200)
56
    methodology_version = models.ForeignKey(MethodologyVersion)
57
    active = models.BooleanField(blank=False)
58
59
class Weight(models.Model):
60
    question = models.ForeignKey(Question)
61
    weight = models.FloatField()
62
    scenario = models.ForeignKey(WeightScenario)