← Back to team overview

oship-dev team mailing list archive

[Branch ~oship-dev/oship/devel] Rev 522: Bug #627557 fix. Implemented Resource Description class

 

------------------------------------------------------------
revno: 522
committer: Eduardo César <>
branch nick: local
timestamp: Sat 2010-12-11 21:42:46 -0200
message:
  Bug #627557 fix. Implemented Resource Description class
modified:
  src/oship/openehr/rm/common/resource/__init__.py
  src/oship/openehr/rm/common/resource/interfaces.py


--
lp:oship
https://code.launchpad.net/~oship-dev/oship/devel

Your team OSHIP Development Team is subscribed to branch lp:oship.
To unsubscribe from this branch go to https://code.launchpad.net/~oship-dev/oship/devel/+edit-subscription
=== modified file 'src/oship/openehr/rm/common/resource/__init__.py'
--- src/oship/openehr/rm/common/resource/__init__.py	2010-12-11 23:40:08 +0000
+++ src/oship/openehr/rm/common/resource/__init__.py	2010-12-11 23:42:46 +0000
@@ -103,4 +103,52 @@
 class ResourceDescription(grok.Model):
     u"""Defines the descriptive meta-data of a resource."""
 
-    pass
+    grok.implements(IResourceDescription)
+    
+    def __init__(self, orig_auth, other_contributors, lifecycle_state, details, resource_package_uri, other_details, parent_resource):
+        self.original_author = orig_auth
+        self.other_contributors = other_contributors
+        self.lifecycle_state = lifecycle_state
+        self.details = details
+        self.resource_package_uri = resource_package_uri
+        self.other_details = other_details
+        self.parent_resource = parent_resource
+
+        self.original_author_valid()
+        self.lifecycle_state_valid()
+        self.details_valid()
+        self.language_valid()
+        self.parent_resource_valid()
+        
+    def original_author_valid(self):
+        if self.original_author is None or len(self.original_author) == 0:
+            raise ValueError(u'original_author /= Void and then not original_author.is_empty')
+            
+    def lifecycle_state_valid(self):
+        if self.lifecycle_state is None or len(self.lifecycle_state) == 0:
+            raise ValueError(u'lifecycle_state /= Void and then not lifecycle_state.is_empty')
+    
+    def details_valid(self):
+        if self.details is None or len(self.details) == 0:
+            raise ValueError(u'details /= Void and then not details.is_empty')
+            
+    def language_valid(self):
+        if self.parent_resource is not None:
+            parent_languages = self.parent_resource.languagesAvailable()
+            for i in parent_languages:
+                if i is not None:
+                    for res_item in self.details.keys():
+                        if res_item.language.codeString == i.codeString:
+                           return  
+            raise ValueError("parent_resource /= Void implies details.for_all(d | parent_resource.languages_available.has(d.language.code_string))")
+
+    def parent_resource_valid(self):
+        if self.parent_resource is not None:
+            try:
+                self.parent_resource.description = self
+            except:
+                raise ValueError("parent_resource /= Void implies parent_resource.description = Current")
+            
+            
+
+

=== modified file 'src/oship/openehr/rm/common/resource/interfaces.py'
--- src/oship/openehr/rm/common/resource/interfaces.py	2010-08-06 21:24:11 +0000
+++ src/oship/openehr/rm/common/resource/interfaces.py	2010-12-11 23:42:46 +0000
@@ -110,7 +110,8 @@
         required=True
     )
 
-    details=Dict(
+    details=Object(
+        schema=IResourceDescriptionItem,
         title=_(u'Details'),
         description=_(u""""""),
         required=True
@@ -127,9 +128,7 @@
         description=_(u""""""),
         required=False
     )
-
-    parentResource=Attribute(u'Parent Resource')
-
+    
 
 class IAuthoredResource(Interface):
     u"""Abstract idea of an online resource created by a human author. """
@@ -173,3 +172,11 @@
         u"""
         Derived from originalLanguage and translations.
         """
+
+    
+IResourceDescription.parentResource = Object (
+        schema = IAuthoredResource,
+        title=_(u'Parent Resource'),
+        description=_(""),
+        required=False
+    )