--- a
+++ b/OSSEval/methodology/models.py
@@ -0,0 +1,62 @@
+from django.db import models
+from entity.models import Entity
+
+
+class Methodology(models.Model):
+ name = models.CharField(max_length=200)
+ description = models.CharField(max_length=2000,null=True,blank=True)
+ documentation = models.TextField(null=True,blank=True)
+ active = models.BooleanField(default=True)
+ # The entity type the methodology helps you assess
+ entity = models.ForeignKey(Entity)
+ def __unicode__(self):
+ return self.name
+
+class MethodologyVersion(models.Model):
+ number = models.IntegerField()
+ created = models.DateField()
+ current = models.BooleanField(default=False)
+ methodology = models.ForeignKey(Methodology)
+ def __unicode__(self):
+ return self.methodology.name + " - " + str(self.number) + (" (Active version)" if self.current else "")
+
+class Page(models.Model):
+ name = models.CharField(max_length=200)
+ order = models.IntegerField(null=False,blank=False)
+ parent = models.ForeignKey('self',null=True,blank=True)
+ methodology_version = models.ForeignKey(MethodologyVersion)
+ def __unicode__(self):
+ return self.name
+
+class QuestionType(models.Model):
+ name = models.CharField(max_length=200)
+
+class Question(models.Model):
+ page = models.ForeignKey(Page)
+ text = models.CharField(max_length=200)
+ eval_description = models.TextField(null=True,blank=True)
+ eval_value = models.TextField(null=True,blank=True)
+ question_type = models.ForeignKey(QuestionType)
+ def __unicode__(self):
+ return self.page.name + " - " + self.text
+
+class Query(models.Model):
+ question = models.ForeignKey(Question)
+ eval_text = models.CharField(max_length=2000)
+ eval_site = models.CharField(max_length=2000)
+ eval_site_exclude = models.CharField(max_length=2000)
+
+class Choice(models.Model):
+ question = models.ForeignKey(Question)
+ order = models.IntegerField()
+ todo = models.CharField(max_length=2000)
+
+class WeightScenario(models.Model):
+ name = models.CharField(max_length=200)
+ methodology_version = models.ForeignKey(MethodologyVersion)
+ active = models.BooleanField(blank=False)
+
+class Weight(models.Model):
+ question = models.ForeignKey(Question)
+ weight = models.FloatField()
+ scenario = models.ForeignKey(WeightScenario)