Compare commits
15 Commits
10-account
...
8-sheet-wi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0ba12b8812 | ||
|
|
c867b1d76f | ||
|
|
b41f188eb4 | ||
|
|
891c64bb1f | ||
|
|
b9e07ea986 | ||
|
|
12fbd5dc2c | ||
|
|
7948193fe0 | ||
|
|
64cb3d44ad | ||
|
|
08f434b6a0 | ||
|
|
6176b37fa6 | ||
|
|
4015f5b1c9 | ||
|
|
ef920f58f4 | ||
|
|
c108f617c2 | ||
|
|
4acce9509f | ||
|
|
e9ab3187e7 |
3
account_fiscal_position_payable_receivable/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import account_fiscal_position
|
||||
26
account_fiscal_position_payable_receivable/__openerp__.py
Normal file
@@ -0,0 +1,26 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# © 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
{
|
||||
'name': 'Account Fiscal Position Payable Receivable',
|
||||
'version': '8.0.1.0.0',
|
||||
'category': 'Accounting & Finance',
|
||||
'license': 'AGPL-3',
|
||||
'summary': 'Configure payable/receivable accounts on fiscal positions',
|
||||
'description': """
|
||||
Account Fiscal Position Payable Receivable
|
||||
==========================================
|
||||
|
||||
This module allows to configure a special *Partner Receivable Account* and a special *Partner Payable Account* on fiscal positions. This is used in the onchange of the fiscal position of partners.
|
||||
|
||||
This module has been written by Alexis de Lattre from Akretion <alexis.delattre@akretion.com>.
|
||||
""",
|
||||
'author': "Akretion",
|
||||
'website': 'http://www.akretion.com',
|
||||
'depends': ['account'],
|
||||
'data': [
|
||||
'account_fiscal_position_view.xml',
|
||||
],
|
||||
'installable': True,
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# © 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from openerp import models, fields, api
|
||||
|
||||
|
||||
class AccountFiscalPosition(models.Model):
|
||||
_inherit = 'account.fiscal.position'
|
||||
|
||||
receivable_account_id = fields.Many2one(
|
||||
'account.account', string='Partner Receivable Account',
|
||||
company_dependent=True, domain=[('type', '=', 'receivable')])
|
||||
payable_account_id = fields.Many2one(
|
||||
'account.account', string='Partner Payable Account',
|
||||
company_dependent=True, domain=[('type', '=', 'payable')])
|
||||
|
||||
|
||||
class ResPartner(models.Model):
|
||||
_inherit = 'res.partner'
|
||||
|
||||
@api.onchange('property_account_position')
|
||||
def fiscal_position_receivable_payable_change(self):
|
||||
fp = self.property_account_position
|
||||
ipo = self.env['ir.property']
|
||||
if fp.receivable_account_id:
|
||||
self.property_account_receivable = fp.receivable_account_id
|
||||
else:
|
||||
self.property_account_receivable = ipo.get(
|
||||
'property_account_receivable', 'res.partner')
|
||||
if fp.payable_account_id:
|
||||
self.property_account_payable = fp.payable_account_id
|
||||
else:
|
||||
self.property_account_payable = ipo.get(
|
||||
'property_account_payable', 'res.partner')
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
© 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
-->
|
||||
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
|
||||
<record id="view_account_position_form" model="ir.ui.view">
|
||||
<field name="name">receivable_payable.fiscal_position_form</field>
|
||||
<field name="model">account.fiscal.position</field>
|
||||
<field name="inherit_id" ref="account.view_account_position_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='country_group_id']/.." position="after">
|
||||
<group string="Payable and Receivable Accounts"
|
||||
name="payable_receivable_account" col="4">
|
||||
<field name="receivable_account_id"/>
|
||||
<field name="payable_account_id"/>
|
||||
</group>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
BIN
account_usability/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
base_usability/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
3
crm_usability/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import wizard
|
||||
29
crm_usability/__openerp__.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# © 2016 Akretion (http://www.akretion.com)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
|
||||
{
|
||||
'name': 'CRM Usability',
|
||||
'version': '8.0.1.0.0',
|
||||
'category': 'Customer Relationship Management',
|
||||
'license': 'AGPL-3',
|
||||
'summary': 'CRM usability enhancements',
|
||||
'description': """
|
||||
CRM Usability
|
||||
=============
|
||||
|
||||
Some enhancements in the *Merge Partners* wizard:
|
||||
|
||||
* take into account the unaccent option of the server config file
|
||||
* add optional group by on 'customer' and 'supplier' (active by default)
|
||||
|
||||
This module has been written by Alexis de Lattre from Akretion
|
||||
<alexis.delattre@akretion.com>.
|
||||
""",
|
||||
'author': 'Akretion',
|
||||
'website': 'http://www.akretion.com',
|
||||
'depends': ['crm'],
|
||||
'data': ['wizard/base_partner_merge_view.xml'],
|
||||
'installable': True,
|
||||
}
|
||||
BIN
crm_usability/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
3
crm_usability/wizard/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import base_partner_merge
|
||||
29
crm_usability/wizard/base_partner_merge.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# © 2016 Akretion (http://www.akretion.com)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
|
||||
from openerp import models, fields, tools
|
||||
|
||||
|
||||
class MergePartnerAutomatic(models.TransientModel):
|
||||
_inherit = 'base.partner.merge.automatic.wizard'
|
||||
|
||||
group_by_customer = fields.Boolean('Customer', default=True)
|
||||
group_by_supplier = fields.Boolean('Supplier', default=True)
|
||||
|
||||
def _generate_query(self, fields, maximum_group=100):
|
||||
sql = super(MergePartnerAutomatic, self)._generate_query(
|
||||
fields, maximum_group=maximum_group)
|
||||
name_sql_original = 'lower(name)'
|
||||
if name_sql_original in sql:
|
||||
if tools.config.get('unaccent', False):
|
||||
sql = sql.replace(
|
||||
name_sql_original,
|
||||
"unaccent(lower(replace(name, ' ', '')))")
|
||||
else:
|
||||
sql = sql.replace(
|
||||
name_sql_original,
|
||||
"lower(replace(name, ' ', ''))")
|
||||
|
||||
return sql
|
||||
23
crm_usability/wizard/base_partner_merge_view.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="base_partner_merge_automatic_wizard_form" model="ir.ui.view">
|
||||
<field name="name">rvip.base.partner.merge.automatic.wizard.form</field>
|
||||
<field name="model">base.partner.merge.automatic.wizard</field>
|
||||
<field name="inherit_id" ref="crm.base_partner_merge_automatic_wizard_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="group_by_is_company" position="after">
|
||||
<field name="group_by_customer"/>
|
||||
<field name="group_by_supplier"/>
|
||||
</field>
|
||||
<xpath expr="//field[@name='partner_ids']/tree/field[@name='is_company']" position="after">
|
||||
<field name="customer"/>
|
||||
<field name="supplier"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
BIN
hr_expense_usability/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<data noupdate="0">
|
||||
|
||||
<record id="ir_actions_server_hr_holidays_confirm_mail" model="ir.actions.server">
|
||||
<field name="name">Auto-email confirmed leave</field>
|
||||
@@ -59,6 +59,9 @@ if not object.no_email_notification:
|
||||
<field name="action_id" ref="ir_actions_server_hr_holidays_refuse_mail"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="email_template_hr_holidays" model="email.template">
|
||||
<field name="name">Holidays email template</field>
|
||||
<field name="model_id" ref="hr_holidays.model_hr_holidays"/>
|
||||
|
||||
BIN
mail_usability/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
mrp_usability/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
pos_usability/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
procurement_suggest/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
@@ -41,6 +41,7 @@ class ProcurementSuggestionGenerate(models.TransientModel):
|
||||
location_id = fields.Many2one(
|
||||
'stock.location', string='Stock Location', required=True,
|
||||
default=lambda self: self.env.ref('stock.stock_location_stock'))
|
||||
# TODO This code must be fixed in case of multicompany project
|
||||
|
||||
@api.model
|
||||
def _compute_procurement_qty(self, orderpoint):
|
||||
|
||||
BIN
project_issue_extension/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
@@ -1,12 +0,0 @@
|
||||
diff --git a/addons/stock/procurement.py b/addons/stock/procurement.py
|
||||
index 7b067ed..98857e6 100644
|
||||
--- a/addons/stock/procurement.py
|
||||
+++ b/addons/stock/procurement.py
|
||||
@@ -342,6 +342,7 @@ class procurement_order(osv.osv):
|
||||
|
||||
procurement_obj = self.pool.get('procurement.order')
|
||||
dom = company_id and [('company_id', '=', company_id)] or []
|
||||
+ dom.append(('suggest', '=', False))
|
||||
orderpoint_ids = orderpoint_obj.search(cr, uid, dom)
|
||||
prev_ids = []
|
||||
while orderpoint_ids:
|
||||
@@ -20,10 +20,20 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from openerp import models, fields
|
||||
from openerp import models, fields, api
|
||||
|
||||
|
||||
class StockWarehouseOrderpoint(models.Model):
|
||||
_inherit = 'stock.warehouse.orderpoint'
|
||||
|
||||
suggest = fields.Boolean(string='Suggest', default=True)
|
||||
|
||||
|
||||
class ProcurementOrder(models.Model):
|
||||
_inherit = 'procurement.order'
|
||||
|
||||
@api.model
|
||||
def _product_virtual_get(self, order_point):
|
||||
if order_point.suggest:
|
||||
return None
|
||||
return super(ProcurementOrder, self)._product_virtual_get(order_point)
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
from . import purchase
|
||||
from . import supplierinfo
|
||||
|
||||
@@ -1,24 +1,7 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Purchase Usability Extension module for OpenERP
|
||||
# Copyright (C) 2014 Akretion (http://www.akretion.com)
|
||||
# coding: utf-8
|
||||
# Copyright (C) 2015 Akretion (http://www.akretion.com)
|
||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
|
||||
{
|
||||
@@ -31,15 +14,19 @@
|
||||
Purchase Usability Extension
|
||||
============================
|
||||
|
||||
Display Invoices and Incoming Shipments on Purchase Order form view (in dedicated tabs).
|
||||
- Display Invoices and Incoming Shipments on Purchase Order form view
|
||||
(in dedicated tabs).
|
||||
- Add a dedicated menu and tree view to Product Supplier Info model.
|
||||
|
||||
Please contact Alexis de Lattre from Akretion <alexis.delattre@akretion.com> for any help or question about this module.
|
||||
Please contact Alexis de Lattre from Akretion <alexis.delattre@akretion.com>
|
||||
for any help or question about this module.
|
||||
""",
|
||||
'author': 'Akretion',
|
||||
'website': 'http://www.akretion.com',
|
||||
'depends': ['purchase'],
|
||||
'data': [
|
||||
'purchase_view.xml',
|
||||
],
|
||||
'supplierinfo_view.xml',
|
||||
],
|
||||
'active': False,
|
||||
}
|
||||
|
||||
123
purchase_usability_extension/i18n/fr.po
Normal file
@@ -0,0 +1,123 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * purchase_usability_extension
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 8.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-11-16 16:58+0000\n"
|
||||
"PO-Revision-Date: 2016-11-16 18:01+0100\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: \n"
|
||||
"Language: fr\n"
|
||||
"X-Generator: Poedit 1.8.7.1\n"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_filter
|
||||
msgid "Delay"
|
||||
msgstr "Delay"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:purchase.order:purchase_usability_extension.purchase_order_form
|
||||
msgid "Deliveries"
|
||||
msgstr "Livraisons"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:purchase.order:purchase_usability_extension.purchase_order_form
|
||||
msgid "Deliveries & Invoices"
|
||||
msgstr "Livraisons & Factures"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_filter
|
||||
msgid "Delivery"
|
||||
msgstr "Livraison"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:purchase.order:purchase_usability_extension.view_purchase_order_filter
|
||||
msgid "Fully Received"
|
||||
msgstr "Complètement reçue"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_filter
|
||||
msgid "Group by..."
|
||||
msgstr "Grouper par..."
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:purchase.order:purchase_usability_extension.purchase_order_form
|
||||
msgid "Invoices"
|
||||
msgstr "Factures"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:purchase.order:purchase_usability_extension.view_purchase_order_filter
|
||||
msgid "Not Fully Received"
|
||||
msgstr "Pas Complètement Reçue"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:purchase.order:purchase_usability_extension.purchase_order_form
|
||||
msgid "Other Information"
|
||||
msgstr "Autre information"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: model:ir.model,name:purchase_usability_extension.model_res_partner
|
||||
msgid "Partner"
|
||||
msgstr "Partenaire"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_filter
|
||||
msgid "Product"
|
||||
msgstr "Article :"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_filter
|
||||
msgid "Product (code or name)"
|
||||
msgstr "Article (code ou nom)"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: model:ir.ui.menu,name:purchase_usability_extension.product_supplierinfo_menu
|
||||
msgid "Product Supplier"
|
||||
msgstr "Article Fournisseur"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: model:ir.actions.act_window,name:purchase_usability_extension.product_supplierinfo_action
|
||||
msgid "Product Supplier Info"
|
||||
msgstr "Product Supplier Info"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: model:ir.model,name:purchase_usability_extension.model_purchase_order
|
||||
msgid "Purchase Order"
|
||||
msgstr "Commande d'Achat"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: model:ir.model,name:purchase_usability_extension.model_purchase_order_line
|
||||
msgid "Purchase Order Line"
|
||||
msgstr "Ligne de commande d'achat"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_filter
|
||||
msgid "Quantity"
|
||||
msgstr "Quantité"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: field:purchase.order.line,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr "Séquence"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_filter
|
||||
msgid "Supplier"
|
||||
msgstr "Fournisseur"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_tree
|
||||
msgid "Supplier Code"
|
||||
msgstr "Code Fournisseur"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:purchase.order:purchase_usability_extension.purchase_order_form
|
||||
msgid "selection"
|
||||
msgstr "sélection"
|
||||
@@ -0,0 +1,122 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * purchase_usability_extension
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 8.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-11-16 16:58+0000\n"
|
||||
"PO-Revision-Date: 2016-11-16 16:58+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_filter
|
||||
msgid "Delay"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:purchase.order:purchase_usability_extension.purchase_order_form
|
||||
msgid "Deliveries"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:purchase.order:purchase_usability_extension.purchase_order_form
|
||||
msgid "Deliveries & Invoices"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_filter
|
||||
msgid "Delivery"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:purchase.order:purchase_usability_extension.view_purchase_order_filter
|
||||
msgid "Fully Received"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_filter
|
||||
msgid "Group by..."
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:purchase.order:purchase_usability_extension.purchase_order_form
|
||||
msgid "Invoices"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:purchase.order:purchase_usability_extension.view_purchase_order_filter
|
||||
msgid "Not Fully Received"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:purchase.order:purchase_usability_extension.purchase_order_form
|
||||
msgid "Other Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: model:ir.model,name:purchase_usability_extension.model_res_partner
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_filter
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_filter
|
||||
msgid "Product (code or name)"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: model:ir.ui.menu,name:purchase_usability_extension.product_supplierinfo_menu
|
||||
msgid "Product Supplier"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: model:ir.actions.act_window,name:purchase_usability_extension.product_supplierinfo_action
|
||||
msgid "Product Supplier Info"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: model:ir.model,name:purchase_usability_extension.model_purchase_order
|
||||
msgid "Purchase Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: model:ir.model,name:purchase_usability_extension.model_purchase_order_line
|
||||
msgid "Purchase Order Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_filter
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: field:purchase.order.line,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_filter
|
||||
msgid "Supplier"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:product.supplierinfo:purchase_usability_extension.product_supplierinfo_view_tree
|
||||
msgid "Supplier Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_usability_extension
|
||||
#: view:purchase.order:purchase_usability_extension.purchase_order_form
|
||||
msgid "selection"
|
||||
msgstr ""
|
||||
|
||||
@@ -1,24 +1,7 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Purchase Usability Extension module for Odoo
|
||||
# coding: utf-8
|
||||
# Copyright (C) 2015 Akretion (http://www.akretion.com)
|
||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from openerp import models, fields, api
|
||||
|
||||
|
||||
@@ -68,5 +68,6 @@
|
||||
<field name="context">{'search_default_draft': True}</field>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
BIN
purchase_usability_extension/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
12
purchase_usability_extension/supplierinfo.py
Normal file
@@ -0,0 +1,12 @@
|
||||
# coding: utf-8
|
||||
# © 2015 David BEAL @ Akretion
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from openerp import models, fields
|
||||
|
||||
|
||||
class ProductSupplierinfo(models.Model):
|
||||
_inherit = 'product.supplierinfo'
|
||||
|
||||
supplier_is_company = fields.Boolean(
|
||||
comodel_name='res.partner', related='name.is_company')
|
||||
54
purchase_usability_extension/supplierinfo_view.xml
Normal file
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="product_supplierinfo_view_tree" model="ir.ui.view">
|
||||
<field name="model">product.supplierinfo</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="product_name"/>
|
||||
<field name="product_code" string="Supplier Code"/>
|
||||
<field name="min_qty"/>
|
||||
<field name="delay"/>
|
||||
<field name="product_uom"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="product_supplierinfo_view_filter" model="ir.ui.view">
|
||||
<field name="model">product.supplierinfo</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Product">
|
||||
<field name="name" string="Product (code or name)"
|
||||
filter_domain="['|',('product_code','ilike',self),('product_name','ilike',self)]"/>
|
||||
<field name="name" string="Supplier" filter_domain="[('name','ilike',self)]"/>
|
||||
<filter name="supplier_not_company" string="Supplier is not a company" domain="[('supplier_is_company','=',False)]"/>
|
||||
<group expand='0' string='Group by...'>
|
||||
<filter string='Supplier' domain="[]" context="{'group_by' : 'name'}"/>
|
||||
<filter string='Quantity' domain="[]" context="{'group_by' : 'min_qty'}"/>
|
||||
<filter string='Delay' domain="[]" context="{'group_by' : 'delay'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="product_supplierinfo_action" model="ir.actions.act_window">
|
||||
<field name="name">Product Supplier Info</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">product.supplierinfo</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="product_supplierinfo_menu"
|
||||
name="Product Supplier"
|
||||
parent="purchase.menu_procurement_management_product"
|
||||
action="product_supplierinfo_action"
|
||||
sequence="50"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
BIN
sale_crm_usability/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
sale_stock_usability/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
258
stock_usability/i18n/fr.po
Normal file
@@ -0,0 +1,258 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * stock_usability
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 8.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-11-11 20:54+0000\n"
|
||||
"PO-Revision-Date: 2016-11-11 21:56+0100\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: \n"
|
||||
"Language: fr\n"
|
||||
"X-Generator: Poedit 1.8.7.1\n"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.picking:stock_usability.view_picking_internal_search
|
||||
msgid "\"{'group_by': 'min_date:day'}\""
|
||||
msgstr "\"{'group_by': 'min_date:day'}\""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.move:stock_usability.view_move_form
|
||||
#: view:stock.move:stock_usability.view_move_picking_form
|
||||
msgid "Advanced Parameters"
|
||||
msgstr "Paramètres Avancées"
|
||||
|
||||
#. module: stock_usability
|
||||
#: sql_constraint:stock.warehouse.orderpoint:0
|
||||
msgid "An orderpoint already exists for the same company, same warehouse, same stock location and same product."
|
||||
msgstr "An orderpoint already exists for the same company, same warehouse, same stock location and same product."
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Société"
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr "Créé par"
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr "Créé le"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.picking:stock_usability.view_picking_internal_search
|
||||
msgid "Date Done"
|
||||
msgstr "Date Terminé"
|
||||
|
||||
#. module: stock_usability
|
||||
#: help:stock.quant,uom_id:0
|
||||
msgid "Default Unit of Measure used for all stock operation."
|
||||
msgstr "Default Unit of Measure used for all stock operation."
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,display_name:0
|
||||
msgid "Display Name"
|
||||
msgstr "Nom Affiché"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.picking:stock_usability.view_picking_internal_search
|
||||
msgid "Expected Date"
|
||||
msgstr "Date prévue"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.location:stock_usability.view_location_search
|
||||
msgid "Group By"
|
||||
msgstr "Groupé par"
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,id:0
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_incoterms
|
||||
msgid "Incoterms"
|
||||
msgstr "Incoterms"
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_inventory
|
||||
msgid "Inventory"
|
||||
msgstr "Inventaire"
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_location
|
||||
msgid "Inventory Locations"
|
||||
msgstr "Emplacements de stock"
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_location_route
|
||||
msgid "Inventory Routes"
|
||||
msgstr "Routes logistiques"
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,__last_update:0
|
||||
msgid "Last Modified on"
|
||||
msgstr "Modifié le"
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr "Mis à jour par"
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr "Modifié le"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.location:stock_usability.view_location_search
|
||||
msgid "Location Type"
|
||||
msgstr "Type d'Emplacement"
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_procurement_scheduler_log
|
||||
msgid "Logs of the Procurement Scheduler"
|
||||
msgstr "Logs of the Procurement Scheduler"
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_warehouse_orderpoint
|
||||
msgid "Minimum Inventory Rule"
|
||||
msgstr "Règle de stock minimum"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.move:stock_usability.view_move_form
|
||||
#: view:stock.move:stock_usability.view_move_picking_form
|
||||
msgid "Notes"
|
||||
msgstr "Notes"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.picking:stock_usability.view_picking_internal_search
|
||||
msgid "Origin"
|
||||
msgstr "Origine"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.picking:stock_usability.view_picking_internal_search
|
||||
msgid "Partner"
|
||||
msgstr "Partenaire"
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr "Liste de livraison"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.warehouse:stock_usability.view_warehouse
|
||||
msgid "Picking Types"
|
||||
msgstr "Types de préparation"
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_procurement_order
|
||||
msgid "Procurement"
|
||||
msgstr "Approvisionnement"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:procurement.scheduler.log:stock_usability.procurement_scheduler_log_tree
|
||||
msgid "Procurement Scheduler Logs"
|
||||
msgstr "Procurement Scheduler Logs"
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.actions.act_window,name:stock_usability.stock_location_path_action
|
||||
#: model:ir.ui.menu,name:stock_usability.stock_location_path_menu
|
||||
msgid "Push Rules"
|
||||
msgstr "Push Rules"
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_quant
|
||||
msgid "Quants"
|
||||
msgstr "Quants"
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:stock.location,quant_ids:0
|
||||
msgid "Related Quants"
|
||||
msgstr "Related Quants"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.warehouse:stock_usability.view_warehouse
|
||||
msgid "Routes"
|
||||
msgstr "Routes"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:procurement.scheduler.log:stock_usability.procurement_scheduler_log_tree
|
||||
msgid "Scheduler End Time"
|
||||
msgstr "Scheduler End Time"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:procurement.scheduler.log:stock_usability.procurement_scheduler_log_tree
|
||||
msgid "Scheduler Executed by"
|
||||
msgstr "Scheduler Executed by"
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.actions.act_window,name:stock_usability.procurement_scheduler_log_action
|
||||
#: model:ir.ui.menu,name:stock_usability.procurement_scheduler_log_menu
|
||||
msgid "Scheduler Logs"
|
||||
msgstr "Scheduler Logs"
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,start_datetime:0
|
||||
msgid "Start Date"
|
||||
msgstr "Date de Début"
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_move
|
||||
msgid "Stock Move"
|
||||
msgstr "Mouvement de stock"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:procurement.order:stock_usability.view_procurement_form_stock_inherit
|
||||
msgid "Stock Moves"
|
||||
msgstr "Mouvements de stock"
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:stock.move,product_supplier_code:0
|
||||
msgid "Supplier Code"
|
||||
msgstr "Code Fournisseur"
|
||||
|
||||
#. module: stock_usability
|
||||
#: help:stock.move,product_supplier_code:0
|
||||
msgid "Supplier product code if Partner is the supplier"
|
||||
msgstr "Code produit du fournisseur si le partenaire est le fournisseur"
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_picking_type
|
||||
msgid "The picking type determines the picking view"
|
||||
msgstr "Le type de préparation détermine la vue de préparation"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.transfer_details:stock_usability.view_stock_enter_transfer_details
|
||||
msgid "Total"
|
||||
msgstr "Total"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.quant:stock_usability.view_stock_quant_tree
|
||||
msgid "Total Qty"
|
||||
msgstr "Qté Total"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.picking:stock_usability.stock_picking_graph
|
||||
msgid "Transfers"
|
||||
msgstr "Transferts"
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:stock.quant,uom_id:0
|
||||
msgid "Unit of Measure"
|
||||
msgstr "Unité de Mesure"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.move:stock_usability.view_move_form
|
||||
#: view:stock.move:stock_usability.view_move_picking_tree
|
||||
msgid "Unreserve"
|
||||
msgstr "Déréserver"
|
||||
257
stock_usability/i18n/stock_usability.pot
Normal file
@@ -0,0 +1,257 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * stock_usability
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 8.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-11-11 20:54+0000\n"
|
||||
"PO-Revision-Date: 2016-11-11 20:54+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.picking:stock_usability.view_picking_internal_search
|
||||
msgid "\"{'group_by': 'min_date:day'}\""
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.move:stock_usability.view_move_form
|
||||
#: view:stock.move:stock_usability.view_move_picking_form
|
||||
msgid "Advanced Parameters"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: sql_constraint:stock.warehouse.orderpoint:0
|
||||
msgid "An orderpoint already exists for the same company, same warehouse, same stock location and same product."
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.picking:stock_usability.view_picking_internal_search
|
||||
msgid "Date Done"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: help:stock.quant,uom_id:0
|
||||
msgid "Default Unit of Measure used for all stock operation."
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,display_name:0
|
||||
msgid "Display Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.picking:stock_usability.view_picking_internal_search
|
||||
msgid "Expected Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.location:stock_usability.view_location_search
|
||||
msgid "Group By"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_incoterms
|
||||
msgid "Incoterms"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_inventory
|
||||
msgid "Inventory"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_location
|
||||
msgid "Inventory Locations"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_location_route
|
||||
msgid "Inventory Routes"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,__last_update:0
|
||||
msgid "Last Modified on"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.location:stock_usability.view_location_search
|
||||
msgid "Location Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_procurement_scheduler_log
|
||||
msgid "Logs of the Procurement Scheduler"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_warehouse_orderpoint
|
||||
msgid "Minimum Inventory Rule"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.move:stock_usability.view_move_form
|
||||
#: view:stock.move:stock_usability.view_move_picking_form
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.picking:stock_usability.view_picking_internal_search
|
||||
msgid "Origin"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.picking:stock_usability.view_picking_internal_search
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.warehouse:stock_usability.view_warehouse
|
||||
msgid "Picking Types"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_procurement_order
|
||||
msgid "Procurement"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:procurement.scheduler.log:stock_usability.procurement_scheduler_log_tree
|
||||
msgid "Procurement Scheduler Logs"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.actions.act_window,name:stock_usability.stock_location_path_action
|
||||
#: model:ir.ui.menu,name:stock_usability.stock_location_path_menu
|
||||
msgid "Push Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_quant
|
||||
msgid "Quants"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:stock.location,quant_ids:0
|
||||
msgid "Related Quants"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.warehouse:stock_usability.view_warehouse
|
||||
msgid "Routes"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:procurement.scheduler.log:stock_usability.procurement_scheduler_log_tree
|
||||
msgid "Scheduler End Time"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:procurement.scheduler.log:stock_usability.procurement_scheduler_log_tree
|
||||
msgid "Scheduler Executed by"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.actions.act_window,name:stock_usability.procurement_scheduler_log_action
|
||||
#: model:ir.ui.menu,name:stock_usability.procurement_scheduler_log_menu
|
||||
msgid "Scheduler Logs"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:procurement.scheduler.log,start_datetime:0
|
||||
msgid "Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_move
|
||||
msgid "Stock Move"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:procurement.order:stock_usability.view_procurement_form_stock_inherit
|
||||
msgid "Stock Moves"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:stock.move,product_supplier_code:0
|
||||
msgid "Supplier Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: help:stock.move,product_supplier_code:0
|
||||
msgid "Supplier product code if Partner is the supplier"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: model:ir.model,name:stock_usability.model_stock_picking_type
|
||||
msgid "The picking type determines the picking view"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.transfer_details:stock_usability.view_stock_enter_transfer_details
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.quant:stock_usability.view_stock_quant_tree
|
||||
msgid "Total Qty"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.picking:stock_usability.stock_picking_graph
|
||||
msgid "Transfers"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: field:stock.quant,uom_id:0
|
||||
msgid "Unit of Measure"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_usability
|
||||
#: view:stock.move:stock_usability.view_move_form
|
||||
#: view:stock.move:stock_usability.view_move_picking_tree
|
||||
msgid "Unreserve"
|
||||
msgstr ""
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_procurement_scheduler_log_full,Full access on procurement.scheduler.log to System group,model_procurement_scheduler_log,base.group_system,1,1,1,1
|
||||
access_procurement_scheduler_log_user,Read/Create procurement.scheduler.log to Stock user,model_procurement_scheduler_log,stock.group_stock_user,1,0,1,0
|
||||
access_procurement_scheduler_log_read,Read access on procurement.scheduler.log to Employee,model_procurement_scheduler_log,base.group_user,1,0,0,0
|
||||
|
||||
|
BIN
stock_usability/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
@@ -77,6 +77,11 @@ class StockWarehouseOrderpoint(models.Model):
|
||||
class StockMove(models.Model):
|
||||
_inherit = 'stock.move'
|
||||
|
||||
product_supplier_code = fields.Char(
|
||||
string='Supplier Code', compute='_compute_supplier_code',
|
||||
store=True, readonly=True,
|
||||
help="Supplier product code if Partner is the supplier")
|
||||
|
||||
# It seems that it is not necessary any more to
|
||||
# have the digits= on these 2 fields to fix the bug
|
||||
# https://github.com/odoo/odoo/pull/10038
|
||||
@@ -85,6 +90,17 @@ class StockMove(models.Model):
|
||||
# availability = fields.Float(
|
||||
# digits=dp.get_precision('Product Unit of Measure'))
|
||||
|
||||
@api.multi
|
||||
@api.depends('product_id', 'picking_id.partner_id')
|
||||
def _compute_supplier_code(self):
|
||||
for rec in self:
|
||||
supplier_code = False
|
||||
if rec.picking_id.partner_id and rec.product_id:
|
||||
for supplier_info in rec.product_id.seller_ids:
|
||||
if supplier_info.name == rec.picking_id.partner_id:
|
||||
supplier_code = supplier_info.product_code
|
||||
rec.product_supplier_code = supplier_code
|
||||
|
||||
def name_get(self, cr, uid, ids, context=None):
|
||||
'''name_get of stock_move is important for the reservation of the
|
||||
quants: so want to add the name of the customer and the expected date
|
||||
|
||||
@@ -161,6 +161,9 @@
|
||||
icon="STOCK_UNDO" groups="stock.group_stock_user"
|
||||
states="confirmed,assigned"/>
|
||||
</field>
|
||||
<field name="product_id" position="after">
|
||||
<field name="product_supplier_code"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
74
web_sheet_width_custom/README.rst
Normal file
@@ -0,0 +1,74 @@
|
||||
|
||||
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
|
||||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||
:alt: License: AGPL-3
|
||||
|
||||
======================
|
||||
Web Sheet Width Custom
|
||||
======================
|
||||
|
||||
Allow to modify form width with a field selection in the form view.
|
||||
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To configure this module, you need to:
|
||||
|
||||
#. Apply 'Technical Features' rights to your user
|
||||
|
||||
#. Go to the form view of your choice with the menu
|
||||
(Settings > Technical > User Interface > Views)
|
||||
|
||||
#. Apply a value in the 'Form Width' field.
|
||||
|
||||
.. figure:: web_sheet_width_custom/static/description/img1.png
|
||||
:alt: Set full width
|
||||
:width: 600 px
|
||||
|
||||
|
||||
|
||||
Install the 'web_sheet_full_width' module if you want to have a full screen
|
||||
behaviour in all sheets.
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
To use this module, you need to configure the form view of your choice
|
||||
as explained above.
|
||||
|
||||
|
||||
|
||||
Known issues / Roadmap
|
||||
======================
|
||||
|
||||
* add other css styles to have more choice on width.
|
||||
|
||||
Bug Tracker
|
||||
===========
|
||||
|
||||
Bugs are tracked on `GitHub Issues
|
||||
<https://github.com/akretion/odoo-usability/issues>`_. In case of trouble, please
|
||||
check there if your issue has already been reported. If you spotted it first,
|
||||
help us smashing it by providing a detailed and welcomed feedback.
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Images
|
||||
------
|
||||
|
||||
Icon courtesy of http://www.picol.org/ (size_width.svg)
|
||||
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
||||
* David Béal <david.beal@akretion.com>
|
||||
|
||||
|
||||
Idea
|
||||
----
|
||||
|
||||
Idea comes from module web_sheet_full_width (Luc De Meyer)
|
||||
1
web_sheet_width_custom/__init__.py
Executable file
@@ -0,0 +1 @@
|
||||
from . import models
|
||||
20
web_sheet_width_custom/__openerp__.py
Executable file
@@ -0,0 +1,20 @@
|
||||
# coding: utf-8
|
||||
# © 2016 David BEAL @ Akretion
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
{
|
||||
'name': 'Web Sheet width Custom',
|
||||
'summary': 'Choose a dedicated width for your form view',
|
||||
'version': '8.0.1.0.0',
|
||||
'license': 'AGPL-3',
|
||||
'author': 'Akretion',
|
||||
'category': 'web',
|
||||
'depends': [
|
||||
'web',
|
||||
],
|
||||
'data': [
|
||||
'views/sheet.xml',
|
||||
'views/ui_view.xml',
|
||||
],
|
||||
'installable': True,
|
||||
}
|
||||
1
web_sheet_width_custom/models/__init__.py
Executable file
@@ -0,0 +1 @@
|
||||
from . import model
|
||||
73
web_sheet_width_custom/models/model.py
Normal file
@@ -0,0 +1,73 @@
|
||||
# coding: utf-8
|
||||
# © 2016 David BEAL @ Akretion
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from lxml import etree
|
||||
|
||||
from openerp import models, api, fields
|
||||
from openerp.osv import orm
|
||||
from openerp import SUPERUSER_ID
|
||||
|
||||
|
||||
class IrUiView(models.Model):
|
||||
_inherit = 'ir.ui.view'
|
||||
|
||||
def _get_form_width(self):
|
||||
return [('oe_form_sheet_full_screen', 'Full Screen'), ]
|
||||
|
||||
form_width = fields.Selection(
|
||||
string='Form Width', selection='_get_form_width',
|
||||
help="Allow to set the form view to the max width "
|
||||
"to have a better usability on data entry")
|
||||
|
||||
|
||||
class ModelExtended(models.Model):
|
||||
_inherit = 'ir.model'
|
||||
|
||||
def _css_class_to_apply(self, node, css_class):
|
||||
""" Complete class if exist """
|
||||
existing_class = [
|
||||
x[1] for x in node.items()
|
||||
if x[0] == 'class']
|
||||
if existing_class:
|
||||
css_class = '%s %s' % (
|
||||
css_class, existing_class[0])
|
||||
return css_class
|
||||
|
||||
def _register_hook(self, cr, ids=None):
|
||||
|
||||
def make_fields_view_get():
|
||||
|
||||
@api.model
|
||||
def fields_view_get(self, view_id=None, view_type='form',
|
||||
toolbar=False, submenu=False):
|
||||
# Perform standard fields_view_get
|
||||
res = fields_view_get.origin(
|
||||
self, view_id=view_id, view_type=view_type,
|
||||
toolbar=toolbar, submenu=submenu)
|
||||
# customize xml output
|
||||
if view_type == 'form' and res.get('view_id'):
|
||||
view = self.env['ir.ui.view'].browse(res.get('view_id'))
|
||||
if view.form_width:
|
||||
model_m = self.env['ir.model']
|
||||
doc = etree.XML(res['arch'])
|
||||
node = doc.xpath('//sheet')
|
||||
if node:
|
||||
css_class = view.form_width
|
||||
for current_node in node:
|
||||
new_css = model_m._css_class_to_apply(
|
||||
current_node, css_class)
|
||||
current_node.set('class', new_css)
|
||||
orm.setup_modifiers(current_node)
|
||||
res['arch'] = etree.tostring(doc, pretty_print=True)
|
||||
return res
|
||||
|
||||
return fields_view_get
|
||||
|
||||
if ids is None:
|
||||
ids = self.search(cr, SUPERUSER_ID, [])
|
||||
for model in self.browse(cr, SUPERUSER_ID, ids):
|
||||
Model = self.pool.get(model.model)
|
||||
if Model:
|
||||
Model._patch_method('fields_view_get', make_fields_view_get())
|
||||
return super(ModelExtended, self)._register_hook(cr)
|
||||
BIN
web_sheet_width_custom/static/description/icon.png
Executable file
|
After Width: | Height: | Size: 411 B |
BIN
web_sheet_width_custom/static/description/img1.png
Normal file
|
After Width: | Height: | Size: 132 KiB |
4
web_sheet_width_custom/static/src/css/sheet.css
Executable file
@@ -0,0 +1,4 @@
|
||||
.openerp .oe_form_sheet_full_screen {
|
||||
max-width: none;
|
||||
margin: 0 auto;
|
||||
}
|
||||
12
web_sheet_width_custom/views/sheet.xml
Executable file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<template id="assets_backend" name="form_sheet_full_screen assets" inherit_id="web.assets_backend">
|
||||
<xpath expr="." position="inside">
|
||||
<link rel="stylesheet" href="/web_sheet_width_custom/static/src/css/sheet.css"/>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
17
web_sheet_width_custom/views/ui_view.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="view_view_form" model="ir.ui.view">
|
||||
<field name="model">ir.ui.view</field>
|
||||
<field name="inherit_id" ref="base.view_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="priority" position="after">
|
||||
<field name="form_width"
|
||||
attrs="{'invisible': [('type', '!=', 'form')]}"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||