|
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)
|