Parent: [2c9463] (diff)

Child: [c9d94b] (diff)

Download this file

models.py    76 lines (64 with data), 3.1 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
from datetime import datetime
from django.db import models
from methodology.models import WeightScenario
class Analysis(models.Model):
name = models.CharField(max_length=200)
description = models.CharField(max_length=2000)
comment = models.TextField(null=True,blank=True)
created = models.DateField(default=datetime.now, blank=True)
methodology_version = models.ForeignKey('methodology.MethodologyVersion')
user_login = models.CharField(max_length=50)
visible = models.BooleanField(default=True)
weight_scenario = models.ForeignKey(WeightScenario)
protected = models.BooleanField(default=False)
def __str__(self):
return self.name
def from_xml(self, xmldoc, insert = True):
#All but the MethodologyVersion so that we can independently import from xml MethodologyVersion and Analysis
pass
def to_xml(self):
str_xml = "<Description>" + self.description + "</Description>"
str_xml += "<Comment>" + self.comment + "</Comment>"
str_xml += self.weight_scenario.to_xml()
str_xml += "<Instances>"
for instance in self.instance_set.all():
str_xml += instance.to_xml()
str_xml += "</Instances>"
return '<Analysis Id="' + str(self.id) + '" Name="' + self.name + '" Created="' + str(self.created) + '" UserLogin="' + self.user_login + '">' + str_xml + "</Analysis>"
class Instance(models.Model):
"""
It represents one of the entities we evaluate in the assessment
"""
name = models.CharField(max_length=200)
name_for_search = models.CharField(max_length=200, default="")
analysis = models.ForeignKey(Analysis)
def __str__(self):
return self.name + " - " + self.name_for_search
def from_xml(self, xmldoc, insert = True):
pass
def to_xml(self):
str_xml = "<Answers>"
for answer in self.answer_set.all():
str_xml += answer.to_xml()
str_xml += "</Answers>"
return '<Instance Id="' + str(self.id) + '" Name="' + self.name + '" NameForSearch="' + self.name_for_search + '">' + str_xml + "</Instance>"
class Answer(models.Model):
"""
"""
instance = models.ForeignKey(Instance)
question = models.ForeignKey('methodology.Question')
value_integer = models.IntegerField()
notes = models.CharField(max_length=2000)
def from_xml(self, xmldoc, insert = True):
pass
def to_xml(self):
str_xml = "<Notes>" + self.notes + "</Notes>"
str_xml += '<Question Id="' + str(self.question.id) + '"></Question>'
return '<Answer ValueInteger="' + str(self.value_integer) + '">' + str_xml + "</Answer>"
class Configuration(models.Model):
default_methodology_version = models.ForeignKey('methodology.MethodologyVersion', blank=True, null=True)
class UploadedFile(models.Model):
'''
Used to save uploaded xml file so that it can be later retrieved and imported
'''
docfile = models.FileField(upload_to='documents/%Y/%m/%d')