Switch to unified view

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