Compare commits
	
		
			2 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 243a5ca765 | |||
| f2048d66a2 | 
							
								
								
									
										37
									
								
								CONTRIBUIR.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								CONTRIBUIR.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					# CONTRIBUIR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### requerimientos tecnicos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* python >= 3.9
 | 
				
			||||||
 | 
					* docker >= 20
 | 
				
			||||||
 | 
					* docker-compose >= 2
 | 
				
			||||||
 | 
					* pre-commit >= 2
 | 
				
			||||||
 | 
					* git >= 2.30
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### consideraciones
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* evito trabajo innecesario
 | 
				
			||||||
 | 
					* evito generalizar, primero hago pruebas y luego elimino duplicidad
 | 
				
			||||||
 | 
					* evito redundancia, si lo puedo automatizar lo automatizo
 | 
				
			||||||
 | 
					* evito usar `git add .`
 | 
				
			||||||
 | 
					* a todo momento hago expresivo lo escrito, renombro, muevo o elimino
 | 
				
			||||||
 | 
					* en todo momento debo poder ejecutar las pruebas
 | 
				
			||||||
 | 
					* en todo momento debo poder el programa
 | 
				
			||||||
 | 
					* en todo momento especulo, me ilustro y aprendo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### convencion commit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ante cada commit el mensaje se clasifica en:
 | 
				
			||||||
 | 
					*  **feat(\<COMPONENTE\>)** una nueva funcionalidad accesible al usuario o sistema
 | 
				
			||||||
 | 
					*  **fix(\<COMPONENTE\>)** correcion de una funcionalidad ya entregada
 | 
				
			||||||
 | 
					*  **chore(\<COMPONENTE\>)** otros cambios que no impactan directamente al usuario, ejemplo renombramiento de archivo,clases,metodos,variables,carpetas,scripts, documentacion, recursos digitales, etc..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`COMPONENTE` nombre del directorio
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ejemplos:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`git commit -m 'feat(<COMPONENTE>): venta de equipos opticos`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`git commit -m 'fix(<COMPONENTE>): se adiciona boton faltante`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`git commit -m 'chore(<COMPONENTE>): cambio de color en columna Producto`
 | 
				
			||||||
@@ -1,7 +0,0 @@
 | 
				
			|||||||
Analytic Operations Module
 | 
					 | 
				
			||||||
=========================
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The *Analytic Operations Module* adds the concept of analytic account general
 | 
					 | 
				
			||||||
in invoice, purchase, sale. This allows added the account analytic to the lines of
 | 
					 | 
				
			||||||
operation more fast.
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								__init__.py
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								__init__.py
									
									
									
									
									
								
							@@ -2,7 +2,7 @@
 | 
				
			|||||||
# this repository contains the full copyright notices and license terms.
 | 
					# this repository contains the full copyright notices and license terms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from trytond.pool import Pool
 | 
					from trytond.pool import Pool
 | 
				
			||||||
from . import invoice, purchase, sale
 | 
					from . import purchase, sale
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__all__ = ['register']
 | 
					__all__ = ['register']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -13,10 +13,8 @@ def register():
 | 
				
			|||||||
        purchase.PurchaseLine,
 | 
					        purchase.PurchaseLine,
 | 
				
			||||||
        sale.Sale,
 | 
					        sale.Sale,
 | 
				
			||||||
        sale.SaleLine,
 | 
					        sale.SaleLine,
 | 
				
			||||||
        invoice.Invoice,
 | 
					        module='analytic_operation', type_='model')
 | 
				
			||||||
        invoice.InvoiceLine,
 | 
					 | 
				
			||||||
        module='analytic_operations', type_='model')
 | 
					 | 
				
			||||||
    Pool.register(
 | 
					    Pool.register(
 | 
				
			||||||
        module='analytic_operations', type_='wizard')
 | 
					        module='analytic_operation', type_='wizard')
 | 
				
			||||||
    Pool.register(
 | 
					    Pool.register(
 | 
				
			||||||
        module='analytic_operations', type_='report')
 | 
					        module='analytic_operation', type_='report')
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,6 @@
 | 
				
			|||||||
######################
 | 
					#########################
 | 
				
			||||||
Analytic Operations Module
 | 
					Analytic Operation Module
 | 
				
			||||||
######################
 | 
					#########################
 | 
				
			||||||
 | 
					 | 
				
			||||||
The *Analytic Operations Module* adds the concept of analytic account general
 | 
					 | 
				
			||||||
in invoice, purchase, sale. This allows added the account analytic to the lines of
 | 
					 | 
				
			||||||
operation more fast.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. toctree::
 | 
					.. toctree::
 | 
				
			||||||
   :maxdepth: 2
 | 
					   :maxdepth: 2
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										42
									
								
								invoice.py
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								invoice.py
									
									
									
									
									
								
							@@ -1,42 +0,0 @@
 | 
				
			|||||||
# This file is part of Tryton.  The COPYRIGHT file at the top level of
 | 
					 | 
				
			||||||
# this repository contains the full copyright notices and license terms.
 | 
					 | 
				
			||||||
from trytond.pool import PoolMeta
 | 
					 | 
				
			||||||
from trytond.model import fields
 | 
					 | 
				
			||||||
from trytond.pyson import Eval
 | 
					 | 
				
			||||||
from trytond.model.exceptions import ValidationError
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Invoice(metaclass=PoolMeta):
 | 
					 | 
				
			||||||
    'Account Invoice'
 | 
					 | 
				
			||||||
    __name__ = 'account.invoice'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    _states = {
 | 
					 | 
				
			||||||
        'readonly': Eval('state') != 'draft',
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    account_analytic = fields.Many2One(
 | 
					 | 
				
			||||||
        'analytic_account.account', 'Analytic Account',
 | 
					 | 
				
			||||||
        domain=[('type', '=', 'normal')],
 | 
					 | 
				
			||||||
        states=_states)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class InvoiceLine(metaclass=PoolMeta):
 | 
					 | 
				
			||||||
    'Invoice Line'
 | 
					 | 
				
			||||||
    __name__ = 'account.invoice.line'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @fields.depends(
 | 
					 | 
				
			||||||
        'product', 'unit', '_parent_invoice.type', 'analytic_accounts',
 | 
					 | 
				
			||||||
        '_parent_invoice.party', 'party', 'invoice', 'invoice_type',
 | 
					 | 
				
			||||||
        '_parent_invoice.account_analytic', '_parent_invoice.invoice_date',
 | 
					 | 
				
			||||||
        '_parent_invoice.accounting_date', 'company',
 | 
					 | 
				
			||||||
        methods=['_get_tax_rule_pattern'])
 | 
					 | 
				
			||||||
    def on_change_product(self):
 | 
					 | 
				
			||||||
        super(InvoiceLine, self).on_change_product()
 | 
					 | 
				
			||||||
        self.analytic_accounts = tuple()
 | 
					 | 
				
			||||||
        try:
 | 
					 | 
				
			||||||
            if self.invoice and self.invoice.account_analytic:
 | 
					 | 
				
			||||||
                self.analytic_accounts += (
 | 
					 | 
				
			||||||
                    {'root': self.invoice.account_analytic.root,
 | 
					 | 
				
			||||||
                     'account': self.invoice.account_analytic},)
 | 
					 | 
				
			||||||
        except Exception as e:
 | 
					 | 
				
			||||||
            raise ValidationError(f"Se produjo un error: {e}")
 | 
					 | 
				
			||||||
							
								
								
									
										11
									
								
								invoice.xml
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								invoice.xml
									
									
									
									
									
								
							@@ -1,11 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0"?>
 | 
					 | 
				
			||||||
<!--This file file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms. -->
 | 
					 | 
				
			||||||
<tryton>
 | 
					 | 
				
			||||||
    <data>
 | 
					 | 
				
			||||||
	<record model="ir.ui.view" id="invoice_view_form">
 | 
					 | 
				
			||||||
	    <field name="model">account.invoice</field>
 | 
					 | 
				
			||||||
	    <field name="inherit" ref="account_invoice.invoice_view_form"/>
 | 
					 | 
				
			||||||
	    <field name="name">invoice_form</field>		
 | 
					 | 
				
			||||||
    	</record>
 | 
					 | 
				
			||||||
    </data>
 | 
					 | 
				
			||||||
</tryton>
 | 
					 | 
				
			||||||
							
								
								
									
										15
									
								
								locale/es.po
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								locale/es.po
									
									
									
									
									
								
							@@ -1,15 +0,0 @@
 | 
				
			|||||||
#
 | 
					 | 
				
			||||||
msgid ""
 | 
					 | 
				
			||||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
msgctxt "field:account.invoice,account_analytic:"
 | 
					 | 
				
			||||||
msgid "Analytic Account"
 | 
					 | 
				
			||||||
msgstr "Cuenta Analítica"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
msgctxt "field:purchase.purchase,account_analytic:"
 | 
					 | 
				
			||||||
msgid "Analytic Account"
 | 
					 | 
				
			||||||
msgstr "Cuenta Analítica"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
msgctxt "field:sale.sale,account_analytic:"
 | 
					 | 
				
			||||||
msgid "Analytic Account"
 | 
					 | 
				
			||||||
msgstr "Cuenta Analítica"
 | 
					 | 
				
			||||||
							
								
								
									
										34
									
								
								purchase.py
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								purchase.py
									
									
									
									
									
								
							@@ -1,35 +1,28 @@
 | 
				
			|||||||
# This file is part of Tryton.  The COPYRIGHT file at the top level of
 | 
					# This file is part of Tryton.  The COPYRIGHT file at the top level of
 | 
				
			||||||
# this repository contains the full copyright notices and license terms.
 | 
					# this repository contains the full copyright notices and license terms.
 | 
				
			||||||
from trytond.pool import PoolMeta
 | 
					from trytond.pool import Pool, PoolMeta
 | 
				
			||||||
from trytond.model import fields
 | 
					from trytond.model import ModelView, ModelSQL, fields
 | 
				
			||||||
from trytond.pyson import Eval
 | 
					from trytond.pyson import Eval
 | 
				
			||||||
from trytond.model.exceptions import ValidationError
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from trytond.exceptions import UserError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Purchase(metaclass=PoolMeta):
 | 
					class Purchase(metaclass=PoolMeta):
 | 
				
			||||||
    'Purchase Analytic Operation'
 | 
					    'Purchase Analytic Operation'
 | 
				
			||||||
    __name__ = 'purchase.purchase'
 | 
					    __name__ = 'purchase.purchase'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _states = {
 | 
					    account_analytic = fields.Many2One('analytic_account.account',
 | 
				
			||||||
        'readonly': Eval('state') != 'draft',
 | 
					                                       'Analytic Account', required=True,
 | 
				
			||||||
    }
 | 
					                                       domain=[
 | 
				
			||||||
 | 
					                                           ('type', '=', 'normal'),
 | 
				
			||||||
    account_analytic = fields.Many2One(
 | 
					                                       ])
 | 
				
			||||||
        'analytic_account.account', 'Analytic Account', required=True,
 | 
					 | 
				
			||||||
        domain=[('type', '=', 'normal')],
 | 
					 | 
				
			||||||
        states=_states)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class PurchaseLine(metaclass=PoolMeta):
 | 
					class PurchaseLine(metaclass=PoolMeta):
 | 
				
			||||||
    'Purchase Line Analytic Operation'
 | 
					    'Purchase Line Analytic Operation'
 | 
				
			||||||
    __name__ =  'purchase.line'
 | 
					    __name__ =  'purchase.line'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @fields.depends(
 | 
					    @fields.depends('product', 'unit', 'purchase',
 | 
				
			||||||
        'product', 'unit', 'purchase',
 | 
					 | 
				
			||||||
        '_parent_purchase.party', '_parent_purchase.invoice_party',
 | 
					        '_parent_purchase.party', '_parent_purchase.invoice_party',
 | 
				
			||||||
        '_parent_purchase.account_analytic', 'product_supplier',
 | 
					        '_parent_purchase.account_analytic', 'product_supplier',
 | 
				
			||||||
        'analytic_accounts',
 | 
					        'analytic_accounts', methods=['compute_taxes', 'compute_unit_price',
 | 
				
			||||||
        methods=['compute_taxes', 'compute_unit_price',
 | 
					 | 
				
			||||||
                                     '_get_product_supplier_pattern'])
 | 
					                                     '_get_product_supplier_pattern'])
 | 
				
			||||||
    def on_change_product(self):
 | 
					    def on_change_product(self):
 | 
				
			||||||
        if not self.product:
 | 
					        if not self.product:
 | 
				
			||||||
@@ -62,8 +55,7 @@ class PurchaseLine(metaclass=PoolMeta):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        self.analytic_accounts = tuple()
 | 
					        self.analytic_accounts = tuple()
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.analytic_accounts += (
 | 
					            self.analytic_accounts += ({'root': self.purchase.account_analytic.root,
 | 
				
			||||||
                {'root': self.purchase.account_analytic.root,
 | 
					 | 
				
			||||||
                                        'account': self.purchase.account_analytic},) 
 | 
					                                        'account': self.purchase.account_analytic},) 
 | 
				
			||||||
        except Exception as e:
 | 
					        except:
 | 
				
			||||||
            raise ValidationError(f"Se produjo un error: {e}")
 | 
					            pass
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										19
									
								
								sale.py
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								sale.py
									
									
									
									
									
								
							@@ -1,9 +1,10 @@
 | 
				
			|||||||
# This file is part of Tryton.  The COPYRIGHT file at the top level of
 | 
					# This file is part of Tryton.  The COPYRIGHT file at the top level of
 | 
				
			||||||
# this repository contains the full copyright notices and license terms.
 | 
					# this repository contains the full copyright notices and license terms.
 | 
				
			||||||
from trytond.pool import PoolMeta
 | 
					from trytond.pool import Pool, PoolMeta
 | 
				
			||||||
from trytond.model import fields
 | 
					from trytond.model import ModelView, ModelSQL, fields
 | 
				
			||||||
from trytond.model.exceptions import ValidationError
 | 
					from trytond.pyson import Eval
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from trytond.exceptions import UserError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Sale(metaclass=PoolMeta):
 | 
					class Sale(metaclass=PoolMeta):
 | 
				
			||||||
    'Sale Analytic Operation'
 | 
					    'Sale Analytic Operation'
 | 
				
			||||||
@@ -14,12 +15,12 @@ class Sale(metaclass=PoolMeta):
 | 
				
			|||||||
                                       domain=[
 | 
					                                       domain=[
 | 
				
			||||||
                                           ('type', '=', 'normal'),
 | 
					                                           ('type', '=', 'normal'),
 | 
				
			||||||
                                       ])
 | 
					                                       ])
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class SaleLine(metaclass=PoolMeta):
 | 
					class SaleLine(metaclass=PoolMeta):
 | 
				
			||||||
    'Sale Line Analytic Operation'
 | 
					    'Sale Line Analytic Operation'
 | 
				
			||||||
    __name__ =  'sale.line'
 | 
					    __name__ =  'sale.line'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @fields.depends('product', 'unit', 'sale',
 | 
					    @fields.depends('product', 'unit', 'sale',
 | 
				
			||||||
                    '_parent_sale.party', '_parent_sale.invoice_party',
 | 
					                    '_parent_sale.party', '_parent_sale.invoice_party',
 | 
				
			||||||
                    '_parent_sale.account_analytic', 'analytic_accounts',
 | 
					                    '_parent_sale.account_analytic', 'analytic_accounts',
 | 
				
			||||||
@@ -42,13 +43,13 @@ class SaleLine(metaclass=PoolMeta):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        self.unit_price = self.compute_unit_price()
 | 
					        self.unit_price = self.compute_unit_price()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.type = 'line'
 | 
					        self.type = 'line'
 | 
				
			||||||
        self.amount = self.on_change_with_amount()
 | 
					        self.amount = self.on_change_with_amount()
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        self.analytic_accounts = tuple()
 | 
					        self.analytic_accounts = tuple()
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.analytic_accounts += (
 | 
					            self.analytic_accounts += ({'root': self.sale.account_analytic.root,
 | 
				
			||||||
                {'root': self.sale.account_analytic.root,
 | 
					 | 
				
			||||||
                                        'account': self.sale.account_analytic},) 
 | 
					                                        'account': self.sale.account_analytic},) 
 | 
				
			||||||
        except Exception as e:
 | 
					        except:
 | 
				
			||||||
            raise ValidationError(f"Se produjo un error: {e}")
 | 
					            pass
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										17
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								setup.py
									
									
									
									
									
								
							@@ -39,7 +39,7 @@ version = info.get('version', '0.0.1')
 | 
				
			|||||||
major_version, minor_version, _ = version.split('.', 2)
 | 
					major_version, minor_version, _ = version.split('.', 2)
 | 
				
			||||||
major_version = int(major_version)
 | 
					major_version = int(major_version)
 | 
				
			||||||
minor_version = int(minor_version)
 | 
					minor_version = int(minor_version)
 | 
				
			||||||
name = 'trytond_analytic_operations'
 | 
					name = 'trytond_analytic_operation'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
download_url = 'http://downloads.tryton.org/%s.%s/' % (
 | 
					download_url = 'http://downloads.tryton.org/%s.%s/' % (
 | 
				
			||||||
    major_version, minor_version)
 | 
					    major_version, minor_version)
 | 
				
			||||||
@@ -85,20 +85,19 @@ setup(name=name,
 | 
				
			|||||||
    download_url=download_url,
 | 
					    download_url=download_url,
 | 
				
			||||||
    project_urls={
 | 
					    project_urls={
 | 
				
			||||||
        "Bug Tracker": 'https://bugs.tryton.org/',
 | 
					        "Bug Tracker": 'https://bugs.tryton.org/',
 | 
				
			||||||
        "Documentation":
 | 
					        "Documentation": 'https://docs.tryton.org/projects/modules-analytic-operation',
 | 
				
			||||||
            'https://docs.tryton.org/projects/modules-analytic-operation',
 | 
					 | 
				
			||||||
        "Forum": 'https://www.tryton.org/forum',
 | 
					        "Forum": 'https://www.tryton.org/forum',
 | 
				
			||||||
        "Source Code": 'https://hg.tryton.org/modules/analytic_operations',
 | 
					        "Source Code": 'https://hg.tryton.org/modules/analytic_operation',
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
    keywords='analitic, invoice, purchase, sale',
 | 
					    keywords='analitic, invoice, purchase, sale',
 | 
				
			||||||
    package_dir={'trytond.modules.analytic_operations': '.'},
 | 
					    package_dir={'trytond.modules.analytic_operation': '.'},
 | 
				
			||||||
    packages=(
 | 
					    packages=(
 | 
				
			||||||
        ['trytond.modules.analytic_operations']
 | 
					        ['trytond.modules.analytic_operation']
 | 
				
			||||||
        + ['trytond.modules.analytic_operations.%s' % p
 | 
					        + ['trytond.modules.analytic_operation.%s' % p
 | 
				
			||||||
            for p in find_packages()]
 | 
					            for p in find_packages()]
 | 
				
			||||||
        ),
 | 
					        ),
 | 
				
			||||||
    package_data={
 | 
					    package_data={
 | 
				
			||||||
        'trytond.modules.analytic_operations': (info.get('xml', [])
 | 
					        'trytond.modules.analytic_operation': (info.get('xml', [])
 | 
				
			||||||
            + ['tryton.cfg', 'view/*.xml', 'locale/*.po', '*.fodt',
 | 
					            + ['tryton.cfg', 'view/*.xml', 'locale/*.po', '*.fodt',
 | 
				
			||||||
                'icons/*.svg', 'tests/*.rst']),
 | 
					                'icons/*.svg', 'tests/*.rst']),
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
@@ -151,6 +150,6 @@ setup(name=name,
 | 
				
			|||||||
    zip_safe=False,
 | 
					    zip_safe=False,
 | 
				
			||||||
    entry_points="""
 | 
					    entry_points="""
 | 
				
			||||||
    [trytond.modules]
 | 
					    [trytond.modules]
 | 
				
			||||||
    analytic_operations = trytond.modules.analytic_operations
 | 
					    analytic_operation = trytond.modules.analytic_operation
 | 
				
			||||||
    """,  # noqa: E501
 | 
					    """,  # noqa: E501
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,7 +5,7 @@ from trytond.tests.test_tryton import ModuleTestCase
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
class AnalyticOperationTestCase(ModuleTestCase):
 | 
					class AnalyticOperationTestCase(ModuleTestCase):
 | 
				
			||||||
    "Test Analytic Operation module"
 | 
					    "Test Analytic Operation module"
 | 
				
			||||||
    module = 'analytic_operations'
 | 
					    module = 'analytic_operation'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
del ModuleTestCase
 | 
					del ModuleTestCase
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								tox.ini
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								tox.ini
									
									
									
									
									
								
							@@ -4,8 +4,8 @@ envlist = {py37,py38,py39,py310}-{sqlite,postgresql}
 | 
				
			|||||||
[testenv]
 | 
					[testenv]
 | 
				
			||||||
extras = test
 | 
					extras = test
 | 
				
			||||||
commands =
 | 
					commands =
 | 
				
			||||||
    coverage run --include=./**//* -m unittest discover -s tests
 | 
					    coverage run --include=./**/analytic_operation/* -m unittest discover -s tests
 | 
				
			||||||
    coverage report --include=./**/analytic_operations/* --omit=*/tests/*
 | 
					    coverage report --include=./**/analytic_operation/* --omit=*/tests/*
 | 
				
			||||||
deps =
 | 
					deps =
 | 
				
			||||||
    coverage
 | 
					    coverage
 | 
				
			||||||
    postgresql: psycopg2 >= 2.7.0
 | 
					    postgresql: psycopg2 >= 2.7.0
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
[tryton]
 | 
					[tryton]
 | 
				
			||||||
version=7.6.0
 | 
					version=6.4
 | 
				
			||||||
depends:
 | 
					depends:
 | 
				
			||||||
    ir
 | 
					    ir
 | 
				
			||||||
    purchase
 | 
					    purchase
 | 
				
			||||||
@@ -8,4 +8,3 @@ depends:
 | 
				
			|||||||
xml:
 | 
					xml:
 | 
				
			||||||
    purchase.xml
 | 
					    purchase.xml
 | 
				
			||||||
    sale.xml
 | 
					    sale.xml
 | 
				
			||||||
    invoice.xml
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0"?>
 | 
					 | 
				
			||||||
<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
 | 
					 | 
				
			||||||
this repository contains the full copyright notices and license terms. -->
 | 
					 | 
				
			||||||
<data>
 | 
					 | 
				
			||||||
 <xpath
 | 
					 | 
				
			||||||
     expr="/form/field[@name='reference']" position="after">
 | 
					 | 
				
			||||||
       <label name="account_analytic"/>
 | 
					 | 
				
			||||||
       <field name="account_analytic" xexpand="1"/>
 | 
					 | 
				
			||||||
  </xpath>
 | 
					 | 
				
			||||||
</data>
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user