From 3a89c6d3e5e67fec95c8c1e9010c510345071996 Mon Sep 17 00:00:00 2001 From: bit4bit Date: Mon, 9 Aug 2021 01:15:51 +0000 Subject: [PATCH] se adicionan comentarios FossilOrigin-Name: 13a8728e99e2a715d68bee47a54adcfef5a1f0043abfdfe6aabb3afa99ca9f7f --- facho/model/__init__.py | 11 +++++++++++ facho/model/fields/amount.py | 4 ++++ facho/model/fields/attribute.py | 8 ++++++++ facho/model/fields/function.py | 2 ++ facho/model/fields/many2one.py | 12 ++++++++++++ facho/model/fields/one2many.py | 10 ++++++++++ facho/model/fields/virtual.py | 11 ++++++++++- 7 files changed, 57 insertions(+), 1 deletion(-) diff --git a/facho/model/__init__.py b/facho/model/__init__.py index 0839644..dc3bfaf 100644 --- a/facho/model/__init__.py +++ b/facho/model/__init__.py @@ -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" % (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 diff --git a/facho/model/fields/amount.py b/facho/model/fields/amount.py index b756e0a..6402d88 100644 --- a/facho/model/fields/amount.py +++ b/facho/model/fields/amount.py @@ -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 = {} diff --git a/facho/model/fields/attribute.py b/facho/model/fields/attribute.py index 6adfc36..383fb2f 100644 --- a/facho/model/fields/attribute.py +++ b/facho/model/fields/attribute.py @@ -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 diff --git a/facho/model/fields/function.py b/facho/model/fields/function.py index 2713d35..707fd55 100644 --- a/facho/model/fields/function.py +++ b/facho/model/fields/function.py @@ -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 diff --git a/facho/model/fields/many2one.py b/facho/model/fields/many2one.py index 7201d87..cd17011 100644 --- a/facho/model/fields/many2one.py +++ b/facho/model/fields/many2one.py @@ -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 diff --git a/facho/model/fields/one2many.py b/facho/model/fields/one2many.py index da7960c..8f7f339 100644 --- a/facho/model/fields/one2many.py +++ b/facho/model/fields/one2many.py @@ -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 diff --git a/facho/model/fields/virtual.py b/facho/model/fields/virtual.py index 4fe4e02..e39b9dd 100644 --- a/facho/model/fields/virtual.py +++ b/facho/model/fields/virtual.py @@ -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