12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- # -*- coding: utf-8 -*-
-
- """ Main object to manipulate Editorial Model
- parent of all other EM editing classes
- @see EmClass, EmType, EmFieldGroup, EmField
- """
-
- from Lodel.utils.mlstring import MlString
- import logging
-
- logger = logging.getLogger('Lodel2.EditorialModel')
-
- class EmComponent(object):
-
- """ instaciate an EmComponent
- @param id_or_name int|str: name or id of the object
- @exception TypeError
- """
- def __init__(self, id_or_name):
- if self is EmComponent:
- raise EnvironmentError('Abstract class')
- if type(id_or_name) is int:
- self.id = id_or_name
- elif type(id_or_name) is str:
- self.name = id_or_name
- self.populate()
- else:
- raise TypeError('Bad argument: expecting <int> or <str>')
-
- """ Lookup in the database properties of the object to populate the properties
- """
- def populate(self):
- if self.id is None:
- where = "name = " + db.quote(self.name)
- else:
- where = "id = " + self.id
-
- row = db.query('*', self.table, where)
- if not row:
- # could have two possible Error message for id and for name
- raise EmComponentNotExistError("Bad id_or_name: could not find the component")
-
- self.name = row.name
- self.rank = int(row.rank)
- self.date_update = row.date_update
- self.date_create = row.date_create
- self.string = MlString.from_json(row.string)
- self.help = MlString.from_json(row.help)
- self.icon = row.icon
-
- return row
-
- """ write the representation of the component in the database
- @return bool
- """
- def save(self):
- pass
-
- """ delete this component data in the database
- @return bool
- """
- def delete(self):
- pass
-
- """ change the rank of the component
- @param int new_rank new position
- """
- def modify_rank(self, new_rank):
- pass
-
- """ set a string representation of the component for a given language
- @param lang str: iso 639-2 code of the language http://en.wikipedia.org/wiki/List_of_ISO_639-2_codes
- @param text str: text to set
- @return bool
- """
- def set_string(self, lang, text):
- pass
-
- """ set the string representation of the component
- @param ml_string MlString: strings for all language
- @return bool
- """
- def set_strings(self, ml_string):
- pass
-
- """ get the string representation of the component for the given language
- @param lang str: iso 639-2 code of the language
- @return text str:
- """
- def get_string(self, lang):
- pass
|