123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- # -*- coding: utf-8 -*-
-
- ## @file editorialmodel.py
- # Manage instance of an editorial model
-
- from EditorialModel.classes import EmClass
- from EditorialModel.fieldgroups import EmFieldGroup
-
-
-
- ## Manages the Editorial Model
- class Model(object):
-
- componentClass = EmClass
- componentFieldGroup = EmFieldGroup
-
- ## Constructor
- #
- # @param backend unknown: A backend object instanciated from one of the classes in the backend module
- def __init__(self, backend):
- self.backend = backend
- self.uids = {}
- self.load()
-
- ## Loads the structure of the Editorial Model
- #
- # Gets all the objects contained in that structure and creates a list indexed by their uids
- def load(self):
- data = self.backend.load()
- for uid, component in data.items():
- cls_name = 'component' + component['component']
- cls = getattr(Model, cls_name)
- if cls:
- component['uid'] = uid
- self.uids[uid] = cls(component)
- print (self.uids[uid])
-
- ## Saves data using the current backend
- def save(self):
- return self.backend.save()
-
- ## Changes the current backend
- #
- # @param backend unknown: A backend object
- def set_backend(self, backend):
- self.backend = backend
-
- ## Returns a list of all the EmClass objects of the model
- def classes(self):
- classes = [component for _, component in self.uids if isinstance(component, EmClass)]
- return classes
|