Example #1
0
 def do_PUT(self):
     self.risk = self.request.survey.restrictedTraverse(
             self.context.zodb_path.split('/'))
     if self.risk.type in ['top5', 'policy']:
             return {'type': 'error',
                     'message': 'Can not evaluate a %s risk'
                         % self.risk.type}
     try:
         if self.risk.evaluation_method == 'direct':
             self.context.priority = get_json_token(self.input, 'priority',
                     IRisk['default_priority'],
                     default=self.context.priority)
         else:
             algorithm = evaluation_algorithm(self.risk)
             if algorithm == 'french':
                 self.context.severity = get_json_token(self.input,
                         'severity', IFrenchEvaluation['default_severity'],
                         self.context.severity)
                 self.context.frequency = get_json_token(self.input,
                         'frequency',
                         IFrenchEvaluation['default_frequency'],
                         self.context.frequency)
             else:  # Kinney
                 self.context.probability = get_json_token(self.input,
                         'probability',
                         IKinneyEvaluation['default_probability'],
                         self.context.probability)
                 self.context.frequency = get_json_token(self.input,
                         'frequency',
                         IKinneyEvaluation['default_frequency'],
                         self.context.frequency)
                 self.context.effect = get_json_token(self.input, 'effect',
                         IKinneyEvaluation['default_effect'],
                         self.context.effect)
             calculate_priority(self.context, self.risk)
     except (KeyError, ValueError) as e:
         return {'type': 'error',
                 'message': str(e)}
     return self.do_GET()
Example #2
0
 def do_GET(self):
     self.risk = risk = self.request.survey.restrictedTraverse(
             self.context.zodb_path.split('/'))
     info = {'id': self.context.id,
             'type': 'risk',
             'title': risk.title,
             'module-title': aq_parent(risk).title,
             'problem-description': risk.problem_description,
             'show-not-applicable': risk.show_notapplicable,
             'evaluation-method': risk.evaluation_method,
             'present': self.context.identification,
             'priority': self.context.priority,
             'comment': self.context.comment,
             }
     images = filter(None,
             [export_image(risk, self.request,
                 'image%s' % postfix, 'caption%s' % postfix,
                 width=150, height=500, direction='thumbnail')
                 for postfix in ['', '2', '3', '4']])
     if images:
         info['images'] = images
     if HasText(risk.description):
         info['description'] = risk.description
     if HasText(risk.legal_reference):
         info['legal-reference'] = risk.legal_reference
     if risk.evaluation_method == 'calculated':
         algorithm = evaluation_algorithm(risk)
         info['evaluation-algorithm'] = algorithm
         if algorithm == 'french':
             field = IFrenchEvaluation['default_severity']
             info['severity'] = vocabulary_token(
                     field, self.context.severity) \
                             if self.context.severity else None
             info['severity-options'] = vocabulary_options(
                     field, self.request)
             field = IFrenchEvaluation['default_frequency']
             info['frequency'] = vocabulary_token(
                     field, self.context.frequency) \
                             if self.context.frequency else None
             info['frequency-options'] = vocabulary_options(
                     field, self.request)
         else:  # Kinney
             field = IKinneyEvaluation['default_frequency']
             info['frequency'] = vocabulary_token(
                     field, self.context.frequency) \
                             if self.context.frequency else None
             info['frequency-options'] = vocabulary_options(
                     field, self.request)
             field = IKinneyEvaluation['default_effect']
             info['effect'] = vocabulary_token(field, self.context.effect) \
                             if self.context.effect else None
             info['effect-options'] = vocabulary_options(
                     field, self.request)
             field = IKinneyEvaluation['default_probability']
             info['probability'] = vocabulary_token(
                     field, self.context.probability) \
                             if self.context.probability else None
             info['probability-options'] = vocabulary_options(
                     field, self.request)
     solutions = [solution for solution in risk.values()
                  if ISolution.providedBy(solution)]
     if solutions:
         info['standard-solutions'] = [
                 {'description': solution.description,
                  'action-plan': solution.action_plan,
                  'prevention-plan': solution.prevention_plan,
                  'requirements': solution.requirements}
                 for solution in risk.values()]
     return info
Example #3
0
 def do_GET(self):
     self.risk = risk = self.request.survey.restrictedTraverse(
         self.context.zodb_path.split('/'))
     info = {
         'id': self.context.id,
         'type': 'risk',
         'title': risk.title,
         'module-title': aq_parent(risk).title,
         'problem-description': risk.problem_description,
         'show-not-applicable': risk.show_notapplicable,
         'evaluation-method': risk.evaluation_method,
         'present': self.context.identification,
         'priority': self.context.priority,
         'comment': self.context.comment,
     }
     images = filter(None, [
         export_image(risk,
                      self.request,
                      'image%s' % postfix,
                      'caption%s' % postfix,
                      width=150,
                      height=500,
                      direction='thumbnail')
         for postfix in ['', '2', '3', '4']
     ])
     if images:
         info['images'] = images
     if HasText(risk.description):
         info['description'] = risk.description
     if HasText(risk.legal_reference):
         info['legal-reference'] = risk.legal_reference
     if risk.evaluation_method == 'calculated':
         algorithm = evaluation_algorithm(risk)
         info['evaluation-algorithm'] = algorithm
         if algorithm == 'french':
             field = IFrenchEvaluation['default_severity']
             info['severity'] = vocabulary_token(
                     field, self.context.severity) \
                             if self.context.severity else None
             info['severity-options'] = vocabulary_options(
                 field, self.request)
             field = IFrenchEvaluation['default_frequency']
             info['frequency'] = vocabulary_token(
                     field, self.context.frequency) \
                             if self.context.frequency else None
             info['frequency-options'] = vocabulary_options(
                 field, self.request)
         else:  # Kinney
             field = IKinneyEvaluation['default_frequency']
             info['frequency'] = vocabulary_token(
                     field, self.context.frequency) \
                             if self.context.frequency else None
             info['frequency-options'] = vocabulary_options(
                 field, self.request)
             field = IKinneyEvaluation['default_effect']
             info['effect'] = vocabulary_token(field, self.context.effect) \
                             if self.context.effect else None
             info['effect-options'] = vocabulary_options(
                 field, self.request)
             field = IKinneyEvaluation['default_probability']
             info['probability'] = vocabulary_token(
                     field, self.context.probability) \
                             if self.context.probability else None
             info['probability-options'] = vocabulary_options(
                 field, self.request)
     solutions = [
         solution for solution in risk.values()
         if ISolution.providedBy(solution)
     ]
     if solutions:
         info['standard-solutions'] = [{
             'description': solution.description,
             'action-plan': solution.action_plan,
             'prevention-plan': solution.prevention_plan,
             'requirements': solution.requirements
         } for solution in risk.values()]
     return info