Beispiel #1
0
    def prepare_new_task(self):
        new_task_props = [
            TaskEnvironmentProperties(
                environmentName=self.existing_environment_name,
                deps=self.existing_direct_flag,
                personas=self.existing_personas,
                assets=self.existing_assets,
                concs=self.existing_concern_associations,
                narrative=self.existing_narrative,
                consequences=self.existing_consequences,
                benefits=self.existing_benefits,
                tCodes=self.existing_codes)
        ]

        new_task = Task(tId=-1,
                        tName='New task',
                        tShortCode='NT',
                        tObjt='New objective',
                        isAssumption=True,
                        tAuth='New Author',
                        tags=[],
                        cProps=[])
        new_task.theEnvironmentProperties = new_task_props

        new_task.theEnvironmentDictionary = {}

        delattr(new_task, 'theEnvironmentDictionary')

        return new_task
Beispiel #2
0
  def OnEnvironmentDeselected(self,evt):
    self.theSelectedIdx = evt.GetIndex()
    environmentName = self.environmentList.GetItemText(self.theSelectedIdx)

    envCodebook = {'narrative':self.narrativeCtrl.codes(),'consequences':self.consequencesCtrl.codes(),'benefits':self.benefitsCtrl.codes()}
    self.theEnvironmentDictionary[environmentName] = TaskEnvironmentProperties(environmentName,self.dependenciesCtrl.GetValue(),self.personaList.dimensions(),self.assetList.dimensions(),self.caList.dimensions(),self.narrativeCtrl.GetValue(),self.consequencesCtrl.GetValue(),self.benefitsCtrl.GetValue(),envCodebook)
    self.dependenciesCtrl.SetValue('')
    self.personaList.setEnvironment('')
    self.assetList.setEnvironment('')
    self.caList.setEnvironment('')
    self.narrativeCtrl.setEnvironment('')
    self.personaList.DeleteAllItems() 
    self.assetList.DeleteAllItems() 
    self.caList.DeleteAllItems() 
    self.narrativeCtrl.SetValue('')
    self.consequencesCtrl.SetValue('')
    self.benefitsCtrl.SetValue('')
    self.narrativeCtrl.setCodes({})
    self.consequencesCtrl.setCodes({})
    self.benefitsCtrl.setCodes({})
    self.theSelectedIdx = -1
    self.dependenciesCtrl.Disable()
    self.personaList.Disable() 
    self.assetList.Disable() 
    self.caList.Disable() 
    self.narrativeCtrl.Disable()
    self.consequencesCtrl.Disable()
    self.benefitsCtrl.Disable()
 def endElement(self,name):
   if name == 'persona':
     p = PersonaParameters(self.theName,unescape(self.theActivities),unescape(self.theAttitudes),unescape(self.theAptitudes),unescape(self.theMotivations),unescape(self.theSkills),unescape(self.theIntrinsic),unescape(self.theContextual),self.theImage,self.isAssumptionPersona,self.theType,self.theTags,self.theEnvironmentProperties,{})
     self.thePersonas.append(p)
     self.resetPersonaAttributes()
   elif name == 'persona_environment':
     p = PersonaEnvironmentProperties(self.theEnvironmentName,self.isDirect,unescape(self.theNarrative),self.theRoles,{'narrative':{}})
     self.theEnvironmentProperties.append(p)
     self.resetPersonaEnvironmentAttributes()
   elif name == 'external_document':
     p = ExternalDocumentParameters(self.theName,self.theVersion,self.theDate,self.theAuthors,unescape(self.theDescription))
     self.theExternalDocuments.append(p)
     self.resetExternalDocumentAttributes()
   elif name == 'document_reference':
     p = DocumentReferenceParameters(self.theName,self.theDocument,self.theContributor,unescape(self.theExcerpt))
     self.theDocumentReferences.append(p)
     self.resetDocumentReferenceAttributes()
   elif name == 'persona_characteristic':
     p = PersonaCharacteristicParameters(self.thePersona,self.theModalQualifier,self.theBvName,unescape(self.theDefinition),self.theGrounds,self.theWarrants,[],self.theRebuttals)
     self.thePersonaCharacteristics.append(p)
     self.resetPersonaCharacteristicAttributes()
   elif name == 'task':
     p = TaskParameters(unescape(self.theName),unescape(self.theCode),unescape(self.theObjective),self.isAssumptionTask,self.theAuthor,self.theTags,self.theEnvironmentProperties)
     self.theTasks.append(p)
     self.resetTaskAttributes()
   elif name == 'task_environment':
     p = TaskEnvironmentProperties(unescape(self.theEnvironmentName),unescape(self.theDependencies),self.theTaskPersonas,self.theConcerns,self.theConcernAssociations,unescape(self.theNarrative),unescape(self.theConsequences),unescape(self.theBenefits),[],{'narrative':{},'consequences':{},'benefits':{}})
     self.theEnvironmentProperties.append(p)
     self.resetTaskEnvironmentAttributes()
   elif name == 'activities':
     self.inActivities = 0
   elif name == 'attitudes':
     self.inAttitudes = 0
   elif name == 'aptitudes':
     self.inAptitudes = 0
   elif name == 'motivations':
     self.inMotivations = 0
   elif name == 'skills':
     self.inSkills = 0
   elif name == 'intrinsic':
     self.inIntrinsic = 0
   elif name == 'contextual':
     self.inContextual = 0
   elif name == 'narrative':
     self.inNarrative = 0
   elif name == 'excerpt':
     self.inExcerpt = 0
   elif name == 'description':
     self.inDescription = 0
   elif name == 'definition':
     self.inDefinition = 0
   elif name == 'dependencies':
     self.inDependencies = 0
   elif name == 'objective':
     self.inObjective = 0
   elif name == 'benefits':
     self.inBenefits = 0
   elif name == 'consequences':
     self.inConsequences = 0
Beispiel #4
0
    def convert_props(self, real_props=None, fake_props=None):
        new_props = []
        if real_props is not None:
            if len(real_props) > 0:
                for real_prop in real_props:
                    assert isinstance(real_prop, TaskEnvironmentProperties)
                    del real_prop.theCodes
                    ptList = []
                    for ptc in real_prop.personas():
                        ptList.append(
                            PersonaTaskCharacteristics(ptc[0], ptc[1], ptc[2],
                                                       ptc[3], ptc[4]))
                    real_prop.thePersonas = ptList
                    gcaList = []
                    for gca in real_prop.concernAssociations():
                        gcaList.append(
                            ConcernAssociationModel(gca[0], gca[1], gca[2],
                                                    gca[3], gca[4]))
                    real_prop.theConcernAssociations = gcaList
                    new_props.append(real_prop)
        elif fake_props is not None:
            if len(fake_props) > 0:
                for fake_prop in fake_props:
                    check_required_keys(
                        fake_prop, TaskEnvironmentPropertiesModel.required)
                    ptList = []
                    for ptc in fake_prop['thePersonas']:
                        ptList.append([
                            ptc['thePersona'], ptc['theDuration'],
                            ptc['theFrequency'], ptc['theDemands'],
                            ptc['theGoalConflict']
                        ])
                    fake_prop['thePersonas'] = ptList
                    gcaList = []
                    for gca in fake_prop['theConcernAssociations']:
                        gcaList.append([
                            gca['theSource'], gca['theSourceNry'],
                            gca['theLinkVerb'], gca['theTarget'],
                            gca['theTargetNry']
                        ])
                    fake_prop['theConcernAssociations'] = gcaList

                    new_prop = TaskEnvironmentProperties(
                        environmentName=fake_prop['theEnvironmentName'],
                        deps=fake_prop['theDependencies'],
                        personas=fake_prop['thePersonas'],
                        assets=fake_prop['theAssets'],
                        concs=fake_prop['theConcernAssociations'],
                        narrative=fake_prop['theNarrative'],
                        consequences=fake_prop['theConsequences'],
                        benefits=fake_prop['theBenefits'],
                        tCodes=[])
                    new_props.append(new_prop)
        else:
            self.close()
            raise MissingParameterHTTPError(
                param_names=['real_props', 'fake_props'])
        return new_props
Beispiel #5
0
 def inheritedTaskProperties(self, taskId, environmentName):
     environmentId = self.getDimensionId(environmentName, 'environment')
     dependencies = self.taskDependencies(taskId, environmentId)
     personas = self.taskPersonas(taskId, environmentId)
     assets = self.taskAssets(taskId, environmentId)
     concs = self.taskConcernAssociations(taskId, environmentId)
     narrative = self.taskNarrative(taskId, environmentId)
     return TaskEnvironmentProperties(environmentName, dependencies,
                                      personas, assets, concs, narrative)
Beispiel #6
0
    def OnAddEnvironment(self, evt):
        self.theSelectedIdx = evt.GetIndex()
        environmentName = self.environmentList.GetItemText(self.theSelectedIdx)
        self.theEnvironmentDictionary[
            environmentName] = TaskEnvironmentProperties(environmentName)
        self.environmentList.Select(self.theSelectedIdx)
        self.personaList.setEnvironment(environmentName)
        self.assetList.setEnvironment(environmentName)
        self.caList.setEnvironment(environmentName)
        self.narrativeCtrl.setEnvironment(environmentName)
        self.personaList.DeleteAllItems()
        self.assetList.DeleteAllItems()
        self.caList.DeleteAllItems()
        self.dependenciesCtrl.SetValue('')
        self.narrativeCtrl.SetValue('')
        self.consequencesCtrl.SetValue('')
        self.benefitsCtrl.SetValue('')
        self.narrativeCtrl.setCodes({})
        self.consequencesCtrl.setCodes({})
        self.benefitsCtrl.setCodes({})
        self.dependenciesCtrl.Enable()
        self.personaList.Enable()
        self.assetList.Enable()
        self.caList.Enable()
        self.narrativeCtrl.Enable()
        self.consequencesCtrl.Enable()
        self.benefitsCtrl.Enable()
        inheritedEnv = self.environmentList.inheritedEnvironment()
        if (inheritedEnv != '' and self.theTaskId != None):
            p = self.dbProxy.inheritedTaskProperties(self.theTaskId,
                                                     inheritedEnv)
            self.theEnvironmentDictionary[environmentName] = p
            self.dependenciesCtrl.SetValue(p.dependencies())
            self.personaList.setEnvironment(environmentName)
            self.assetList.setEnvironment(environmentName)
            self.caList.setEnvironment(environmentName)
            self.narrativeCtrl.setEnvironment(environmentName)
            self.personaList.load(p.personas())
            self.assetList.load(p.assets())
            self.caList.load(p.concernAssociations())
            self.narrativeCtrl.SetValue(p.narrative())
            self.consequencesCtrl.SetValue(p.consequences())
            self.benefitsCtrl.SetValue(p.benefits())
            self.narrativeCtrl.setCodes(p.codes('narrative'))
            self.consequencesCtrl.setCodes(p.codes('consequences'))
            self.benefitsCtrl.setCodes(p.codes('benefits'))

            self.dependenciesCtrl.Enable()
            self.personaList.Enable()
            self.assetList.Enable()
            self.caList.Enable()
            self.narrativeCtrl.Enable()
            self.consequencesCtrl.Enable()
            self.benefitsCtrl.Enable()
Beispiel #7
0
 def environmentProperties(self):
     if (self.theSelectedIdx != -1):
         environmentName = self.environmentList.GetItemText(
             self.theSelectedIdx)
         envCodebook = {
             'narrative': self.narrativeCtrl.codes(),
             'consequences': self.consequencesCtrl.codes(),
             'benefits': self.benefitsCtrl.codes()
         }
         self.theEnvironmentDictionary[
             environmentName] = TaskEnvironmentProperties(
                 environmentName, self.dependenciesCtrl.GetValue(),
                 self.personaList.dimensions(), self.assetList.dimensions(),
                 self.caList.dimensions(), self.narrativeCtrl.GetValue(),
                 self.consequencesCtrl.GetValue(),
                 self.benefitsCtrl.GetValue(), envCodebook)
     return self.theEnvironmentDictionary.values()
 def endElement(self, name):
     if name == 'persona':
         p = PersonaParameters(self.theName, self.theActivities,
                               self.theAttitudes, self.theAptitudes,
                               self.theMotivations, self.theSkills,
                               self.theIntrinsic, self.theContextual,
                               self.theImage, self.isAssumptionPersona,
                               self.theType, self.theTags,
                               self.theEnvironmentProperties, {})
         self.thePersonas.append(p)
         self.resetPersonaAttributes()
     elif name == 'persona_environment':
         p = PersonaEnvironmentProperties(self.theEnvironmentName,
                                          self.isDirect, self.theNarrative,
                                          self.theRoles, {'narrative': {}})
         self.theEnvironmentProperties.append(p)
         self.resetPersonaEnvironmentAttributes()
     elif name == 'external_document':
         p = ExternalDocumentParameters(self.theName, self.theVersion,
                                        self.theDate, self.theAuthors,
                                        self.theDescription)
         self.theExternalDocuments.append(p)
         self.resetExternalDocumentAttributes()
     elif name == 'document_reference':
         p = DocumentReferenceParameters(self.theName, self.theDocument,
                                         self.theContributor,
                                         self.theExcerpt)
         self.theDocumentReferences.append(p)
         self.resetDocumentReferenceAttributes()
     elif name == 'concept_reference':
         p = ConceptReferenceParameters(self.theName, self.theConcept,
                                        self.theObject, self.theDescription)
         self.theConceptReferences.append(p)
         self.resetConceptReferenceAttributes()
     elif name == 'persona_characteristic':
         p = PersonaCharacteristicParameters(
             self.thePersona, self.theModalQualifier, self.theBvName,
             self.theDefinition, self.theGrounds, self.theWarrants, [],
             self.theRebuttals)
         self.thePersonaCharacteristics.append(p)
         self.resetPersonaCharacteristicAttributes()
     elif name == 'task_characteristic':
         p = TaskCharacteristicParameters(self.theTask,
                                          self.theModalQualifier,
                                          self.theDefinition,
                                          self.theGrounds, self.theWarrants,
                                          [], self.theRebuttals)
         self.theTaskCharacteristics.append(p)
         self.resetTaskCharacteristicAttributes()
     elif name == 'task':
         p = TaskParameters(self.theName, self.theCode, self.theObjective,
                            self.isAssumptionTask, self.theAuthor,
                            self.theTags, self.theEnvironmentProperties)
         self.theTasks.append(p)
         self.resetTaskAttributes()
     elif name == 'task_environment':
         p = TaskEnvironmentProperties(
             self.theEnvironmentName, self.theDependencies,
             self.theTaskPersonas, self.theConcerns,
             self.theConcernAssociations, self.theNarrative,
             self.theConsequences, self.theBenefits, {
                 'narrative': {},
                 'consequences': {},
                 'benefits': {}
             })
         self.theEnvironmentProperties.append(p)
         self.resetTaskEnvironmentAttributes()
     elif name == 'exception':
         self.theCurrentStep.addException(
             (self.theExcName, self.theExcType, self.theExcValue,
              self.theExcCat, self.theDefinition))
     elif name == 'step':
         self.theCurrentStep.setTags(self.theTags)
         self.theSteps.append(self.theCurrentStep)
         self.theCurrentStep = None
     elif name == 'usecase_environment':
         p = UseCaseEnvironmentProperties(self.theEnvironmentName,
                                          self.thePreconditions,
                                          self.theSteps,
                                          self.thePostconditions)
         self.theEnvironmentProperties.append(p)
         self.resetUseCaseEnvironmentAttributes()
     elif name == 'usecase':
         p = UseCaseParameters(self.theName, self.theAuthor, self.theCode,
                               self.theActors, self.theDescription,
                               self.theTags, self.theEnvironmentProperties)
         self.theUseCases.append(p)
         self.resetUseCaseAttributes()
     elif name == 'activities':
         self.inActivities = 0
     elif name == 'attitudes':
         self.inAttitudes = 0
     elif name == 'aptitudes':
         self.inAptitudes = 0
     elif name == 'motivations':
         self.inMotivations = 0
     elif name == 'skills':
         self.inSkills = 0
     elif name == 'intrinsic':
         self.inIntrinsic = 0
     elif name == 'contextual':
         self.inContextual = 0
     elif name == 'narrative':
         self.inNarrative = 0
     elif name == 'excerpt':
         self.inExcerpt = 0
     elif name == 'description':
         self.inDescription = 0
     elif name == 'definition':
         self.inDefinition = 0
     elif name == 'dependencies':
         self.inDependencies = 0
     elif name == 'objective':
         self.inObjective = 0
     elif name == 'preconditions':
         self.inPreconditions = 0
     elif name == 'postconditions':
         self.inPostconditions = 0
     elif name == 'benefits':
         self.inBenefits = 0
     elif name == 'consequences':
         self.inConsequences = 0
Beispiel #9
0
    def testTask(self):
        t = self.iTasks[0]
        taskName = t["theName"]
        taskTags = t["theTaskTags"]
        taskShortCode = t["theShortCode"]
        taskObjective = t["theObjective"]
        taskAuthor = t["theAuthor"]
        isAssumptionTask = int(t["isAssumption"])
        tEnv = t["theEnvironments"][0]
        envName = tEnv["theName"]
        deps = tEnv["theDependencies"]
        taskPersona = tEnv["theTaskPersonas"][0]["thePersona"]
        taskDuration = tEnv["theTaskPersonas"][0]["theDuration"]
        taskFreq = tEnv["theTaskPersonas"][0]["theFrequency"]
        taskDemands = tEnv["theTaskPersonas"][0]["theDemands"]
        taskGoalConflict = tEnv["theTaskPersonas"][0]["theGoalConflict"]
        taskAssets = tEnv["theTaskAssets"]
        taskConcerns = []
        taskNarrative = tEnv["theNarrative"]
        taskConsequences = tEnv["theConsequences"]
        taskBenefits = tEnv["theBenefits"]
        iteps = [
            TaskEnvironmentProperties(envName, deps,
                                      [(taskPersona, taskDuration, taskFreq,
                                        taskDemands, taskGoalConflict)],
                                      taskAssets, taskConcerns, taskNarrative,
                                      taskConsequences, taskBenefits)
        ]
        iTask = TaskParameters(taskName, taskShortCode, taskObjective,
                               isAssumptionTask, taskAuthor, taskTags, iteps)
        b = Borg()
        b.dbProxy.addTask(iTask)
        theTasks = b.dbProxy.getTasks()
        oTask = theTasks[self.iTasks[0]["theName"]]

        self.assertEqual(iTask.name(), oTask.name())
        self.assertEqual(iTask.tags(), oTask.tags())
        self.assertEqual(iTask.shortCode(), oTask.shortCode())
        self.assertEqual(iTask.objective(), oTask.objective())
        self.assertEqual(iTask.assumption(), oTask.assumption())
        self.assertEqual(iTask.author(), oTask.author())
        self.assertEqual(iTask.environmentProperties()[0].personas(),
                         oTask.personas(envName, '', envName))
        self.assertEqual(iTask.environmentProperties()[0].assets(),
                         oTask.assets(envName, ''))
        self.assertEqual(iTask.environmentProperties()[0].narrative(),
                         oTask.narrative(envName, ''))
        self.assertEqual(iTask.environmentProperties()[0].consequences(),
                         oTask.environmentProperties()[0].consequences())
        self.assertEqual(iTask.environmentProperties()[0].benefits(),
                         oTask.environmentProperties()[0].benefits())
        self.assertEqual(iTask.environmentProperties()[0].dependencies(),
                         oTask.environmentProperties()[0].dependencies())
        self.assertEqual(oTask.usability(envName, ''), 5)

        self.assertEqual(b.dbProxy.taskLoad(oTask.id(), 104), 5)

        iTask.theName = 'Updated name'
        iTask.setId(oTask.id())
        b.dbProxy.updateTask(iTask)
        theTasks = b.dbProxy.getTasks()
        oTask = theTasks['Updated name']
        self.assertEqual(oTask.name(), 'Updated name')
        self.assertEqual(iTask.tags(), oTask.tags())
        self.assertEqual(iTask.shortCode(), oTask.shortCode())
        self.assertEqual(iTask.objective(), oTask.objective())
        self.assertEqual(iTask.assumption(), oTask.assumption())
        self.assertEqual(iTask.author(), oTask.author())
        self.assertEqual(iTask.environmentProperties()[0].personas(),
                         oTask.environmentProperties()[0].personas())
        self.assertEqual(iTask.environmentProperties()[0].personas(),
                         oTask.personas('Psychosis', '', ''))
        self.assertEqual(
            iTask.environmentProperties()[0].personas()[0][1],
            list(oTask.personas('Psychosis', 'Maximise', ''))[0][1])
        self.assertEqual(iTask.environmentProperties()[0].assets(),
                         oTask.environmentProperties()[0].assets())
        self.assertEqual(iTask.environmentProperties()[0].assets(),
                         oTask.assets('Psychosis', ''))
        self.assertEqual(iTask.environmentProperties()[0].assets(),
                         list(oTask.assets('', 'Maximise')))
        self.assertEqual(iTask.environmentProperties()[0].narrative(),
                         oTask.environmentProperties()[0].narrative())
        self.assertEqual(iTask.environmentProperties()[0].narrative(),
                         oTask.narrative('Psychosis', ''))
        self.assertEqual(iTask.environmentProperties()[0].narrative(),
                         oTask.narrative('', 'Maximise'))
        self.assertEqual(iTask.environmentProperties()[0].consequences(),
                         oTask.environmentProperties()[0].consequences())
        self.assertEqual(iTask.environmentProperties()[0].benefits(),
                         oTask.environmentProperties()[0].benefits())
        self.assertEqual(iTask.environmentProperties()[0].dependencies(),
                         oTask.environmentProperties()[0].dependencies())
        self.assertEqual(iTask.environmentProperties()[0].dependencies(),
                         oTask.dependencies('Psychosis', ''))
        self.assertEqual(iTask.environmentProperties()[0].dependencies(),
                         oTask.dependencies('', 'Maximise'))

        b.dbProxy.deleteTask(oTask.id())