se adicionan comentarios

FossilOrigin-Name: 13a8728e99e2a715d68bee47a54adcfef5a1f0043abfdfe6aabb3afa99ca9f7f
This commit is contained in:
bit4bit 2021-08-09 01:15:51 +00:00
parent 3a349a746e
commit 3a89c6d3e5
7 changed files with 57 additions and 1 deletions

View File

@ -4,6 +4,9 @@ from collections import defaultdict
class ModelMeta(type): class ModelMeta(type):
def __new__(cls, name, bases, ns): def __new__(cls, name, bases, ns):
new = type.__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: if '__name__' in ns:
new.__name__ = ns['__name__'] new.__name__ = ns['__name__']
if '__namespace__' in ns: if '__namespace__' in ns:
@ -134,7 +137,15 @@ class ModelBase(object, metaclass=ModelMeta):
else: else:
return "<%s%s%s>%s</%s%s>" % (ns, tag, attributes, content, ns, tag) return "<%s%s%s>%s</%s%s>" % (ns, tag, attributes, content, ns, tag)
def __str__(self):
return self.to_xml()
class Model(ModelBase): class Model(ModelBase):
"""
Model clase que representa el modelo
"""
def __before_xml__(self): def __before_xml__(self):
""" """
Ejecuta antes de generar el xml, este Ejecuta antes de generar el xml, este

View File

@ -3,6 +3,10 @@ from collections import defaultdict
import facho.fe.form as form import facho.fe.form as form
class Amount(Field): class Amount(Field):
"""
Amount representa un campo moneda usando form.Amount
"""
def __init__(self, name=None, default=None, precision=6): def __init__(self, name=None, default=None, precision=6):
self.field_name = name self.field_name = name
self.values = {} self.values = {}

View File

@ -1,7 +1,15 @@
from .field import Field from .field import Field
class Attribute(Field): class Attribute(Field):
"""
Attribute es un atributo del elemento actual.
"""
def __init__(self, name, default=None): def __init__(self, name, default=None):
"""
:param name: nombre del atribute
:param default: valor por defecto del attributo
"""
self.attribute = name self.attribute = name
self.value = default self.value = default
self.default = default self.default = default

View File

@ -4,6 +4,8 @@ class Function(Field):
""" """
Permite modificar el modelo cuando se intenta, Permite modificar el modelo cuando se intenta,
obtener el valor de este campo. obtener el valor de este campo.
DEPRECATED usar Virtual
""" """
def __init__(self, field, getter=None, default=None): def __init__(self, field, getter=None, default=None):
self.field = field self.field = field

View File

@ -2,7 +2,19 @@ from .field import Field
from collections import defaultdict from collections import defaultdict
class Many2One(Field): 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): 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.model = model
self.setter = setter self.setter = setter
self.namespace = namespace self.namespace = namespace

View File

@ -56,7 +56,17 @@ class _Relation():
yield relation yield relation
class One2Many(Field): class One2Many(Field):
"""
One2Many describe una relacion tiene muchos.
"""
def __init__(self, model, name=None, namespace=None, default=None): 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.model = model
self.field_name = name self.field_name = name
self.namespace = namespace self.namespace = namespace

View File

@ -4,11 +4,20 @@ from .field import Field
# no participa del renderizado # no participa del renderizado
# pero puede interactura con este # pero puede interactura con este
class Virtual(Field): class Virtual(Field):
"""
Virtual es un campo que no es renderizado en el xml final
"""
def __init__(self, def __init__(self,
setter=None, setter=None,
getter='bob', getter='',
default=None, default=None,
update_internal=False): 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.default = default
self.setter = setter self.setter = setter
self.getter = getter self.getter = getter