se adicionan comentarios
FossilOrigin-Name: 13a8728e99e2a715d68bee47a54adcfef5a1f0043abfdfe6aabb3afa99ca9f7f
This commit is contained in:
parent
3a349a746e
commit
3a89c6d3e5
@ -4,6 +4,9 @@ from collections import defaultdict
|
||||
class ModelMeta(type):
|
||||
def __new__(cls, name, bases, ns):
|
||||
new = type.__new__(cls, name, bases, ns)
|
||||
|
||||
# mapeamos asignacion en declaracion de clase
|
||||
# a attributo de objeto
|
||||
if '__name__' in ns:
|
||||
new.__name__ = ns['__name__']
|
||||
if '__namespace__' in ns:
|
||||
@ -134,7 +137,15 @@ class ModelBase(object, metaclass=ModelMeta):
|
||||
else:
|
||||
return "<%s%s%s>%s</%s%s>" % (ns, tag, attributes, content, ns, tag)
|
||||
|
||||
def __str__(self):
|
||||
return self.to_xml()
|
||||
|
||||
|
||||
class Model(ModelBase):
|
||||
"""
|
||||
Model clase que representa el modelo
|
||||
"""
|
||||
|
||||
def __before_xml__(self):
|
||||
"""
|
||||
Ejecuta antes de generar el xml, este
|
||||
|
@ -3,6 +3,10 @@ from collections import defaultdict
|
||||
import facho.fe.form as form
|
||||
|
||||
class Amount(Field):
|
||||
"""
|
||||
Amount representa un campo moneda usando form.Amount
|
||||
"""
|
||||
|
||||
def __init__(self, name=None, default=None, precision=6):
|
||||
self.field_name = name
|
||||
self.values = {}
|
||||
|
@ -1,7 +1,15 @@
|
||||
from .field import Field
|
||||
|
||||
class Attribute(Field):
|
||||
"""
|
||||
Attribute es un atributo del elemento actual.
|
||||
"""
|
||||
|
||||
def __init__(self, name, default=None):
|
||||
"""
|
||||
:param name: nombre del atribute
|
||||
:param default: valor por defecto del attributo
|
||||
"""
|
||||
self.attribute = name
|
||||
self.value = default
|
||||
self.default = default
|
||||
|
@ -4,6 +4,8 @@ class Function(Field):
|
||||
"""
|
||||
Permite modificar el modelo cuando se intenta,
|
||||
obtener el valor de este campo.
|
||||
|
||||
DEPRECATED usar Virtual
|
||||
"""
|
||||
def __init__(self, field, getter=None, default=None):
|
||||
self.field = field
|
||||
|
@ -2,7 +2,19 @@ from .field import Field
|
||||
from collections import defaultdict
|
||||
|
||||
class Many2One(Field):
|
||||
"""
|
||||
Many2One describe una relacion pertenece a.
|
||||
"""
|
||||
|
||||
def __init__(self, model, name=None, setter=None, namespace=None, default=None, virtual=False, create=False):
|
||||
"""
|
||||
:param model: nombre del modelo destino
|
||||
:param name: nombre del elemento xml
|
||||
:param setter: nombre de methodo usado cuando se asigna usa como asignacion ejemplo model.relation = 3
|
||||
:param default: el valor o contenido por defecto
|
||||
:param virtual: se crea la relacion por no se ve reflejada en el xml final
|
||||
:param create: fuerza la creacion del elemento en el xml, ya que los elementos no son creados sino tienen contenido
|
||||
"""
|
||||
self.model = model
|
||||
self.setter = setter
|
||||
self.namespace = namespace
|
||||
|
@ -56,7 +56,17 @@ class _Relation():
|
||||
yield relation
|
||||
|
||||
class One2Many(Field):
|
||||
"""
|
||||
One2Many describe una relacion tiene muchos.
|
||||
"""
|
||||
|
||||
def __init__(self, model, name=None, namespace=None, default=None):
|
||||
"""
|
||||
:param model: nombre del modelo destino
|
||||
:param name: nombre del elemento xml cuando se crea hijo
|
||||
:param namespace: sufijo del namespace al que pertenece el elemento
|
||||
:param default: el valor o contenido por defecto
|
||||
"""
|
||||
self.model = model
|
||||
self.field_name = name
|
||||
self.namespace = namespace
|
||||
|
@ -4,11 +4,20 @@ from .field import Field
|
||||
# no participa del renderizado
|
||||
# pero puede interactura con este
|
||||
class Virtual(Field):
|
||||
"""
|
||||
Virtual es un campo que no es renderizado en el xml final
|
||||
"""
|
||||
def __init__(self,
|
||||
setter=None,
|
||||
getter='bob',
|
||||
getter='',
|
||||
default=None,
|
||||
update_internal=False):
|
||||
"""
|
||||
:param setter: nombre de methodo usado cuando se asigna usa como asignacion ejemplo model.relation = 3
|
||||
:param getter: nombre del metodo usando cuando se obtiene, ejemplo: valor = mode.relation
|
||||
:param default: valor por defecto
|
||||
:param update_internal: indica que cuando se asigne algun valor este se almacena localmente
|
||||
"""
|
||||
self.default = default
|
||||
self.setter = setter
|
||||
self.getter = getter
|
||||
|
Loading…
Reference in New Issue
Block a user