diff --git a/app_dynamic_list/__init__.py b/app_dynamic_list/__init__.py
deleted file mode 100644
index faaaf799..00000000
--- a/app_dynamic_list/__init__.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# -*- coding: utf-8 -*-
-
-
diff --git a/app_dynamic_list/__openerp__.py b/app_dynamic_list/__openerp__.py
deleted file mode 100644
index 3f1dd57b..00000000
--- a/app_dynamic_list/__openerp__.py
+++ /dev/null
@@ -1,34 +0,0 @@
-
-{
- 'name': 'App Customize Columns of List (Tree) View Dynamic',
- 'version': '10.0.1.6',
- 'author': 'Sunpop.cn',
- 'category': 'Productivity',
- 'website': 'http://www.odooapp.cn',
- 'sequence': 2,
- 'summary': 'App Customize columns of List (Tree) View. Dynamic list.',
- 'description': """
-
-App Customize Columns of List (Tree) View
-============
-App Customize Columns of List (Tree) View module is made to show/hide the columns on the list/tree view of Odoo. After installing the module, a "Set Columns" button will be show to the list view.
-You can customize every odoo list/tree view easily.
-
-This module is ready for Community and Enterprise Edition.
-
- """,
- 'images': ['static/description/sales_coms.jpg'
- ],
- 'depends': ['web'],
- 'data': [
- 'views/listview_button.xml',
- ],
- 'demo': [],
- 'test': [
- ],
- 'installable': True,
- 'application': True,
- 'auto_install': False,
- 'qweb': ['static/src/xml/listview_button_view.xml'],
-}
-
diff --git a/app_dynamic_list/i18n/zh_CN.po b/app_dynamic_list/i18n/zh_CN.po
deleted file mode 100644
index c07d57f0..00000000
--- a/app_dynamic_list/i18n/zh_CN.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * apps_material_backend_theme
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 10.0c\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-09-07 08:57+0000\n"
-"PO-Revision-Date: 2016-09-07 08:57+0000\n"
-"Last-Translator: Ivan Deng <300883@qq.com>, 2017\n"
-"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: \n"
-"Language: zh_CN\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-#. module: app_dynamic_list
-#. openerp-web
-#: code:addons/apps_material_backend_theme/static/src/xml/listview_button_view.xml:121
-#, python-format
-msgid "Set Columns"
-msgstr "显示列"
diff --git a/app_dynamic_list/images/dynamiclist_homepage.jpg b/app_dynamic_list/images/dynamiclist_homepage.jpg
deleted file mode 100644
index 5563db16..00000000
Binary files a/app_dynamic_list/images/dynamiclist_homepage.jpg and /dev/null differ
diff --git a/app_dynamic_list/static/description/icon.png b/app_dynamic_list/static/description/icon.png
deleted file mode 100644
index 2a04f219..00000000
Binary files a/app_dynamic_list/static/description/icon.png and /dev/null differ
diff --git a/app_dynamic_list/static/description/index.html b/app_dynamic_list/static/description/index.html
deleted file mode 100644
index f75d97bc..00000000
--- a/app_dynamic_list/static/description/index.html
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
Customize hide/show the columns on the list (tree) view dynamically
-
-
This moduld allows user to customize columns dynamically in list (tree) view of any object of any
- installed module.
-
-
-
"Set Columns" button contains all field(s) in dropdown with checkbox which will exist in
- list view of current object. So if user wants to show/hide any field, then he/she has to just do
- check/uncheck that respective checkbox besides field name in dropdown list and then just click on
- "Apply" button.
-
-
-
-
-
-
-
-
-
-
Sales leads in Enterprise Edition
-
-
-
-
-
-
-
-
-
-
Sales leads in Community Edition
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Technical Help & Support
-
-
-
-
- For any type of technical help & support requests, Feel free to contact us
After uncheck "Show Author and Website in Apps Dashboard"
+
+
+
+
+
+
+
Setup more flags: just rename the flag pic to locale code of the country
@@ -90,7 +125,7 @@
-
+
Quick Delete test Data.
diff --git a/app_odoo_customize/static/description/set1.jpg b/app_odoo_customize/static/description/set1.jpg
new file mode 100644
index 00000000..8b671010
Binary files /dev/null and b/app_odoo_customize/static/description/set1.jpg differ
diff --git a/app_odoo_customize/static/description/set1.png b/app_odoo_customize/static/description/set1.png
deleted file mode 100644
index b68f7abe..00000000
Binary files a/app_odoo_customize/static/description/set1.png and /dev/null differ
diff --git a/app_odoo_customize/static/description/set18-1.jpg b/app_odoo_customize/static/description/set18-1.jpg
new file mode 100644
index 00000000..56c40177
Binary files /dev/null and b/app_odoo_customize/static/description/set18-1.jpg differ
diff --git a/app_odoo_customize/static/description/set18-2.jpg b/app_odoo_customize/static/description/set18-2.jpg
new file mode 100644
index 00000000..32028d74
Binary files /dev/null and b/app_odoo_customize/static/description/set18-2.jpg differ
diff --git a/app_odoo_customize/static/description/set19.jpg b/app_odoo_customize/static/description/set19.jpg
new file mode 100644
index 00000000..8bea0b62
Binary files /dev/null and b/app_odoo_customize/static/description/set19.jpg differ
diff --git a/app_odoo_customize/static/description/set3.jpg b/app_odoo_customize/static/description/set3.jpg
new file mode 100644
index 00000000..d1285f3a
Binary files /dev/null and b/app_odoo_customize/static/description/set3.jpg differ
diff --git a/app_odoo_customize/static/description/set3.png b/app_odoo_customize/static/description/set3.png
deleted file mode 100644
index 0c2edc58..00000000
Binary files a/app_odoo_customize/static/description/set3.png and /dev/null differ
diff --git a/app_odoo_customize/static/src/img/flags/flag_syria.png b/app_odoo_customize/static/src/img/flags/ar_SY.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_syria.png
rename to app_odoo_customize/static/src/img/flags/ar_SY.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_bulgaria.png b/app_odoo_customize/static/src/img/flags/bg.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_bulgaria.png
rename to app_odoo_customize/static/src/img/flags/bg.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_bosnia_and_herzegovina.png b/app_odoo_customize/static/src/img/flags/bs_BA.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_bosnia_and_herzegovina.png
rename to app_odoo_customize/static/src/img/flags/bs_BA.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_australia.png b/app_odoo_customize/static/src/img/flags/en_AU.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_australia.png
rename to app_odoo_customize/static/src/img/flags/en_AU.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_united_kingdom.png b/app_odoo_customize/static/src/img/flags/en_GB.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_united_kingdom.png
rename to app_odoo_customize/static/src/img/flags/en_GB.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_argentina.png b/app_odoo_customize/static/src/img/flags/es_AR.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_argentina.png
rename to app_odoo_customize/static/src/img/flags/es_AR.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_bolivia.png b/app_odoo_customize/static/src/img/flags/es_BO.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_bolivia.png
rename to app_odoo_customize/static/src/img/flags/es_BO.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_chile.png b/app_odoo_customize/static/src/img/flags/es_CL.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_chile.png
rename to app_odoo_customize/static/src/img/flags/es_CL.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_colombia.png b/app_odoo_customize/static/src/img/flags/es_CO.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_colombia.png
rename to app_odoo_customize/static/src/img/flags/es_CO.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_costa_rica.png b/app_odoo_customize/static/src/img/flags/es_CR.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_costa_rica.png
rename to app_odoo_customize/static/src/img/flags/es_CR.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_dominican_republic.png b/app_odoo_customize/static/src/img/flags/es_DO.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_dominican_republic.png
rename to app_odoo_customize/static/src/img/flags/es_DO.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_ecuador.png b/app_odoo_customize/static/src/img/flags/es_EC.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_ecuador.png
rename to app_odoo_customize/static/src/img/flags/es_EC.png
diff --git a/app_odoo_customize/static/src/img/flags/es_ES.png~HEAD b/app_odoo_customize/static/src/img/flags/es_ES.png~HEAD
deleted file mode 100644
index 0c9580b0..00000000
Binary files a/app_odoo_customize/static/src/img/flags/es_ES.png~HEAD and /dev/null differ
diff --git a/app_odoo_customize/static/src/img/flags/es_ES.png~origin_10.0 b/app_odoo_customize/static/src/img/flags/es_ES.png~origin_10.0
deleted file mode 100644
index 0c9580b0..00000000
Binary files a/app_odoo_customize/static/src/img/flags/es_ES.png~origin_10.0 and /dev/null differ
diff --git a/app_odoo_customize/static/src/img/flags/flag_guatemala.png b/app_odoo_customize/static/src/img/flags/es_GT.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_guatemala.png
rename to app_odoo_customize/static/src/img/flags/es_GT.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_mexico.png b/app_odoo_customize/static/src/img/flags/es_MX.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_mexico.png
rename to app_odoo_customize/static/src/img/flags/es_MX.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_uruguay.png b/app_odoo_customize/static/src/img/flags/es_UY.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_uruguay.png
rename to app_odoo_customize/static/src/img/flags/es_UY.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_venezuela.png b/app_odoo_customize/static/src/img/flags/es_VE.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_venezuela.png
rename to app_odoo_customize/static/src/img/flags/es_VE.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_spain.png b/app_odoo_customize/static/src/img/flags/flag_spain.png
deleted file mode 100644
index 0c9580b0..00000000
Binary files a/app_odoo_customize/static/src/img/flags/flag_spain.png and /dev/null differ
diff --git a/app_odoo_customize/static/src/img/flags/flag_south_korea.png b/app_odoo_customize/static/src/img/flags/ko_KR.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_south_korea.png
rename to app_odoo_customize/static/src/img/flags/ko_KR.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_brazil.png b/app_odoo_customize/static/src/img/flags/pt_BR.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_brazil.png
rename to app_odoo_customize/static/src/img/flags/pt_BR.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_albania.png b/app_odoo_customize/static/src/img/flags/sq_AL.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_albania.png
rename to app_odoo_customize/static/src/img/flags/sq_AL.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_turkey.png b/app_odoo_customize/static/src/img/flags/tr_TR.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_turkey.png
rename to app_odoo_customize/static/src/img/flags/tr_TR.png
diff --git a/app_odoo_customize/static/src/img/flags/flag_ukraine.png b/app_odoo_customize/static/src/img/flags/uk_UA.png
similarity index 100%
rename from app_odoo_customize/static/src/img/flags/flag_ukraine.png
rename to app_odoo_customize/static/src/img/flags/uk_UA.png
diff --git a/app_odoo_customize/static/src/img/icon76red.png b/app_odoo_customize/static/src/img/icon76red.png
new file mode 100644
index 00000000..aa490954
Binary files /dev/null and b/app_odoo_customize/static/src/img/icon76red.png differ
diff --git a/app_odoo_customize/static/src/img/logo_sunpop.png b/app_odoo_customize/static/src/img/logo_sunpop.png
new file mode 100644
index 00000000..90cbe0e2
Binary files /dev/null and b/app_odoo_customize/static/src/img/logo_sunpop.png differ
diff --git a/app_odoo_customize/static/src/js/app_window_title.js b/app_odoo_customize/static/src/js/app_window_title.js
index b7c368af..8e673b54 100644
--- a/app_odoo_customize/static/src/js/app_window_title.js
+++ b/app_odoo_customize/static/src/js/app_window_title.js
@@ -1,4 +1,4 @@
-odoo.define('app_system_name', function (require) {
+odoo.define('app_odoo_customize.app_system_name', function (require) {
"use strict";
var WebClient = require('web.WebClient');
diff --git a/app_odoo_customize/static/src/js/customize_user_menu.js b/app_odoo_customize/static/src/js/customize_user_menu.js
index 8891bf7e..e6b6787a 100644
--- a/app_odoo_customize/static/src/js/customize_user_menu.js
+++ b/app_odoo_customize/static/src/js/customize_user_menu.js
@@ -1,117 +1,164 @@
-odoo.define('app_odoo_customize.customize_user_menu', function (require) {
+odoo.define('app_odoo_customize.UserMenu', function (require) {
"use strict";
- var Model = require('web.Model');
- var session = require('web.session');
+
+ /**
+ * This widget is appended by the webclient to the right of the navbar.
+ * It displays the avatar and the name of the logged user (and optionally the
+ * db name, in debug mode).
+ * If clicked, it opens a dropdown allowing the user to perform actions like
+ * editing its preferences, accessing the documentation, logging out...
+ */
var UserMenu = require('web.UserMenu');
- var documentation_url;
+ //避免错误,要再定义
+ var documentation_url = 'http://www.sunpop.cn';
var documentation_dev_url;
var support_url;
var account_title;
var account_url;
+
UserMenu.include({
- on_menu_debug: function () {
- window.location = $.param.querystring(window.location.href, 'debug');
+ init: function () {
+ this._super.apply(this, arguments);
+ var self = this;
+ var session = this.getSession();
+ var lang_list = '';
+
+ self._rpc({
+ model: 'res.lang',
+ method: 'search_read',
+ domain: [],
+ fields: ['name', 'code'],
+ lazy: false,
+ }).then(function (res) {
+ _.each(res, function (lang) {
+ var a = '';
+ if (lang['code'] === session.user_context.lang) {
+ a = '';
+ } else {
+ a = '';
+ }
+ lang_list += '
+
+ app_odoo_customize.group_show_author_in_apps
+
+
+
+
diff --git a/app_product_sequence/__init__.py b/app_product_sequence/__init__.py
deleted file mode 100644
index 32e57aa9..00000000
--- a/app_product_sequence/__init__.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- coding: utf-8 -*-
-'''
-Created on 2017-10-28
-@author: 广州尚鹏,http://www.sunpop.cn
-@email: 300883@qq.com
-@resource of Sunpop
-Odoo10离线中文用户手册下载
-http://www.sunpop.cn/odoo10_user_manual_document_offline/
-Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
-http://www.sunpop.cn/odoo10_developer_document_offline/
-
-@description:
-'''
-
-import models
-import controllers
-from .hooks import pre_init_hook
-
diff --git a/app_product_sequence/__openerp__.py b/app_product_sequence/__openerp__.py
deleted file mode 100644
index 2094e5d5..00000000
--- a/app_product_sequence/__openerp__.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Created on 2017-11-05
-# author: 广州尚鹏,http://www.sunpop.cn
-# email: 300883@qq.com
-# resource of Sunpop
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-# Odoo在线中文用户手册(长期更新)
-# http://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html
-
-# Odoo10离线中文用户手册下载
-# http://www.sunpop.cn/odoo10_user_manual_document_offline/
-# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
-# http://www.sunpop.cn/odoo10_developer_document_offline/
-# description:
-{
- 'name': 'App Product Internal Type,Auto Sequence, Auto Code(Variants Supported)',
- 'summary': 'Auto Internal Reference.',
- "version": '10.0.2.2',
- 'category': 'Sales',
- 'author': 'Sunpop.cn',
- 'website': 'http://www.sunpop.cn',
- 'license': 'AGPL-3',
- 'sequence': 2,
- 'installable': True,
- 'auto_install': False,
- 'application': True,
- 'images': ['static/description/set2.jpg'],
- 'currency': 'EUR',
- 'price': 98,
- 'description': u"""
- App Product Auto Sequence, Auto Code(Variants Supported)
-
- This module allows to associate a sequence to the product reference.
- The reference (default code) is unique (SQL constraint) and required.
- Support Product with or without Variants.
- 1.Auto Sequence or code for every product.自动产品编码。
- 2.Auto Sequence or for every product variants, like product20171130-001.自动多规格产品编码,形式为 主产品编码-001。
- 3.Product code must be Unique.产品编码强制要求唯一。
- 4.Define different product type, each product type use own rule of sequence.可自定义产品类型,不同产品类型使用不同编码规则。
- 5.Quick access in sale , inventory, system menu.可以在销售、库存、系统菜单中快速定义。
- 6.Multi language support. 多语种支持。
- 7.Setup default Auto Sequence for each product category
- """,
- 'pre_init_hook': 'pre_init_hook',
- 'depends': [
- 'product',
- 'stock',
- 'sale',
- 'purchase',
- 'mrp',
- ],
- 'data': [
- # 视图
- "security/ir.model.access.csv",
- # "security/security.xml",
- 'views/product_template_view.xml',
- 'views/product_product_view.xml',
- 'views/product_category_view.xml',
- 'views/product_internal_type_view.xml',
- 'data/product_sequence.xml',
- ],
- 'demo': [
- ],
-}
diff --git a/app_product_sequence/controllers/__init__.py b/app_product_sequence/controllers/__init__.py
deleted file mode 100644
index 8ee9bae1..00000000
--- a/app_product_sequence/controllers/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-import main
diff --git a/app_product_sequence/controllers/main.py b/app_product_sequence/controllers/main.py
deleted file mode 100644
index 40a96afc..00000000
--- a/app_product_sequence/controllers/main.py
+++ /dev/null
@@ -1 +0,0 @@
-# -*- coding: utf-8 -*-
diff --git a/app_product_sequence/controllers/product_sequence.xml b/app_product_sequence/controllers/product_sequence.xml
deleted file mode 100644
index 7955665e..00000000
--- a/app_product_sequence/controllers/product_sequence.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-
-
-
- Sequence for All Products
- product.product
- P%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Manufactured Product
- product.product
- D%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Components Product
- product.product
- C%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Sourced Product
- product.product
- S%(y)s%(month)s
- 5
-
- True
-
-
-
-
- Manufactured Product
- Set prefix as "D" in link sequence
-
-
-
- Sourced Product
- Set prefix as "S" in link sequence
-
-
-
- Components Product
- Set prefix as "C" in link sequence
-
-
-
-
-
- internal_type
- product.template
- default
-
-
-
-
-
-
diff --git a/app_product_sequence/data/product_sequence.xml b/app_product_sequence/data/product_sequence.xml
deleted file mode 100644
index 906a9335..00000000
--- a/app_product_sequence/data/product_sequence.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
-
-
-
-
- Sequence for All Products
- product.product
- PR%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Manufactured Product
- product.product
- CP%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Manufactured Components
- product.product
- BJ%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Sourced Material
- product.product
- BC%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Sourced Product
- product.product
- WL%(y)s%(month)s
- 5
-
- True
-
-
-
-
-
-
- Manufactured Product
- cp
- product
- 1
- 0
-
- Set prefix as "CP" in link sequence
-
-
-
-
- Manufactured Components
- bj
- product
- 0
- 0
-
- Set prefix as "BJ" in link sequence
-
-
-
-
- Components Product
- bc
- product
- 0
- 1
-
- Set prefix as "BC" in link sequence
-
-
-
-
- Sourced Product
- wl
- product
- 1
- 1
-
- Set prefix as "WL" in link sequence
-
-
-
-
-
-
- internal_type
- product.template
- default
-
-
-
-
-
-
diff --git a/app_product_sequence/data/product_sequence_dp.xml b/app_product_sequence/data/product_sequence_dp.xml
deleted file mode 100644
index af3e9cc1..00000000
--- a/app_product_sequence/data/product_sequence_dp.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-
-
- Sequence for All Products
- product.product
- P%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Manufactured Product
- product.product
- D%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Components Product
- product.product
- C%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Sourced Product
- product.product
- S%(y)s%(month)s
- 5
-
- True
-
-
-
-
- Manufactured Product
- d
- product
- 1
- 0
-
- Set prefix as "D" in link sequence
-
-
-
- Sourced Product
- s
- product
- 1
- 1
-
- Set prefix as "S" in link sequence
-
-
-
- Components Product
- c
- product
- 0
- 1
-
- Set prefix as "C" in link sequence
-
-
-
-
-
- internal_type
- product.template
- default
-
-
-
-
-
-
diff --git a/app_product_sequence/data/product_sequence_felive.xml b/app_product_sequence/data/product_sequence_felive.xml
deleted file mode 100644
index 058eb1ce..00000000
--- a/app_product_sequence/data/product_sequence_felive.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
-
-
-
-
- Sequence for All Products
- product.product
- P%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Manufactured Product
- product.product
- CP%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Manufactured Components
- product.product
- BJ%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Sourced Material
- product.product
- BC%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Sourced Product
- product.product
- CL%(y)s%(month)s
- 5
-
- True
-
-
-
-
-
-
- 成品
- cp
- product
- 1
- 0
-
- 制造的成品。如:床,桌子
-
-
-
-
- 板件
- bj
- product
- 0
- 0
-
- 制造的半成品。如:床的左侧板,柜子的顶板
-
-
-
-
- 原材料(板材)
- bc
- product
- 0
- 1
-
- 制造所需的原材料,不可直接销售。如:中纤板(厚14mm)
-
-
-
-
- 外购成品
- cl
- product
- 1
- 1
-
- 采购后可直接销售,也可当原材料的成品。如:门把手
-
-
-
-
-
-
- internal_type
- product.template
- default
-
-
-
-
-
-
diff --git a/app_product_sequence/data/product_sequence_origin.xml b/app_product_sequence/data/product_sequence_origin.xml
deleted file mode 100644
index 5a990647..00000000
--- a/app_product_sequence/data/product_sequence_origin.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
-
-
- Sequence for All Products
- product.product
- P%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Manufactured Product
- product.product
- CP%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Manufactured Components
- product.product
- BJ%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Sourced Material
- product.product
- BC%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Sourced Product
- product.product
- CL%(y)s%(month)s
- 5
-
- True
-
-
-
-
-
- Manufactured Product
- cp
- Set prefix as "CP" in link sequence
-
-
-
-
- Manufactured Components
- bj
- Set prefix as "BJ" in link sequence
-
-
-
-
- Sourced Material
- bc
- Set prefix as "BC" in link sequence
-
-
-
-
- Sourced Product
- cl
- Set prefix as "cl" in link sequence
-
-
-
-
-
- internal_type
- product.template
- default
-
-
-
-
-
-
diff --git a/app_product_sequence/hooks.py b/app_product_sequence/hooks.py
deleted file mode 100644
index 4a0ea85d..00000000
--- a/app_product_sequence/hooks.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Created on 2017-11-05
-# author: 广州尚鹏,http://www.sunpop.cn
-# email: 300883@qq.com
-# resource of Sunpop
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-# Odoo在线中文用户手册(长期更新)
-# http://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html
-
-# Odoo10离线中文用户手册下载
-# http://www.sunpop.cn/odoo10_user_manual_document_offline/
-# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
-# http://www.sunpop.cn/odoo10_developer_document_offline/
-# description:
-
-def pre_init_hook(cr):
- """
- Updates existing codes matching the default 'New' or
- empty. Primarily this ensures installation does not
- fail for demo data.
- :param cr: database cursor
- :return: void
- """
- cr.execute("UPDATE product_product "
- "SET default_code = '!!PR!!' || id "
- "WHERE default_code IS NULL OR default_code = 'New';")
-
- cr.execute("UPDATE product_template "
- "Set default_code = "
- "(select default_code from product_product "
- "where product_product.product_tmpl_id = product_template.id limit 1)"
- "WHERE default_code IS NULL OR default_code = 'New';")
diff --git a/app_product_sequence/i18n/zh_CN.po b/app_product_sequence/i18n/zh_CN.po
deleted file mode 100644
index 396e4a44..00000000
--- a/app_product_sequence/i18n/zh_CN.po
+++ /dev/null
@@ -1,221 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * app_product_sequence
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 10.0-20171107\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-12-18 19:02+0000\n"
-"PO-Revision-Date: 2017-12-18 19:02+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: app_product_sequence
-#: model:ir.model.fields,help:app_product_sequence.field_product_internal_type_type
-msgid "A stockable product is a product for which you manage stock. The \"Inventory\" app has to be installed.\n"
-"A consumable product, on the other hand, is a product for which stock is not managed.\n"
-"A service is a non-material product you provide.\n"
-"A digital content is a non-material product you sell online. The files attached to the products are the one that are sold on the e-commerce such as e-books, music, pictures,... The \"Digital Product\" module has to be installed."
-msgstr "A stockable product is a product for which you manage stock. The \"Inventory\" app has to be installed.\n"
-"A consumable product, on the other hand, is a product for which stock is not managed.\n"
-"A service is a non-material product you provide.\n"
-"A digital content is a non-material product you sell online. The files attached to the products are the one that are sold on the e-commerce such as e-books, music, pictures,... The \"Digital Product\" module has to be installed."
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_purchase_ok
-msgid "Can be Purchased"
-msgstr "可用于采购"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_rental
-msgid "Can be Rent"
-msgstr "可用于出租"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_sale_ok
-msgid "Can be Sold"
-msgstr "可用于销售"
-
-#. module: app_product_sequence
-#: code:addons/app_product_sequence/models/product_internal_type.py:34
-#: selection:product.internal.type,type:0
-#, python-format
-msgid "Consumable"
-msgstr "可消耗"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_create_uid
-msgid "Created by"
-msgstr "创建人"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_create_date
-msgid "Created on"
-msgstr "创建时间"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_category_internal_type
-msgid "Default Internal Type"
-msgstr "默认产品内部类型"
-
-#. module: app_product_sequence
-#: model:ir.ui.view,arch_db:app_product_sequence.product_internal_type_form_view
-msgid "Auto Set Product's Value To:"
-msgstr "自动设置产品默认参数为:"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,help:app_product_sequence.field_product_internal_type_route_ids
-msgid "Depending on the modules installed, this will allow you to define the route of the product: whether it will be bought, manufactured, MTO/MTS,..."
-msgstr "取决于安装的模块,它允许在产品定义路线:购买,制造,MTO/MTS,等等..."
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_description
-msgid "Description"
-msgstr "说明"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_display_name
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_name
-#: model:ir.ui.view,arch_db:app_product_sequence.product_internal_type_form_view
-msgid "Display Name"
-msgstr "显示名称"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_id
-msgid "ID"
-msgstr "ID"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_product_default_code_index
-msgid "Internal Reference Index"
-msgstr "Varient序号"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_product_default_code_stored
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_template_default_code_stored
-msgid "Internal Reference Stored"
-msgstr "主产品编码"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_product_internal_type
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_template_internal_type
-msgid "Internal Type"
-msgstr "内部类型(编码)"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type___last_update
-msgid "Last Modified on"
-msgstr "最后修改日"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_write_uid
-msgid "Last Updated by"
-msgstr "最后更新人"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_write_date
-msgid "Last Updated on"
-msgstr "最后更新时间"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_link_sequence
-msgid "Link Sequence"
-msgstr "使用的序列"
-
-#. module: app_product_sequence
-#: code:addons/app_product_sequence/models/product_template.py:41
-#, python-format
-msgid "Please save product first before adding varients!"
-msgstr "增加产品变体前,请先保存当前产品!"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,help:app_product_sequence.field_product_internal_type_sequence_prefix
-msgid "Prefix value of the record for the sequence"
-msgstr "序列记录的前缀"
-
-#. module: app_product_sequence
-#: model:ir.model,name:app_product_sequence.model_product_product
-msgid "Product"
-msgstr "产品"
-
-#. module: app_product_sequence
-#: model:ir.model,name:app_product_sequence.model_product_category
-msgid "Product Category"
-msgstr "产品类别"
-
-#. module: app_product_sequence
-#: model:ir.actions.act_window,name:app_product_sequence.internal_type_action
-#: model:ir.ui.menu,name:app_product_sequence.menu_internal_type_action_sale
-#: model:ir.ui.menu,name:app_product_sequence.menu_internal_type_action_stock
-#: model:ir.ui.menu,name:app_product_sequence.menu_internal_type_action_sys
-#: model:ir.ui.view,arch_db:app_product_sequence.product_internal_type_form_view
-#: model:ir.ui.view,arch_db:app_product_sequence.product_internal_type_tree_view
-msgid "Product Internal Type"
-msgstr "内部类型(编码)"
-
-#. module: app_product_sequence
-#: model:ir.model,name:app_product_sequence.model_product_template
-msgid "Product Template"
-msgstr "产品模板"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_type
-msgid "Product Type"
-msgstr "产品类型"
-
-#. module: app_product_sequence
-#: code:addons/app_product_sequence/models/product_product.py:83
-#, python-format
-msgid "Product varient can only create in Product view!"
-msgstr "请在产品管理页面增加产品的多属性!"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_route_ids
-msgid "Routes"
-msgstr "路线"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_sequence_prefix
-msgid "Sequence Prefix"
-msgstr "编号前缀"
-
-#. module: app_product_sequence
-#: code:addons/app_product_sequence/models/product_internal_type.py:35
-#: selection:product.internal.type,type:0
-#, python-format
-msgid "Service"
-msgstr "服务"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,help:app_product_sequence.field_product_internal_type_sale_ok
-msgid "Specify if the product can be selected in a sales order line."
-msgstr "如果产品能在销售单明细在被选择,则指定。"
-
-#. module: app_product_sequence
-#: code:addons/app_product_sequence/models/product_internal_type.py:36
-#: selection:product.internal.type,type:0
-#, python-format
-msgid "Stockable Product"
-msgstr "可库存产品"
-
-#. module: app_product_sequence
-#: sql_constraint:product.internal.type:0
-#: sql_constraint:product.product:0
-msgid "The reference must be unique"
-msgstr "产品内部编码不可重复!"
-
-#. module: app_product_sequence
-#: model:ir.model.fields,field_description:app_product_sequence.field_product_internal_type_ref
-msgid "Unique Code"
-msgstr "唯一编码"
-
-#. module: app_product_sequence
-#: model:ir.model,name:app_product_sequence.model_product_internal_type
-msgid "product.internal.type"
-msgstr "product.internal.type"
-
diff --git a/app_product_sequence/models/__init__.py b/app_product_sequence/models/__init__.py
deleted file mode 100644
index e312570a..00000000
--- a/app_product_sequence/models/__init__.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# -*- coding: utf-8 -*-
-import product_template
-import product_product
-import product_category
-import product_internal_type
\ No newline at end of file
diff --git a/app_product_sequence/models/product_category.py b/app_product_sequence/models/product_category.py
deleted file mode 100644
index 841b8f20..00000000
--- a/app_product_sequence/models/product_category.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Created on 2017-11-28
-# author: 广州尚鹏,http://www.sunpop.cn
-# email: 300883@qq.com
-# resource of Sunpop
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-# Odoo在线中文用户手册(长期更新)
-# http://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html
-
-# Odoo10离线中文用户手册下载
-# http://www.sunpop.cn/odoo10_user_manual_document_offline/
-# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
-# http://www.sunpop.cn/odoo10_developer_document_offline/
-# description:
-
-from openerp import api, fields, models, exceptions, _
-
-
-class ProductCategory(models.Model):
- _name = "product.category"
- _inherit = ['product.category']
-
- internal_type = fields.Many2one(
- 'product.internal.type', 'Default Internal Type',
- auto_join=True, required=False)
diff --git a/app_product_sequence/models/product_internal_type.py b/app_product_sequence/models/product_internal_type.py
deleted file mode 100644
index 9eaf84de..00000000
--- a/app_product_sequence/models/product_internal_type.py
+++ /dev/null
@@ -1,62 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Created on 2017-11-05
-# author: 广州尚鹏,http://www.sunpop.cn
-# email: 300883@qq.com
-# resource of Sunpop
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-# Odoo在线中文用户手册(长期更新)
-# http://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html
-
-# Odoo10离线中文用户手册下载
-# http://www.sunpop.cn/odoo10_user_manual_document_offline/
-# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
-# http://www.sunpop.cn/odoo10_developer_document_offline/
-# description:
-
-from openerp import api, fields, models, _
-
-
-class ProductInternalType(models.Model):
- _name = "product.internal.type"
-
- name = fields.Char('Display Name', default='Normal', translate=True)
- description = fields.Char('Description')
- ref = fields.Char('Unique Code', required=True)
-
- link_sequence = fields.Many2one(
- 'ir.sequence', 'Link Sequence',
- auto_join=True, required=True, domain="[('code', '=', 'product.product')]")
- sequence_prefix = fields.Char(u'Sequence Prefix', related='link_sequence.prefix', readonly=True, store=False)
- # 各种默认值,填则自动录入,不填则不管
- type = fields.Selection([
- ('consu', _('Consumable')),
- ('service', _('Service')),
- ('product', _('Stockable Product'))], string='Product Type',
- help='A stockable product is a product for which you manage stock. The "Inventory" app has to be installed.\n'
- 'A consumable product, on the other hand, is a product for which stock is not managed.\n'
- 'A service is a non-material product you provide.\n'
- 'A digital content is a non-material product you sell online. The files attached to the products are the one that are sold on '
- 'the e-commerce such as e-books, music, pictures,... The "Digital Product" module has to be installed.')
-
- rental = fields.Boolean('Can be Rent')
- sale_ok = fields.Boolean(
- 'Can be Sold', default=True,
- help="Specify if the product can be selected in a sales order line.")
- purchase_ok = fields.Boolean('Can be Purchased', default=True)
-
- # 使用目录的默认路线来处理,暂时不用内部类型路线
- route_ids = fields.Many2many('stock.location.route', string='Routes',
- domain=[('product_selectable', '=', True)],
- help="Depending on the modules installed, this will allow you to define the route of the product: whether it will be bought, manufactured, MTO/MTS,...")
-
- # company_id = fields.Many2one(
- # 'res.company', 'Company',
- # default=lambda self: self.env.user.company_id.id, index=1)
-
- _sql_constraints = [
- ('uniq_ref',
- 'unique(ref)',
- 'The reference must be unique'),
- ]
\ No newline at end of file
diff --git a/app_product_sequence/models/product_product.py b/app_product_sequence/models/product_product.py
deleted file mode 100644
index 99b49892..00000000
--- a/app_product_sequence/models/product_product.py
+++ /dev/null
@@ -1,84 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Created on 2017-11-05
-# author: 广州尚鹏,http://www.sunpop.cn
-# email: 300883@qq.com
-# resource of Sunpop
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-# Odoo在线中文用户手册(长期更新)
-# http://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html
-
-# Odoo10离线中文用户手册下载
-# http://www.sunpop.cn/odoo10_user_manual_document_offline/
-# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
-# http://www.sunpop.cn/odoo10_developer_document_offline/
-# description:
-from openerp import models, fields, api, exceptions, _
-
-
-class ProductProduct(models.Model):
- _inherit = 'product.product'
-
- default_code = fields.Char('Internal Reference', index=True, readonly=True, default=lambda self: _('New'), copy=False)
- default_code_index = fields.Integer('Internal Reference Index', readonly=True)
-
- _sql_constraints = [
- ('uniq_default_code',
- 'unique(default_code)',
- 'The reference must be unique'),
- ]
-
- @api.model
- def create(self, vals):
- # todo: but 先建空白产品后,编辑给2个以上变体,序号会少个 -1
- # code_index: 当没有变体现时,值为0,有变体时,为该变体序号
- if 'default_code' not in vals or vals['default_code'] == 'New':
- code_index = 0
- if 'product_tmpl_id' in vals:
- template = self.env['product.template'].search([('id', '=', vals['product_tmpl_id'])], limit=1)
- mylen = len(template.product_variant_ids)
- # created from product_template
- if 'product_tmpl_id' in vals:
- template = self.env['product.template'].search([('id', '=', vals['product_tmpl_id'])], limit=1)
- attr = vals['attribute_value_ids'][0][2]
- if not(attr):
- # 没有属性值,则是单规格产品。attribute_value_ids格式为[6,0,[]]。多规格时,attribute_value_ids格式为[6,0,[x]]
- code_index = 0
- vals['default_code_index'] = code_index
- vals['default_code'] = template.default_code_stored
- elif mylen == 0:
- # 有属性值了,自己是第一个规格
- code_index = 1
- vals['default_code_index'] = code_index
- vals['default_code'] = template.default_code_stored + '-%03d'%(code_index)
- elif mylen == 1:
- # 已存在1个,当存在的1个有属性时,要改已存在的product值
- code_index = template.product_variant_ids[:1].default_code_index
- if template.product_variant_ids[:1].attribute_value_ids:
- if code_index == 0:
- code_index = 1
- template.product_variant_ids[:1].default_code_index = code_index
- template.product_variant_ids[:1].default_code = template.default_code_stored + '-%03d'%(code_index)
- # 接着改当前操作的product值
- code_index = code_index + 1
- vals['default_code_index'] = code_index
- vals['default_code'] = template.default_code_stored + '-%03d'%(code_index)
- else:
- # 找到最大的序号
- variant_max = max(template.product_variant_ids,key=lambda x: x['default_code_index'])
- code_index = variant_max['default_code_index'] + 1
- vals['default_code_index'] = code_index
- vals['default_code'] = template.default_code_stored + '-%03d'%(code_index)
- else:
- # create from product_product
- sequence = self.env['product.internal.type'].search([('id', '=', vals['internal_type'])], limit=1)
- if sequence:
- vals['default_code'] = sequence.link_sequence.next_by_id()
- return super(ProductProduct, self).create(vals)
-
- @api.multi
- def copy(self, default=None):
- if len(self.product_tmpl_id.product_variant_ids)>1 :
- raise exceptions.ValidationError(_('Product varient can only create in Product view!'))
- return super(ProductProduct, self).copy(default=None)
diff --git a/app_product_sequence/models/product_template.py b/app_product_sequence/models/product_template.py
deleted file mode 100644
index d0d01cca..00000000
--- a/app_product_sequence/models/product_template.py
+++ /dev/null
@@ -1,76 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Created on 2017-11-05
-# author: 广州尚鹏,http://www.sunpop.cn
-# email: 300883@qq.com
-# resource of Sunpop
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-# Odoo在线中文用户手册(长期更新)
-# http://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html
-
-# Odoo10离线中文用户手册下载
-# http://www.sunpop.cn/odoo10_user_manual_document_offline/
-# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
-# http://www.sunpop.cn/odoo10_developer_document_offline/
-# description:
-
-from openerp import api, fields, models, exceptions, _
-
-
-class ProductTemplate(models.Model):
- _name = "product.template"
- _inherit = ['product.template']
-
- # auto_join只要搜索product.template,自动会join。如果经常用到 internal_type 效率会高。
- internal_type = fields.Many2one(
- 'product.internal.type', 'Internal Type',
- auto_join=True, required=True)
-
- default_code = fields.Char(
- 'Internal Reference', compute='_compute_default_code',
- inverse='_set_default_code', store=True, readonly=True,
- default='New', copy=False)
- # 因为default_code有odoo的处理方式,影响面大,故会将其另存到 default_code_stored
- default_code_stored = fields.Char('Internal Reference Stored',default='New')
-
- @api.model
- def create(self, vals):
- if 'attribute_line_ids' in vals:
- if len(vals['attribute_line_ids'])>0:
- raise exceptions.ValidationError(_('Please save product first before adding varients!'))
- if 'default_code' not in vals or vals['default_code'] == 'New':
- sequence = self.env['product.internal.type'].search([('id', '=', vals['internal_type'])], limit=1)
- vals['default_code'] = sequence.link_sequence.next_by_id()
- vals['default_code_stored'] = vals['default_code']
- return super(ProductTemplate, self).create(vals)
-
- @api.depends('product_variant_ids', 'product_variant_ids.default_code')
- def _compute_default_code(self):
- unique_variants = self.filtered(lambda template: len(template.product_variant_ids) == 1)
- for template in unique_variants:
- template.default_code = template.product_variant_ids.default_code
- for template in (self):
- if len(template.product_variant_ids)>1:
- template.default_code = ''
-
- @api.one
- def _set_default_code(self):
- if len(self.product_variant_ids) == 1:
- self.product_variant_ids.default_code = self.default_code_stored
-
- # 当内部类型变化时,改变产品模板的各默认值
- @api.onchange('internal_type')
- def _onchange_internal_type(self):
- if self.internal_type:
- self.type = self.internal_type.type
- self.rental = self.internal_type.rental
- self.sale_ok = self.internal_type.sale_ok
- self.purchase_ok = self.internal_type.purchase_ok
- self.route_ids = self.internal_type.route_ids
-
- # 分类变动时,如果分类绑定了内部类型则联动
- @api.onchange('categ_id')
- def _onchange_cate_id(self):
- if self.categ_id and self.categ_id.internal_type:
- self.internal_type = self.categ_id.internal_type
\ No newline at end of file
diff --git a/app_product_sequence/security/ir.model.access.csv b/app_product_sequence/security/ir.model.access.csv
deleted file mode 100644
index 02697c29..00000000
--- a/app_product_sequence/security/ir.model.access.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_sale_order_type_manager,access_sale_order_type_manager,model_product_internal_type,sales_team.group_sale_manager,1,1,1,1
-access_sale_order_type_salesman,access_sale_order_type_salesman,model_product_internal_type,sales_team.group_sale_salesman,1,0,0,0
diff --git a/app_product_sequence/security/security.xml b/app_product_sequence/security/security.xml
deleted file mode 100644
index 6d51531b..00000000
--- a/app_product_sequence/security/security.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
- Product Internal Type multi-company
-
- ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
-
-
-
-
-
-
diff --git a/app_product_sequence/static/description/icon.png b/app_product_sequence/static/description/icon.png
deleted file mode 100644
index 2a04f219..00000000
Binary files a/app_product_sequence/static/description/icon.png and /dev/null differ
diff --git a/app_product_sequence/static/description/index.html b/app_product_sequence/static/description/index.html
deleted file mode 100644
index 4ac12cc4..00000000
--- a/app_product_sequence/static/description/index.html
+++ /dev/null
@@ -1,162 +0,0 @@
-
-
-
App Product Auto Sequence, Auto Code(Variants Supported)
-
-
- This module allows to associate a sequence to the product reference.
- The reference (default code) is unique (SQL constraint) and required.
- Support Product with or without Variants.
-
-
-
- Auto Sequence or code for every product.
-
-
- Auto Sequence or for every product variants, like product20171130-001.
-
-
- Product code must be Unique.
-
-
- Define different product type, each product type use own rule of sequence.
-
-
- Quick access in sale , inventory, system menu.
-
-
- Multi language support.
-
-
-
-
-
-
-
-
-
Sample Rule: if we create on oct 2017
-
-
- Manufactured Products: M20171100001
-
-
- Components Products: C20171100001
-
-
- Sourced Products: S20171100001
-
-
-
- Sepcial for variants. add [-00?]
-
-
- Products with color[red]: M20171100001-001
-
-
- Products with color[blue]: M20171100001-002
-
-
- Products with color[white]: M20171100001-003
-
-
-
-
Installation:
-
- Prior to installing this module, if you have any existing products you should ensure they already have a
- unique reference (or no reference) set.
- Products with a default_code of '/' or empty will automatically be assigned a code of "!!DP!!" followed
- by the system id for that product.
- Otherwise the setting of the unique constraint will fail and the module will fail to install.
-
- Notice:
- Odoo product variants is very special.
- When u create a product(not product template) with attribute, It would delete the first product, which
- have no attribute.
- So it's very normal that the first product variants begin wit ???-002.
- And we make a rule that the product variants can only create after you create normal product template.
-
-
How to use: Very simple
-
- After installed the app. You can Go to anyone of the menu:
-
-
- Sales->Configuration->Products->Product Internal Type
-
-
- Inventory->Configuration->Products->Product Internal Type
-
-
- Settings->Sequences & Identifiers->Product Internal Type
-
-
-
-
- You would see the default Product Intertype we create.
-
-
-
-
-
-
- And create the product and code by yourself.
-
-
-
-
-
- Notice: The "Sequence Code" Field of sequence must be "product.product"
-
-
-
-
- Go to Prior to installing this module, if you have any existing products you should ensure they already have
- a
- unique reference (or no reference) set.
- Products with a default_code of '/' or empty will automatically be assigned a code of "!!DP!!" followed
- by the system id for that product.
- Otherwise the setting of the unique constraint will fail and the module will fail to install.
-
- Notice:
- Odoo product variants is very special.
- When u create a product(not product template) with attribute, It would delete the first product, which
- have no attribute.
- So it's very normal that the first product variants begin wit ???-002.
- And we make a rule that the product variants can only create after you create normal product template.
-
-
-
-
-
-
-
-
-
-
-
-
Technical Help & Support
-
-
-
-
- For any type of technical help & support requests, Feel free to contact us
-
-
-
-
-
diff --git a/app_product_sequence/产品自动唯一编码模块支持多规格.txt b/app_product_sequence/产品自动唯一编码模块支持多规格.txt
deleted file mode 100644
index a62820ce..00000000
--- a/app_product_sequence/产品自动唯一编码模块支持多规格.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-App Product Auto Sequence, Auto Code(Variants Supported)
-
-1.ԶƷ롣
-2.ԶƷ룬ʽΪ Ʒ-001
-3.ƷǿҪΨһ
-4.ԶƷͣͬƷʹòͬ
-5.ۡ桢ϵͳ˵пٶ塣
-6.֧֡
-
-This module allows to associate a sequence to the product reference.
-The reference (default code) is unique (SQL constraint) and required.
-Support Product with or without Variants.
-1.Auto Sequence or code for every product.ԶƷ롣
-2.Auto Sequence or for every product variants, like product20171130-001.ԶƷ룬ʽΪ Ʒ-001
-3.Product code must be Unique.ƷǿҪΨһ
-4.Define different product type, each product type use own rule of sequence.ԶƷͣͬƷʹòͬ
-5.Quick access in sale , inventory, system menu.ۡ桢ϵͳ˵пٶ塣
-6.Multi language support. ֧֡
-
-
-ҳ棬
-http://www.sunpop.cn/product/app-product-auto-sequence-auto-codevariants-supported/
diff --git a/app_product_type_sequence/__init__.py b/app_product_type_sequence/__init__.py
deleted file mode 100644
index 32e57aa9..00000000
--- a/app_product_type_sequence/__init__.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- coding: utf-8 -*-
-'''
-Created on 2017-10-28
-@author: 广州尚鹏,http://www.sunpop.cn
-@email: 300883@qq.com
-@resource of Sunpop
-Odoo10离线中文用户手册下载
-http://www.sunpop.cn/odoo10_user_manual_document_offline/
-Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
-http://www.sunpop.cn/odoo10_developer_document_offline/
-
-@description:
-'''
-
-import models
-import controllers
-from .hooks import pre_init_hook
-
diff --git a/app_product_type_sequence/__openerp__.py b/app_product_type_sequence/__openerp__.py
deleted file mode 100644
index 738e996f..00000000
--- a/app_product_type_sequence/__openerp__.py
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Created on 2017-11-05
-# author: 广州尚鹏,http://www.sunpop.cn
-# email: 300883@qq.com
-# resource of Sunpop
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-# Odoo在线中文用户手册(长期更新)
-# http://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html
-
-# Odoo10离线中文用户手册下载
-# http://www.sunpop.cn/odoo10_user_manual_document_offline/
-# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
-# http://www.sunpop.cn/odoo10_developer_document_offline/
-# description:
-{
- 'name': 'App Product Internal Type,Auto Sequence, Auto Code(Variants Supported), Auto Attributes',
- 'summary': 'Auto Internal Reference.',
- "version": '10.0.2.2',
- 'category': 'Sales',
- 'author': 'Sunpop.cn',
- 'website': 'http://www.sunpop.cn',
- 'license': 'AGPL-3',
- 'sequence': 2,
- 'installable': True,
- 'auto_install': True,
- 'application': True,
- 'images': ['static/description/set2.jpg'],
- 'currency': 'EUR',
- 'price': 98,
- 'description': u"""
- App Product Auto Sequence, Auto Code(Variants Supported), Auto Attributes
-
- This module allows to associate a sequence to the product reference.
- The reference (default code) is unique (SQL constraint) and required.
- Support Product with or without Variants.
- 1.Auto Sequence or code for every product.自动产品编码。
- 2.Auto Sequence or for every product variants, like product20171130-001.自动多规格产品编码,形式为 主产品编码-001。
- 3.Product code must be Unique.产品编码强制要求唯一。
- 4.Define different product type, each product type use own rule of sequence.可自定义产品类型,不同产品类型使用不同编码规则。
- 5.Quick access in sale , inventory, system menu.可以在销售、库存、系统菜单中快速定义。
- 6.Multi language support. 多语种支持。
- 7.Setup default Auto Sequence for each product category,自动设置每个产品目录使用的产品编码规则
- 8.Auto setup product attribute lik Sale/Purchase, Stockable/Consumable/Service, Stock Routes. 自动设置产品的销售/采购,可库存产品/服务/消耗品,购买/制造/按订单生成等库存路线
- """,
- 'pre_init_hook': 'pre_init_hook',
- 'depends': [
- 'product',
- 'stock',
- 'sale',
- 'purchase',
- 'mrp',
- ],
- 'data': [
- # 视图
- "security/ir.model.access.csv",
- "security/security.xml",
- 'views/product_template_view.xml',
- 'views/product_product_view.xml',
- 'views/product_category_view.xml',
- 'views/product_internal_type_view.xml',
- 'data/product_sequence.xml',
- ],
- 'demo': [
- ],
-}
diff --git a/app_product_type_sequence/controllers/__init__.py b/app_product_type_sequence/controllers/__init__.py
deleted file mode 100644
index 8ee9bae1..00000000
--- a/app_product_type_sequence/controllers/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-import main
diff --git a/app_product_type_sequence/controllers/main.py b/app_product_type_sequence/controllers/main.py
deleted file mode 100644
index 40a96afc..00000000
--- a/app_product_type_sequence/controllers/main.py
+++ /dev/null
@@ -1 +0,0 @@
-# -*- coding: utf-8 -*-
diff --git a/app_product_type_sequence/data/product_sequence.xml b/app_product_type_sequence/data/product_sequence.xml
deleted file mode 100644
index e30981cf..00000000
--- a/app_product_type_sequence/data/product_sequence.xml
+++ /dev/null
@@ -1,135 +0,0 @@
-
-
-
-
-
-
- Sequence for All Products
- product.product
- PR%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Manufactured Product
- product.product
- CP%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Manufactured Components
- product.product
- BJ%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Sourced Material
- product.product
- BC%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Sourced Product
- product.product
- WL%(y)s%(month)s
- 5
-
- True
-
-
-
-
-
-
- Manufactured Product
- cp
- 1
- product
- 1
- 0
-
- Set prefix as "CP" in link sequence
-
-
-
-
- Manufactured Components
- bj
- 2
- product
- 0
- 0
-
- Set prefix as "BJ" in link sequence
-
-
-
-
- Components Product
- bc
- 3
- product
- 0
- 1
-
- Set prefix as "BC" in link sequence
-
-
-
-
- Sourced Product
- wl
- 4
- product
- 1
- 1
-
- Set prefix as "WL" in link sequence
-
-
-
-
- Service
- fw
- 5
- service
- 1
- 1
- Set prefix as "PR" in link sequence
-
-
-
-
- Consumer
- xh
- 6
- consu
- 1
- 1
- Set prefix as "PR" in link sequence
-
-
-
-
-
-
- internal_type
- product.template
- default
-
-
-
-
-
-
diff --git a/app_product_type_sequence/data/product_sequence_dp.xml b/app_product_type_sequence/data/product_sequence_dp.xml
deleted file mode 100644
index 4b8b3ff3..00000000
--- a/app_product_type_sequence/data/product_sequence_dp.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
-
-
-
-
- Sequence for All Products
- product.product
- P%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Manufactured Product
- product.product
- D%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Components Product
- product.product
- C%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Sourced Product
- product.product
- S%(y)s%(month)s
- 5
-
- True
-
-
-
- Service
- product.product
- V%(y)s%(month)s
- 5
-
- True
-
-
-
-
-
- Manufactured Product
- d
- product
- 1
- 0
-
- Set prefix as "D" in link sequence
-
-
-
- Components Product
- c
- product
- 0
- 1
-
- Set prefix as "C" in link sequence
-
-
-
- Sourced Product
- s
- product
- 1
- 1
-
- Set prefix as "S" in link sequence
-
-
-
- Service
- v
- service
- 1
- 1
-
- Set prefix as "V" in link sequence
-
-
-
-
-
- internal_type
- product.template
- default
-
-
-
-
-
-
diff --git a/app_product_type_sequence/data/product_sequence_felive.xml b/app_product_type_sequence/data/product_sequence_felive.xml
deleted file mode 100644
index 5278299c..00000000
--- a/app_product_type_sequence/data/product_sequence_felive.xml
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
-
-
-
-
- Sequence for All Products
- product.product
- PR%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Manufactured Product
- product.product
- CP%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Manufactured Components
- product.product
- BJ%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Sourced Material
- product.product
- BC%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Sourced Product
- product.product
- WL%(y)s%(month)s
- 5
-
- True
-
-
-
-
-
- 图纸成品
- cp
- 1
- product
- 1
- 0
-
- Set prefix as "CP" in link sequence
-
-
-
-
- 图纸板件
- bj
- 2
- product
- 0
- 0
-
- Set prefix as "BJ" in link sequence
-
-
-
-
- 大板
- bc
- 3
- product
- 0
- 1
-
- Set prefix as "BC" in link sequence
-
-
-
-
- 基础物料
- cl
- 4
- product
- 1
- 1
-
- Set prefix as "CL" in link sequence
-
-
-
-
- 服务与费用
- fw
- 5
- service
- 1
- 1
- Set prefix as "PR" in link sequence
-
-
-
-
- 消耗品
- xh
- 6
- consu
- 0
- 0
- Set prefix as "PR" in link sequence
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app_product_type_sequence/data/product_sequence_origin.xml b/app_product_type_sequence/data/product_sequence_origin.xml
deleted file mode 100644
index c0c7f9f6..00000000
--- a/app_product_type_sequence/data/product_sequence_origin.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
-
-
-
-
- Sequence for All Products
- product.product
- P%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Manufactured Product
- product.product
- CP%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Manufactured Components
- product.product
- BJ%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Sourced Material
- product.product
- BC%(y)s%(month)s
- 5
-
- True
-
-
-
- Sequence for Sourced Product
- product.product
- CL%(y)s%(month)s
- 5
-
- True
-
-
-
-
-
-
- Manufactured Product
- cp
- product
- 1
- 0
-
- Set prefix as "CP" in link sequence
-
-
-
-
- Manufactured Components
- bj
- product
- 0
- 0
-
- Set prefix as "BJ" in link sequence
-
-
-
-
- Components Product
- bc
- product
- 0
- 1
-
- Set prefix as "BC" in link sequence
-
-
-
-
- Sourced Product
- cl
- product
- 1
- 1
-
- Set prefix as "CL" in link sequence
-
-
-
-
-
-
- internal_type
- product.template
- default
-
-
-
-
-
-
diff --git a/app_product_type_sequence/hooks.py b/app_product_type_sequence/hooks.py
deleted file mode 100644
index 4a0ea85d..00000000
--- a/app_product_type_sequence/hooks.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Created on 2017-11-05
-# author: 广州尚鹏,http://www.sunpop.cn
-# email: 300883@qq.com
-# resource of Sunpop
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-# Odoo在线中文用户手册(长期更新)
-# http://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html
-
-# Odoo10离线中文用户手册下载
-# http://www.sunpop.cn/odoo10_user_manual_document_offline/
-# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
-# http://www.sunpop.cn/odoo10_developer_document_offline/
-# description:
-
-def pre_init_hook(cr):
- """
- Updates existing codes matching the default 'New' or
- empty. Primarily this ensures installation does not
- fail for demo data.
- :param cr: database cursor
- :return: void
- """
- cr.execute("UPDATE product_product "
- "SET default_code = '!!PR!!' || id "
- "WHERE default_code IS NULL OR default_code = 'New';")
-
- cr.execute("UPDATE product_template "
- "Set default_code = "
- "(select default_code from product_product "
- "where product_product.product_tmpl_id = product_template.id limit 1)"
- "WHERE default_code IS NULL OR default_code = 'New';")
diff --git a/app_product_type_sequence/i18n/zh_CN.po b/app_product_type_sequence/i18n/zh_CN.po
deleted file mode 100644
index 6e5c7abf..00000000
--- a/app_product_type_sequence/i18n/zh_CN.po
+++ /dev/null
@@ -1,249 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * app_product_type_sequence
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 10.0+e-20171107\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-12-19 13:34+0000\n"
-"PO-Revision-Date: 2017-12-19 13:34+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: app_product_type_sequence
-#: model:ir.model.fields,help:app_product_type_sequence.field_product_internal_type_type
-msgid "A stockable product is a product for which you manage stock. The \"Inventory\" app has to be installed.\n"
-"A consumable product, on the other hand, is a product for which stock is not managed.\n"
-"A service is a non-material product you provide.\n"
-"A digital content is a non-material product you sell online. The files attached to the products are the one that are sold on the e-commerce such as e-books, music, pictures,... The \"Digital Product\" module has to be installed."
-msgstr "A stockable product is a product for which you manage stock. The \"Inventory\" app has to be installed.\n"
-"A consumable product, on the other hand, is a product for which stock is not managed.\n"
-"A service is a non-material product you provide.\n"
-"A digital content is a non-material product you sell online. The files attached to the products are the one that are sold on the e-commerce such as e-books, music, pictures,... The \"Digital Product\" module has to be installed."
-
-#. module: app_product_type_sequence
-#: model:ir.ui.view,arch_db:app_product_type_sequence.product_internal_type_form_view
-msgid "Auto Set Product's Value To:"
-msgstr "自动设置产品默认参数为:"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_purchase_ok
-msgid "Can be Purchased"
-msgstr "可用于采购"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_rental
-msgid "Can be Rent"
-msgstr "可用于出租"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_sale_ok
-msgid "Can be Sold"
-msgstr "可用于销售"
-
-#. module: app_product_type_sequence
-#: model:product.internal.type,name:app_product_type_sequence.internal_type_sourced_material
-msgid "Components Product"
-msgstr "原材料"
-
-#. module: app_product_type_sequence
-#: code:addons/app_product_type_sequence/models/product_internal_type.py:34
-#: selection:product.internal.type,type:0
-#, python-format
-msgid "Consumable"
-msgstr "可消耗"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_create_uid
-msgid "Created by"
-msgstr "创建人"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_create_date
-msgid "Created on"
-msgstr "创建时间"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_category_internal_type
-msgid "Default Internal Type"
-msgstr "默认产品内部类型"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,help:app_product_type_sequence.field_product_internal_type_route_ids
-msgid "Depending on the modules installed, this will allow you to define the route of the product: whether it will be bought, manufactured, MTO/MTS,..."
-msgstr "取决于安装的模块,它允许在产品定义路线:购买,制造,MTO/MTS,等等..."
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_description
-msgid "Description"
-msgstr "说明"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_display_name
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_name
-#: model:ir.ui.view,arch_db:app_product_type_sequence.product_internal_type_form_view
-msgid "Display Name"
-msgstr "显示名称"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_id
-msgid "ID"
-msgstr "ID"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_product_default_code_index
-msgid "Internal Reference Index"
-msgstr "Varient序号"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_product_default_code_stored
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_template_default_code_stored
-msgid "Internal Reference Stored"
-msgstr "主产品编码"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_product_internal_type
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_template_internal_type
-msgid "Internal Type"
-msgstr "内部类型"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type___last_update
-msgid "Last Modified on"
-msgstr "最后修改日"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_write_uid
-msgid "Last Updated by"
-msgstr "最后更新人"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_write_date
-msgid "Last Updated on"
-msgstr "最后更新时间"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_link_sequence
-msgid "Link Sequence"
-msgstr "使用的序列"
-
-#. module: app_product_type_sequence
-#: model:product.internal.type,name:app_product_type_sequence.internal_type_mrp_product
-msgid "Manufactured Product"
-msgstr "制造成品"
-
-#. module: app_product_type_sequence
-#: code:addons/app_product_type_sequence/models/product_product.py:23
-#: code:addons/app_product_type_sequence/models/product_template.py:33
-#, python-format
-msgid "New"
-msgstr "新建"
-
-#. module: app_product_type_sequence
-#: code:addons/app_product_type_sequence/models/product_template.py:41
-#, python-format
-msgid "Please save product first before adding varients!"
-msgstr "增加产品变体前,请先保存当前产品!"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,help:app_product_type_sequence.field_product_internal_type_sequence_prefix
-msgid "Prefix value of the record for the sequence"
-msgstr "序列记录的前缀"
-
-#. module: app_product_type_sequence
-#: model:ir.model,name:app_product_type_sequence.model_product_product
-msgid "Product"
-msgstr "产品"
-
-#. module: app_product_type_sequence
-#: model:ir.model,name:app_product_type_sequence.model_product_category
-msgid "Product Category"
-msgstr "产品类别"
-
-#. module: app_product_type_sequence
-#: model:ir.actions.act_window,name:app_product_type_sequence.internal_type_action
-#: model:ir.ui.menu,name:app_product_type_sequence.menu_internal_type_action_purchase
-#: model:ir.ui.menu,name:app_product_type_sequence.menu_internal_type_action_sale
-#: model:ir.ui.menu,name:app_product_type_sequence.menu_internal_type_action_stock
-#: model:ir.ui.menu,name:app_product_type_sequence.menu_internal_type_action_sys
-#: model:ir.ui.view,arch_db:app_product_type_sequence.product_internal_type_form_view
-#: model:ir.ui.view,arch_db:app_product_type_sequence.product_internal_type_tree_view
-msgid "Product Internal Type"
-msgstr "产品编码类型"
-
-#. module: app_product_type_sequence
-#: model:ir.model,name:app_product_type_sequence.model_product_template
-msgid "Product Template"
-msgstr "产品模板"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_type
-msgid "Product Type"
-msgstr "产品类型"
-
-#. module: app_product_type_sequence
-#: code:addons/app_product_type_sequence/models/product_product.py:83
-#, python-format
-msgid "Product varient can only create in Product view!"
-msgstr "请在产品管理页面增加产品的多属性!"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_route_ids
-msgid "Routes"
-msgstr "路线"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_sequence_prefix
-msgid "Sequence Prefix"
-msgstr "编号前缀"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_sequence
-msgid "Sequence"
-msgstr "显示顺序"
-
-#. module: app_product_type_sequence
-#: code:addons/app_product_type_sequence/models/product_internal_type.py:35
-#: selection:product.internal.type,type:0
-#, python-format
-msgid "Service"
-msgstr "服务"
-
-#. module: app_product_type_sequence
-#: model:product.internal.type,name:app_product_type_sequence.internal_type_sourced_product
-msgid "Sourced Product"
-msgstr "外购成品"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,help:app_product_type_sequence.field_product_internal_type_sale_ok
-msgid "Specify if the product can be selected in a sales order line."
-msgstr "如果产品能在销售单明细在被选择,则指定。"
-
-#. module: app_product_type_sequence
-#: code:addons/app_product_type_sequence/models/product_internal_type.py:36
-#: selection:product.internal.type,type:0
-#, python-format
-msgid "Stockable Product"
-msgstr "可库存产品"
-
-#. module: app_product_type_sequence
-#: sql_constraint:product.internal.type:0
-#: sql_constraint:product.product:0
-msgid "The reference must be unique"
-msgstr "产品内部编码不可重复!"
-
-#. module: app_product_type_sequence
-#: model:ir.model.fields,field_description:app_product_type_sequence.field_product_internal_type_ref
-msgid "Unique Code"
-msgstr "唯一编码"
-
-#. module: app_product_type_sequence
-#: model:ir.model,name:app_product_type_sequence.model_product_internal_type
-msgid "product.internal.type"
-msgstr "product.internal.type"
-
diff --git a/app_product_type_sequence/models/__init__.py b/app_product_type_sequence/models/__init__.py
deleted file mode 100644
index e312570a..00000000
--- a/app_product_type_sequence/models/__init__.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# -*- coding: utf-8 -*-
-import product_template
-import product_product
-import product_category
-import product_internal_type
\ No newline at end of file
diff --git a/app_product_type_sequence/models/product_category.py b/app_product_type_sequence/models/product_category.py
deleted file mode 100644
index 841b8f20..00000000
--- a/app_product_type_sequence/models/product_category.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Created on 2017-11-28
-# author: 广州尚鹏,http://www.sunpop.cn
-# email: 300883@qq.com
-# resource of Sunpop
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-# Odoo在线中文用户手册(长期更新)
-# http://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html
-
-# Odoo10离线中文用户手册下载
-# http://www.sunpop.cn/odoo10_user_manual_document_offline/
-# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
-# http://www.sunpop.cn/odoo10_developer_document_offline/
-# description:
-
-from openerp import api, fields, models, exceptions, _
-
-
-class ProductCategory(models.Model):
- _name = "product.category"
- _inherit = ['product.category']
-
- internal_type = fields.Many2one(
- 'product.internal.type', 'Default Internal Type',
- auto_join=True, required=False)
diff --git a/app_product_type_sequence/models/product_internal_type.py b/app_product_type_sequence/models/product_internal_type.py
deleted file mode 100644
index 5b8690f8..00000000
--- a/app_product_type_sequence/models/product_internal_type.py
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Created on 2017-11-05
-# author: 广州尚鹏,http://www.sunpop.cn
-# email: 300883@qq.com
-# resource of Sunpop
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-# Odoo在线中文用户手册(长期更新)
-# http://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html
-
-# Odoo10离线中文用户手册下载
-# http://www.sunpop.cn/odoo10_user_manual_document_offline/
-# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
-# http://www.sunpop.cn/odoo10_developer_document_offline/
-# description:
-
-from openerp import api, fields, models, _
-
-
-class ProductInternalType(models.Model):
- _name = "product.internal.type"
- _order = 'sequence, name'
-
- sequence = fields.Integer('Sequence', default=9)
- name = fields.Char('Display Name', default='Normal', translate=True)
- description = fields.Char('Description')
- ref = fields.Char('Unique Code', required=True)
-
- link_sequence = fields.Many2one(
- 'ir.sequence', 'Link Sequence',
- auto_join=True, required=True, domain="[('code', '=', 'product.product')]")
- sequence_prefix = fields.Char(u'Sequence Prefix', related='link_sequence.prefix', readonly=True, store=False)
- # 各种默认值,填则自动录入,不填则不管
- type = fields.Selection([
- ('consu', _('Consumable')),
- ('service', _('Service')),
- ('product', _('Stockable Product'))], string='Product Type',
- help='A stockable product is a product for which you manage stock. The "Inventory" app has to be installed.\n'
- 'A consumable product, on the other hand, is a product for which stock is not managed.\n'
- 'A service is a non-material product you provide.\n'
- 'A digital content is a non-material product you sell online. The files attached to the products are the one that are sold on '
- 'the e-commerce such as e-books, music, pictures,... The "Digital Product" module has to be installed.')
-
- rental = fields.Boolean('Can be Rent')
- sale_ok = fields.Boolean(
- 'Can be Sold', default=True,
- help="Specify if the product can be selected in a sales order line.")
- purchase_ok = fields.Boolean('Can be Purchased', default=True)
-
- # 使用目录的默认路线来处理,暂时不用内部类型路线
- route_ids = fields.Many2many('stock.location.route', string='Routes',
- domain=[('product_selectable', '=', True)],
- help="Depending on the modules installed, this will allow you to define the route of the product: whether it will be bought, manufactured, MTO/MTS,...")
-
- company_id = fields.Many2one(
- 'res.company', 'Company',
- default=lambda self: self.env.user.company_id.id, index=1)
-
- _sql_constraints = [
- ('uniq_ref',
- 'unique(ref)',
- 'The reference must be unique'),
- ]
\ No newline at end of file
diff --git a/app_product_type_sequence/models/product_product.py b/app_product_type_sequence/models/product_product.py
deleted file mode 100644
index 28ded679..00000000
--- a/app_product_type_sequence/models/product_product.py
+++ /dev/null
@@ -1,140 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Created on 2017-01-09
-# author: 广州尚鹏,http://www.sunpop.cn
-# email: 300883@qq.com
-# resource of Sunpop
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-# Odoo在线中文用户手册(长期更新)
-# http://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html
-
-# Odoo10离线中文用户手册下载
-# http://www.sunpop.cn/odoo10_user_manual_document_offline/
-# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
-# http://www.sunpop.cn/odoo10_developer_document_offline/
-# description:
-from openerp import models, fields, api, exceptions, _
-
-
-class ProductProduct(models.Model):
- _inherit = 'product.product'
-
- default_code = fields.Char('Internal Reference', index=True, default=lambda self: _('New'), copy=False)
- default_code_index = fields.Integer('Internal Reference Index', readonly=True)
-
- # todo: 检查数据,要保证数据唯一性
- _sql_constraints = [
- ('uniq_default_code',
- 'unique(default_code)',
- 'The reference must be unique'),
- ]
-
- @api.model
- def default_get(self, fields):
- context = self._context or {}
- res = super(ProductProduct, self).default_get(fields)
- # 内部编码类型默认值的录入
- if context.get("default_internal_type"):
- self._onchange_internal_type()
- elif context.get("default_internal_type_ref"):
- types = self.env['product.internal.type'].search_read([('ref', '=', context.get("default_internal_type_ref"))], limit=1)
- if types:
- res.update({'internal_type':types[0]['id']})
- self._onchange_internal_type()
- return res
-
- @api.model
- def create(self, vals):
- # todo: but 先建空白产品后,编辑2个以上变体,序号会少个 -1
- # code_index: 当没有变体现时,值为0,有变体时,为该变体序号
- code_index = 0
- if 'default_code' not in vals or vals['default_code'] == _('New'):
- if 'product_tmpl_id' in vals:
- # 按产品模板创建产品,有多种情况
- template = self.env['product.template'].search([('id', '=', vals['product_tmpl_id'])], limit=1)
- if template.default_code and template.default_code != '':
- code_stored = template.default_code
- else:
- code_stored = template.default_code_stored
- if not code_stored:
- code_stored = ''
- mylen = len(template.product_variant_ids)
- try:
- attr = vals['attribute_value_ids'][0][2]
- except:
- attr = 0
-
- # if self.env.context.get('create_from_tmpl') and not(attr): 此条件已限制,不让在template中先直接创建变体,要求先保存
- if self.env.context.get('create_from_tmpl') and not(attr):
- # 从产品模板创建的第一个sku产品,不带属性
- # 没有属性值,则是单规格产品。attribute_value_ids格式为[6,0,[]]。多规格时,attribute_value_ids格式为[6,0,[x]]
- code_index = 0
- vals['default_code_index'] = code_index
- vals['default_code'] = code_stored
- elif mylen == 0:
- # 有属性值了,自己是第一个规格
- code_index = 1
- vals['default_code_index'] = code_index
- vals['default_code'] = code_stored + '#%03d'%(code_index)
- elif mylen == 1:
- # 已存在1个,当存在的1个有属性时,要改已存在的product值
- code_index = template.product_variant_ids[:1].default_code_index
- if template.product_variant_ids[:1].attribute_value_ids:
- if code_index == 0:
- code_index = 1
- template.product_variant_ids[:1].default_code_index = code_index
- template.product_variant_ids[:1].default_code = code_stored + '#%03d'%(code_index)
- # 接着改当前操作的product值
- code_index = code_index + 1
- vals['default_code_index'] = code_index
- vals['default_code'] = code_stored + '#%03d'%(code_index)
- elif mylen > 1:
- # 找到最大的序号
- variant_max = max(template.product_variant_ids,key=lambda x: x['default_code_index'])
- code_index = variant_max['default_code_index'] + 1
- vals['default_code_index'] = code_index
- vals['default_code'] = code_stored + '#%03d'%(code_index)
- else:
- # 当按模板
- # 此条件常规不出现,但特殊项目会有
- variant_max = max(template.product_variant_ids,key=lambda x: x['default_code_index'])
- code_index = variant_max['default_code_index'] + 1
- vals['default_code_index'] = code_index
- vals['default_code'] = code_stored + '#%03d'%(code_index)
- else:
- # create from product_product
- # 默认使用制造成品的编码
- sequence = self.env.ref('app_product_type_sequence.internal_type_mrp_product', raise_if_not_found=False)
- if 'internal_type' in vals:
- sequence = self.env['product.internal.type'].search([('id', '=', vals['internal_type'])], limit=1)
- vals['default_code'] = sequence.link_sequence.next_by_id()
- else:
- # 如果有自己输入 ref,则不需要自运输生成
- # sequence = self.env['product.internal.type'].search([('id', '=', vals['internal_type'])], limit=1)
- # if sequence:
- # vals['default_code'] = sequence.link_sequence.next_by_id()
- pass
- return super(ProductProduct, self).create(vals)
-
- @api.multi
- def copy(self, default=None):
- if len(self.product_tmpl_id.product_variant_ids)>1 :
- raise exceptions.ValidationError(_('Product varient can only create in Product view!'))
- return super(ProductProduct, self).copy(default=None)
-
- # 当内部类型变化时,改变产品的各默认值
- @api.onchange('internal_type')
- def _onchange_internal_type(self):
- if self.internal_type:
- self.type = self.internal_type.type
- self.rental = self.internal_type.rental
- self.sale_ok = self.internal_type.sale_ok
- self.purchase_ok = self.internal_type.purchase_ok
- self.route_ids = self.internal_type.route_ids
-
- # 分类变动时,如果分类绑定了内部类型则联动
- @api.onchange('categ_id')
- def _onchange_cate_id(self):
- if self.categ_id and self.categ_id.internal_type:
- self.internal_type = self.categ_id.internal_type
\ No newline at end of file
diff --git a/app_product_type_sequence/models/product_template.py b/app_product_type_sequence/models/product_template.py
deleted file mode 100644
index bd51b4a0..00000000
--- a/app_product_type_sequence/models/product_template.py
+++ /dev/null
@@ -1,101 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Created on 2017-11-05
-# author: 广州尚鹏,http://www.sunpop.cn
-# email: 300883@qq.com
-# resource of Sunpop
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-# Odoo在线中文用户手册(长期更新)
-# http://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html
-
-# Odoo10离线中文用户手册下载
-# http://www.sunpop.cn/odoo10_user_manual_document_offline/
-# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
-# http://www.sunpop.cn/odoo10_developer_document_offline/
-# description:
-
-from openerp import api, fields, models, exceptions, _
-
-
-class ProductTemplate(models.Model):
- _name = "product.template"
- _inherit = ['product.template']
-
- # auto_join只要搜索product.template,自动会join。如果经常用到 internal_type 效率会高。
- internal_type = fields.Many2one(
- 'product.internal.type', 'Internal Type',
- auto_join=True, required=True)
-
- default_code = fields.Char(
- 'Internal Reference',
- compute='_compute_default_code',
- inverse='_set_default_code',
- store=True, default=lambda self: _('New'), copy=False)
- # 因为default_code有odoo的处理方式,影响面大,故会将其另存到 default_code_stored
- default_code_stored = fields.Char('Internal Reference Stored',
- default=lambda self: _('New'))
-
- @api.model
- def default_get(self, fields):
- context = self._context or {}
- res = super(ProductTemplate, self).default_get(fields)
- # 内部编码类型默认值的录入
- if context.get("default_internal_type"):
- self._onchange_internal_type()
- elif context.get("default_internal_type_ref"):
- types = self.env['product.internal.type'].search_read([('ref', '=', context.get("default_internal_type_ref"))], limit=1)
- if types:
- res.update({'internal_type':types[0]['id']})
- self._onchange_internal_type()
- return res
-
- @api.model
- def create(self, vals):
- if 'attribute_line_ids' in vals:
- if len(vals['attribute_line_ids'])>0:
- raise exceptions.ValidationError(_('Please save product first before adding varients!'))
-
- if 'default_code' not in vals or vals['default_code'] == _('New'):
- sequence = self.env['product.internal.type'].search([('id', '=', vals['internal_type'])], limit=1)
- if not sequence:
- sequence = self.env.ref('app_product_type_sequence.internal_type_mrp_product', raise_if_not_found=False)
- vals['default_code'] = sequence.link_sequence.next_by_id()
- else:
- pass
-
- if vals['default_code']:
- vals['default_code_stored'] = vals['default_code']
-
- return super(ProductTemplate, self).create(vals)
-
- @api.depends('product_variant_ids', 'product_variant_ids.default_code')
- def _compute_default_code(self):
- unique_variants = self.filtered(lambda template: len(template.product_variant_ids) == 1)
- # 设置default_code
- for template in unique_variants:
- template.default_code = template.product_variant_ids.default_code
- for template in (self - unique_variants):
- if len(template.product_variant_ids)>1:
- template.default_code = ''
-
- @api.one
- def _set_default_code(self):
- if len(self.product_variant_ids) == 1:
- self.product_variant_ids.default_code = self.default_code_stored
-
- # 当内部类型变化时,改变产品模板的各默认值
- @api.onchange('internal_type')
- def _onchange_internal_type(self):
- if self.internal_type:
- self.type = self.internal_type.type
- self.rental = self.internal_type.rental
- self.sale_ok = self.internal_type.sale_ok
- self.purchase_ok = self.internal_type.purchase_ok
- self.route_ids = self.internal_type.route_ids
-
- # 分类变动时,如果分类绑定了内部类型则联动
- @api.onchange('categ_id')
- def _onchange_cate_id(self):
- if self.categ_id and self.categ_id.internal_type:
- self.internal_type = self.categ_id.internal_type
\ No newline at end of file
diff --git a/app_product_type_sequence/security/ir.model.access.csv b/app_product_type_sequence/security/ir.model.access.csv
deleted file mode 100644
index 02697c29..00000000
--- a/app_product_type_sequence/security/ir.model.access.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_sale_order_type_manager,access_sale_order_type_manager,model_product_internal_type,sales_team.group_sale_manager,1,1,1,1
-access_sale_order_type_salesman,access_sale_order_type_salesman,model_product_internal_type,sales_team.group_sale_salesman,1,0,0,0
diff --git a/app_product_type_sequence/security/security.xml b/app_product_type_sequence/security/security.xml
deleted file mode 100644
index c3ab0e2f..00000000
--- a/app_product_type_sequence/security/security.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
- Product Internal Type multi-company
-
- ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
-
-
-
-
-
-
diff --git a/app_product_type_sequence/static/description/icon.png b/app_product_type_sequence/static/description/icon.png
deleted file mode 100644
index 2a04f219..00000000
Binary files a/app_product_type_sequence/static/description/icon.png and /dev/null differ
diff --git a/app_product_type_sequence/static/description/index.html b/app_product_type_sequence/static/description/index.html
deleted file mode 100644
index ecb4de17..00000000
--- a/app_product_type_sequence/static/description/index.html
+++ /dev/null
@@ -1,171 +0,0 @@
-
-
-
App Product Auto Sequence, Auto Code(Variants Supported), Auto Attributes
-
-
- This module allows to associate a sequence to the product reference.
- The reference (default code) is unique (SQL constraint) and required.
- Support Product with or without Variants.
-
-
-
- Auto Sequence or code for every product.
-
-
- Auto Sequence or for every product variants, like product20171130-001.
-
-
- Product code must be Unique.
-
-
- Define different product type, each product type use own rule of sequence.
-
-
- Quick access in sale , inventory, system menu.
-
-
- Multi language support.
-
-
- Setup default Auto Sequence for each product category.
-
-
- Auto setup product attribute lik Sale/Purchase, Stockable/Consumable/Service, Stock Routes.
-
-
-
-
-
-
-
-
-
-
-
-
Sample Rule: if we create on oct 2017
-
-
- Manufactured Products: M20171100001
-
-
- Components Products: C20171100001
-
-
- Sourced Products: S20171100001
-
-
-
- Sepcial for variants. add [-00?]
-
-
- Products with color[red]: M20171100001#001
-
-
- Products with color[blue]: M20171100001#002
-
-
- Products with color[white]: M20171100001#003
-
-
-
-
Installation:
-
- Prior to installing this module, if you have any existing products you should ensure they already have a
- unique reference (or no reference) set.
- Products with a default_code of '/' or empty will automatically be assigned a code of "!!DP!!" followed
- by the system id for that product.
- Otherwise the setting of the unique constraint will fail and the module will fail to install.
-
- Notice:
- Odoo product variants is very special.
- When u create a product(not product template) with attribute, It would delete the first product, which
- have no attribute.
- So it's very normal that the first product variants begin wit ???-002.
- And we make a rule that the product variants can only create after you create normal product template.
-
-
How to use: Very simple
-
- After installed the app. You can Go to anyone of the menu:
-
-
- Sales->Configuration->Products->Product Internal Type
-
-
- Inventory->Configuration->Products->Product Internal Type
-
-
- Settings->Sequences & Identifiers->Product Internal Type
-
-
-
-
- You would see the default Product Intertype we create.
-
-
-
-
-
-
- And create the product and code by yourself.
-
-
-
-
-
- Notice: The "Sequence Code" Field of sequence must be "product.product"
-
-
-
-
- Go to Prior to installing this module, if you have any existing products you should ensure they already have
- a
- unique reference (or no reference) set.
- Products with a default_code of '/' or empty will automatically be assigned a code of "!!DP!!" followed
- by the system id for that product.
- Otherwise the setting of the unique constraint will fail and the module will fail to install.
-
- Notice:
- Odoo product variants is very special.
- When u create a product(not product template) with attribute, It would delete the first product, which
- have no attribute.
- So it's very normal that the first product variants begin wit ???-002.
- And we make a rule that the product variants can only create after you create normal product template.
-
-
-
-
-
-
-
-
-
-
-
-
Technical Help & Support
-
-
-
-
- For any type of technical help & support requests, Feel free to contact us
This moduld allows user to Search by date or number range in List view and Pivot view.
-
-
-
1.List all the date/datetime field to select range
-
2.List all the integer/float/Monetary field to select range
-
3.Auto get user timezone, global Timezone supported.
-
4.Easy admin to enable/disable the search.
-
-
-
-
5.Instructions for Activating List background color property.
-
6.Reset the barcode format.
-
-
-
-
-
-
-
-
Date range
-
-
-
-
-
-
-
-
-
Value range
-
-
-
-
-
-
-
-
-
Pivot View
-
-
-
-
-
-
-
-
-
How to setup
-
-
There are 2 way to setup
-
1.Go to Menu: Settings->odooApp->UI Enhance
-
Setup what you need
-
-
-
-
2. Go to Menu: Settings->Technical->Parameters->System Parameters
-
You can find "app_ui_show_search_date" and "app_ui_show_search_number"
-
Go to Menu: Settings->Technical->Parameters->System Parameters.
-
Set the Value to "False" if you do not want to show the search. And set "True" to show.
-
-
-
-
-
-
-
-
-
Web list View Background Color
-
-
This module changes the line color of records based on condition like state of a record and helps distinguish between different sets of
- records based on condition.