From 51f483afa6895d093e5c9c6e5d510eb818d27b7e Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Wed, 9 May 2018 09:39:57 -0700 Subject: [PATCH 001/131] Initial commit of `stock_picklist` for 11.0 --- stock_picklist/README.rst | 16 ++++++ stock_picklist/__init__.py | 2 + stock_picklist/__manifest__.py | 24 +++++++++ stock_picklist/models/__init__.py | 1 + stock_picklist/models/stock_picking_batch.py | 13 +++++ stock_picklist/report/__init__.py | 1 + stock_picklist/report/stock_picklist.py | 36 ++++++++++++++ stock_picklist/report/stock_picklist.xml | 51 ++++++++++++++++++++ stock_picklist/views/stock_views.xml | 13 +++++ 9 files changed, 157 insertions(+) create mode 100644 stock_picklist/README.rst create mode 100644 stock_picklist/__init__.py create mode 100644 stock_picklist/__manifest__.py create mode 100644 stock_picklist/models/__init__.py create mode 100644 stock_picklist/models/stock_picking_batch.py create mode 100644 stock_picklist/report/__init__.py create mode 100644 stock_picklist/report/stock_picklist.py create mode 100644 stock_picklist/report/stock_picklist.xml create mode 100644 stock_picklist/views/stock_views.xml diff --git a/stock_picklist/README.rst b/stock_picklist/README.rst new file mode 100644 index 00000000..af019c78 --- /dev/null +++ b/stock_picklist/README.rst @@ -0,0 +1,16 @@ +********************** +Hibou - Stock Picklist +********************** + +Adds a `Picklist` button to picking batches (waves) that provides a summary grouped by location +and product for all of the pickings in the batch. + +For more information and add-ons, visit `Hibou.io `_. + + +======= +License +======= + +Please see `LICENSE `_. +Copyright Hibou Corp. 2018 \ No newline at end of file diff --git a/stock_picklist/__init__.py b/stock_picklist/__init__.py new file mode 100644 index 00000000..59b4cb50 --- /dev/null +++ b/stock_picklist/__init__.py @@ -0,0 +1,2 @@ +from . import report +from . import models diff --git a/stock_picklist/__manifest__.py b/stock_picklist/__manifest__.py new file mode 100644 index 00000000..a9773b1c --- /dev/null +++ b/stock_picklist/__manifest__.py @@ -0,0 +1,24 @@ +{ + 'name': 'Stock Picklist', + 'version': '11.0.1.0.0', + 'category': 'Tools', + 'depends': [ + 'stock_picking_batch', + ], + 'description': """ +Stock Picklist +============== + +Adds a `Picklist` button to picking batches (waves) that provides a summary grouped by location +and product for all of the pickings in the batch. + """, + 'author': 'Hibou Corp.', + 'license': 'AGPL-3', + 'website': 'https://hibou.io/', + 'data': [ + 'report/stock_picklist.xml', + 'views/stock_views.xml', + ], + 'installable': True, + 'application': False, +} diff --git a/stock_picklist/models/__init__.py b/stock_picklist/models/__init__.py new file mode 100644 index 00000000..07b5490f --- /dev/null +++ b/stock_picklist/models/__init__.py @@ -0,0 +1 @@ +from . import stock_picking_batch diff --git a/stock_picklist/models/stock_picking_batch.py b/stock_picklist/models/stock_picking_batch.py new file mode 100644 index 00000000..9dfd37ff --- /dev/null +++ b/stock_picklist/models/stock_picking_batch.py @@ -0,0 +1,13 @@ +from odoo import api, fields, models, _ +from odoo.exceptions import UserError + + +class StockPickingBatch(models.Model): + _inherit = 'stock.picking.batch' + + @api.multi + def print_pick_list(self): + pickings = self.mapped('picking_ids') + if not pickings: + raise UserError(_('Nothing to print.')) + return self.env.ref('stock_picklist.picklist').report_action(pickings, data=None, config=False) diff --git a/stock_picklist/report/__init__.py b/stock_picklist/report/__init__.py new file mode 100644 index 00000000..4927808c --- /dev/null +++ b/stock_picklist/report/__init__.py @@ -0,0 +1 @@ +from . import stock_picklist diff --git a/stock_picklist/report/stock_picklist.py b/stock_picklist/report/stock_picklist.py new file mode 100644 index 00000000..0ad44148 --- /dev/null +++ b/stock_picklist/report/stock_picklist.py @@ -0,0 +1,36 @@ +from odoo import api, models +from collections import namedtuple + +LocationGroup = namedtuple('LocationGroup', ('location_id', 'lines')) +ProductGroup = namedtuple('ProductGroup', ('product_id', 'qty')) + + +class StockPicklist(models.AbstractModel): + _name = 'report.stock_picklist.report_picklist' + _template = 'stock_picklist.report_picklist' + + @api.model + def get_report_values(self, docids, data=None): + report_name = 'stock_picklist.report_picklist' + report = self.env['ir.actions.report']._get_report_from_name(report_name) + stock_pickings = self.env['stock.picking'].browse(docids) + stock_pack_operations = stock_pickings.mapped(lambda o: o.move_lines).mapped(lambda l: l.move_line_ids) + + locations = stock_pack_operations.mapped(lambda o: o.location_id) + _l = [] + for location in locations: + operations = stock_pack_operations.filtered(lambda o: o.location_id.id == location.id) + products = operations.mapped(lambda o: o.product_id) + _p = [] + for product in products: + qty = sum(operations.filtered(lambda o: o.product_id.id == product.id).mapped(lambda o: o.product_qty)) + _p.append(ProductGroup(product_id=product, qty=int(qty))) + _p = sorted(_p, key=lambda p: -p.qty) + _l.append(LocationGroup(location_id=location, lines=_p)) + + _l = sorted(_l, key=lambda l: l.location_id.name) + return { + 'doc_ids': docids, + 'doc_model': report.model, + 'docs': _l, + } diff --git a/stock_picklist/report/stock_picklist.xml b/stock_picklist/report/stock_picklist.xml new file mode 100644 index 00000000..6803e0bd --- /dev/null +++ b/stock_picklist/report/stock_picklist.xml @@ -0,0 +1,51 @@ + + + + + + + + \ No newline at end of file diff --git a/stock_picklist/views/stock_views.xml b/stock_picklist/views/stock_views.xml new file mode 100644 index 00000000..16f009c2 --- /dev/null +++ b/stock_picklist/views/stock_views.xml @@ -0,0 +1,13 @@ + + + + stock.picking.batch.form.form + stock.picking.batch + + + + + + + + + + + + + \ No newline at end of file From ae36444b67fa1dd207dbe7fd32dde4c8686db43d Mon Sep 17 00:00:00 2001 From: Bhoomi Date: Fri, 13 Sep 2019 12:41:33 -0400 Subject: [PATCH 024/131] MIG `maintenance_purchase_detail` For Odoo 12.0 --- maintenance_purchase_detail/__manifest__.py | 2 +- maintenance_purchase_detail/views/maintenance_views.xml | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/maintenance_purchase_detail/__manifest__.py b/maintenance_purchase_detail/__manifest__.py index e688ea32..79508ba7 100644 --- a/maintenance_purchase_detail/__manifest__.py +++ b/maintenance_purchase_detail/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Equipment Purchase Detail', - 'version': '11.0.1.0.0', + 'version': '12.0.1.0.0', 'author': 'Hibou Corp. ', 'category': 'Human Resources', 'summary': 'Record purchase date and details on Equipments.', diff --git a/maintenance_purchase_detail/views/maintenance_views.xml b/maintenance_purchase_detail/views/maintenance_views.xml index 5a2a9777..3a1bab21 100644 --- a/maintenance_purchase_detail/views/maintenance_views.xml +++ b/maintenance_purchase_detail/views/maintenance_views.xml @@ -5,12 +5,7 @@ maintenance.equipment - - - - + From ad69b8257223dfc1eff86df85c54b7d77f475ffa Mon Sep 17 00:00:00 2001 From: Bhoomi Date: Fri, 13 Sep 2019 17:27:36 -0400 Subject: [PATCH 025/131] MIG `maintenance_purchase_detail` For Odoo 13.0 --- maintenance_purchase_detail/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maintenance_purchase_detail/__manifest__.py b/maintenance_purchase_detail/__manifest__.py index 79508ba7..5d6bce51 100644 --- a/maintenance_purchase_detail/__manifest__.py +++ b/maintenance_purchase_detail/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Equipment Purchase Detail', - 'version': '12.0.1.0.0', + 'version': '13.0.1.0.0', 'author': 'Hibou Corp. ', 'category': 'Human Resources', 'summary': 'Record purchase date and details on Equipments.', From 32ab0b8188709958faf643c34e4d9fb9cbea5e35 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Fri, 13 Apr 2018 09:52:13 -0700 Subject: [PATCH 026/131] Add `delivery_partner`, `delivery_partner_dhl`, `delivery_partner_fedex`, `delivery_partner_ups` --- delivery_partner/__init__.py | 1 + delivery_partner/__manifest__.py | 24 +++++ delivery_partner/models/__init__.py | 1 + delivery_partner/models/delivery.py | 44 +++++++++ delivery_partner/security/ir.model.access.csv | 2 + delivery_partner/views/delivery_views.xml | 90 +++++++++++++++++++ 6 files changed, 162 insertions(+) create mode 100644 delivery_partner/__init__.py create mode 100755 delivery_partner/__manifest__.py create mode 100644 delivery_partner/models/__init__.py create mode 100644 delivery_partner/models/delivery.py create mode 100644 delivery_partner/security/ir.model.access.csv create mode 100644 delivery_partner/views/delivery_views.xml diff --git a/delivery_partner/__init__.py b/delivery_partner/__init__.py new file mode 100644 index 00000000..0650744f --- /dev/null +++ b/delivery_partner/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/delivery_partner/__manifest__.py b/delivery_partner/__manifest__.py new file mode 100755 index 00000000..ca0582e6 --- /dev/null +++ b/delivery_partner/__manifest__.py @@ -0,0 +1,24 @@ +{ + 'name': 'Partner Shipping Accounts', + 'author': 'Hibou Corp. ', + 'version': '11.0.1.0.0', + 'category': 'Stock', + 'sequence': 95, + 'summary': 'Record shipping account numbers on partners.', + 'description': """ +Record shipping account numbers on partners. + +* Customer Shipping Account Model + """, + 'website': 'https://hibou.io/', + 'depends': [ + 'delivery', + 'contacts', + ], + 'data': [ + 'security/ir.model.access.csv', + 'views/delivery_views.xml', + ], + 'installable': True, + 'application': False, +} diff --git a/delivery_partner/models/__init__.py b/delivery_partner/models/__init__.py new file mode 100644 index 00000000..be8cabd6 --- /dev/null +++ b/delivery_partner/models/__init__.py @@ -0,0 +1 @@ +from . import delivery diff --git a/delivery_partner/models/delivery.py b/delivery_partner/models/delivery.py new file mode 100644 index 00000000..5950e759 --- /dev/null +++ b/delivery_partner/models/delivery.py @@ -0,0 +1,44 @@ +from odoo import api, fields, models + + +class Partner(models.Model): + _inherit = 'res.partner' + + shipping_account_ids = fields.One2many('partner.shipping.account', 'partner_id', string='Shipping Accounts') + + +class SaleOrder(models.Model): + _inherit = 'sale.order' + + shipping_account_id = fields.Many2one('partner.shipping.account', string='Shipping Account') + + +class PartnerShippingAccount(models.Model): + _name = 'partner.shipping.account' + + name = fields.Char(string='Account Num.', required=True) + partner_id = fields.Many2one('res.partner', string='Partner', help='Leave blank to allow as a generic 3rd party shipper.') + delivery_type = fields.Selection([ + ('other', 'Other'), + ], string='Carrier', required=True) + note = fields.Text(string='Internal Note') + + @api.multi + def name_get(self): + delivery_types = self._fields['delivery_type']._description_selection(self.env) + + def get_name(value): + name = [n for v, n in delivery_types if v == value] + return name[0] if name else 'Undefined' + + res = [] + for acc in self: + res.append((acc.id, '%s: %s' % (get_name(acc.delivery_type), acc.name))) + return res + + @api.constrains('name', 'delivery_type') + def _check_validity(self): + for acc in self: + check = getattr(acc, acc.delivery_type + '_check_validity', None) + if check: + return check() diff --git a/delivery_partner/security/ir.model.access.csv b/delivery_partner/security/ir.model.access.csv new file mode 100644 index 00000000..3db88333 --- /dev/null +++ b/delivery_partner/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_partner_shipping_account,partner.shipping.account,model_partner_shipping_account,base.group_partner_manager,1,1,1,1 diff --git a/delivery_partner/views/delivery_views.xml b/delivery_partner/views/delivery_views.xml new file mode 100644 index 00000000..d422ebea --- /dev/null +++ b/delivery_partner/views/delivery_views.xml @@ -0,0 +1,90 @@ + + + + partner.shipping.account.tree + partner.shipping.account + + + + + + + + + + + partner.shipping.account.form + partner.shipping.account + +
+ + + + + + + + + + + +
+
+
+ + + partner.shipping.account.search + partner.shipping.account + + + + + + + + + + + Shipping Accounts + partner.shipping.account + form + tree,form + +

+ No accounts +

+
+
+ + + + + + res.partner.carrier.property.form.inherit + res.partner + + + + + + + + + + + + + + + delivery.sale.order.form.view.with_carrier.inherit + sale.order + + + + + + + +
From b14fce784505b59f423ef67dbcf0c4d2754d13a3 Mon Sep 17 00:00:00 2001 From: Kristen Marie Kulha Date: Fri, 11 May 2018 18:26:33 -0700 Subject: [PATCH 027/131] Improve presentation by adding `description` to the shipping account by the end user. --- delivery_partner/models/delivery.py | 6 +++++- delivery_partner/views/delivery_views.xml | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/delivery_partner/models/delivery.py b/delivery_partner/models/delivery.py index 5950e759..6838d384 100644 --- a/delivery_partner/models/delivery.py +++ b/delivery_partner/models/delivery.py @@ -17,6 +17,7 @@ class PartnerShippingAccount(models.Model): _name = 'partner.shipping.account' name = fields.Char(string='Account Num.', required=True) + description = fields.Char(string='Description') partner_id = fields.Many2one('res.partner', string='Partner', help='Leave blank to allow as a generic 3rd party shipper.') delivery_type = fields.Selection([ ('other', 'Other'), @@ -33,7 +34,10 @@ class PartnerShippingAccount(models.Model): res = [] for acc in self: - res.append((acc.id, '%s: %s' % (get_name(acc.delivery_type), acc.name))) + if acc.description: + res.append((acc.id, acc.description)) + else: + res.append((acc.id, '%s: %s' % (get_name(acc.delivery_type), acc.name))) return res @api.constrains('name', 'delivery_type') diff --git a/delivery_partner/views/delivery_views.xml b/delivery_partner/views/delivery_views.xml index d422ebea..7f888688 100644 --- a/delivery_partner/views/delivery_views.xml +++ b/delivery_partner/views/delivery_views.xml @@ -5,6 +5,7 @@ partner.shipping.account + @@ -21,6 +22,7 @@ + @@ -37,6 +39,7 @@ partner.shipping.account + @@ -69,6 +72,7 @@ + From 13e9c82d31f8527650661098a0e8106dbba4e32b Mon Sep 17 00:00:00 2001 From: Kristen Marie Kulha Date: Fri, 8 Jun 2018 10:52:51 -0700 Subject: [PATCH 028/131] Add README. --- delivery_partner/README.rst | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 delivery_partner/README.rst diff --git a/delivery_partner/README.rst b/delivery_partner/README.rst new file mode 100644 index 00000000..c3eace22 --- /dev/null +++ b/delivery_partner/README.rst @@ -0,0 +1,24 @@ +********************************* +Hibou - Partner Shipping Accounts +********************************* + +Records shipping account numbers on partners. + +For more information and add-ons, visit `Hibou.io `_. + + +============= +Main Features +============= + +* New model: Customer Shipping Account +* Includes manager-level access permissions. + + +======= +License +======= + +Please see `LICENSE `_. + +Copyright Hibou Corp. 2018 From 880c50c4431ffb63c3cc46b8ba969581c96ae84e Mon Sep 17 00:00:00 2001 From: Kristen Marie Kulha Date: Fri, 8 Jun 2018 12:21:10 -0700 Subject: [PATCH 029/131] Add screenshot. --- delivery_partner/README.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/delivery_partner/README.rst b/delivery_partner/README.rst index c3eace22..e527d2bc 100644 --- a/delivery_partner/README.rst +++ b/delivery_partner/README.rst @@ -14,6 +14,11 @@ Main Features * New model: Customer Shipping Account * Includes manager-level access permissions. +.. image:: https://user-images.githubusercontent.com/15882954/41176601-e40f8558-6b15-11e8-998e-6a7ee5709c0f.png + :alt: 'Register Payment Detail' + :width: 988 + :align: left + ======= License From 8dd1fcaa54373d9a4888adb48d6cc9909f49e179 Mon Sep 17 00:00:00 2001 From: Bhoomi Date: Mon, 23 Sep 2019 16:11:37 -0400 Subject: [PATCH 030/131] MIG `delivery_partner` For Odoo 13.0 --- delivery_partner/__manifest__.py | 2 +- delivery_partner/models/delivery.py | 1 - delivery_partner/views/delivery_views.xml | 8 ++++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/delivery_partner/__manifest__.py b/delivery_partner/__manifest__.py index ca0582e6..52bb240d 100755 --- a/delivery_partner/__manifest__.py +++ b/delivery_partner/__manifest__.py @@ -1,7 +1,7 @@ { 'name': 'Partner Shipping Accounts', 'author': 'Hibou Corp. ', - 'version': '11.0.1.0.0', + 'version': '13.0.1.0.0', 'category': 'Stock', 'sequence': 95, 'summary': 'Record shipping account numbers on partners.', diff --git a/delivery_partner/models/delivery.py b/delivery_partner/models/delivery.py index 6838d384..72361774 100644 --- a/delivery_partner/models/delivery.py +++ b/delivery_partner/models/delivery.py @@ -24,7 +24,6 @@ class PartnerShippingAccount(models.Model): ], string='Carrier', required=True) note = fields.Text(string='Internal Note') - @api.multi def name_get(self): delivery_types = self._fields['delivery_type']._description_selection(self.env) diff --git a/delivery_partner/views/delivery_views.xml b/delivery_partner/views/delivery_views.xml index 7f888688..edfded9b 100644 --- a/delivery_partner/views/delivery_views.xml +++ b/delivery_partner/views/delivery_views.xml @@ -81,12 +81,12 @@ - - delivery.sale.order.form.view.with_carrier.inherit + + sale.order.form.inherit sale.order - + - + From 81deac33d8ae5f8fc9d87e9f353cd88d567b640b Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Thu, 4 Apr 2019 11:18:00 -0700 Subject: [PATCH 031/131] Initial commit of `project_stage` for 11.0 --- project_stage/__init__.py | 1 + project_stage/__manifest__.py | 20 +++++ project_stage/models/__init__.py | 1 + project_stage/models/project.py | 25 ++++++ project_stage/views/project_views.xml | 114 ++++++++++++++++++++++++++ 5 files changed, 161 insertions(+) create mode 100644 project_stage/__init__.py create mode 100644 project_stage/__manifest__.py create mode 100644 project_stage/models/__init__.py create mode 100644 project_stage/models/project.py create mode 100644 project_stage/views/project_views.xml diff --git a/project_stage/__init__.py b/project_stage/__init__.py new file mode 100644 index 00000000..0650744f --- /dev/null +++ b/project_stage/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/project_stage/__manifest__.py b/project_stage/__manifest__.py new file mode 100644 index 00000000..4f2b62ec --- /dev/null +++ b/project_stage/__manifest__.py @@ -0,0 +1,20 @@ +{ + 'name': 'Project Stages', + 'version': '11.0.1.0.0', + 'author': 'Hibou Corp. ', + 'website': 'https://hibou.io/', + 'license': 'AGPL-3', + 'category': 'Tools', + 'complexity': 'easy', + 'description': """ +Adds stages to Projects themselves. + """, + 'depends': [ + 'project', + ], + 'data': [ + 'views/project_views.xml', + ], + 'installable': True, + 'auto_install': False, +} diff --git a/project_stage/models/__init__.py b/project_stage/models/__init__.py new file mode 100644 index 00000000..351a3ad3 --- /dev/null +++ b/project_stage/models/__init__.py @@ -0,0 +1 @@ +from . import project diff --git a/project_stage/models/project.py b/project_stage/models/project.py new file mode 100644 index 00000000..e9b9c5ea --- /dev/null +++ b/project_stage/models/project.py @@ -0,0 +1,25 @@ +from odoo import api, fields, models, SUPERUSER_ID + + +class ProjectType(models.Model): + _name = 'project.type' + _description = 'Project Stage' + _order = 'sequence, id' + + name = fields.Char(string='Stage Name', required=True, translate=True) + description = fields.Text(translate=True) + sequence = fields.Integer(default=1) + fold = fields.Boolean(string='Folded in Kanban', + help='This stage is folded in the kanban view when there are no records in that stage to display.') + + +class Project(models.Model): + _inherit = 'project.project' + + stage_id = fields.Many2one('project.type', string='Stage', + group_expand='_read_group_stage_ids', track_visibility='onchange', index=True) + + @api.model + def _read_group_stage_ids(self, stages, domain, order): + stage_ids = stages._search([], order=order, access_rights_uid=SUPERUSER_ID) + return stages.browse(stage_ids) diff --git a/project_stage/views/project_views.xml b/project_stage/views/project_views.xml new file mode 100644 index 00000000..0c00bf1e --- /dev/null +++ b/project_stage/views/project_views.xml @@ -0,0 +1,114 @@ + + + + Project Stages + project.type + form + tree,kanban,form + +

+ Click to add a stage in the project pipeline. +

+ Define the steps that will be used by projects. +

+
+
+ + + + + project.type.kanban + project.type + + + + + + + +
+
+
+ +
+
+ +
+ + +
+
+
+
+
+
+ + + project.type.tree + project.type + + + + + + + + + + + + project.type.search + project.type + + + + + + + + + project.type.form + project.type + +
+ + + + + + + + + + + +

+ You can also add a description to help your coworkers understand the meaning and purpose of the stage. +

+ +
+
+
+
+
+ + + + project.project.kanban.inherit + project.project + + + + stage_id + quick_create + + + + + + +
\ No newline at end of file From 683ec11c91a640d99f208b3298ece0d309e679bd Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Thu, 4 Apr 2019 14:24:49 -0700 Subject: [PATCH 032/131] IMP `project_stage` Add color to Project Stage, and allow changing stage on Project form view. Additionally, added group by "Stage" to the search view. --- project_stage/__manifest__.py | 2 +- project_stage/models/project.py | 2 ++ project_stage/views/project_views.xml | 41 +++++++++++++++++++++++++-- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/project_stage/__manifest__.py b/project_stage/__manifest__.py index 4f2b62ec..312d9064 100644 --- a/project_stage/__manifest__.py +++ b/project_stage/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Project Stages', - 'version': '11.0.1.0.0', + 'version': '11.0.1.0.1', 'author': 'Hibou Corp. ', 'website': 'https://hibou.io/', 'license': 'AGPL-3', diff --git a/project_stage/models/project.py b/project_stage/models/project.py index e9b9c5ea..82ad9f15 100644 --- a/project_stage/models/project.py +++ b/project_stage/models/project.py @@ -9,6 +9,7 @@ class ProjectType(models.Model): name = fields.Char(string='Stage Name', required=True, translate=True) description = fields.Text(translate=True) sequence = fields.Integer(default=1) + color = fields.Integer('Color Index') fold = fields.Boolean(string='Folded in Kanban', help='This stage is folded in the kanban view when there are no records in that stage to display.') @@ -18,6 +19,7 @@ class Project(models.Model): stage_id = fields.Many2one('project.type', string='Stage', group_expand='_read_group_stage_ids', track_visibility='onchange', index=True) + stage_color = fields.Integer(related='stage_id.color') @api.model def _read_group_stage_ids(self, stages, domain, order): diff --git a/project_stage/views/project_views.xml b/project_stage/views/project_views.xml index 0c00bf1e..5e8f53ad 100644 --- a/project_stage/views/project_views.xml +++ b/project_stage/views/project_views.xml @@ -83,6 +83,7 @@ +
@@ -102,12 +103,48 @@ project.project + - stage_id - quick_create + o_kanban_small_column oe_background_grey o_kanban_dashboard o_project_kanban o_emphasize_colors + + + +
+ + + + +
+
+
+ + + + project.project.form.inherit + project.project + + + +
+ +
+
+ + + +
+
+ + + project.project.select.inherit + project.project + + + + From ca086fe7527975a45ab8204e37e4d6d10edd522a Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Thu, 4 Apr 2019 15:51:08 -0700 Subject: [PATCH 033/131] FIX `project_stage` Added ACL allowing Employees to read project stages, and Project Managers to do all. --- project_stage/__manifest__.py | 1 + project_stage/security/ir.model.access.csv | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 project_stage/security/ir.model.access.csv diff --git a/project_stage/__manifest__.py b/project_stage/__manifest__.py index 312d9064..140c8fa5 100644 --- a/project_stage/__manifest__.py +++ b/project_stage/__manifest__.py @@ -13,6 +13,7 @@ Adds stages to Projects themselves. 'project', ], 'data': [ + 'security/ir.model.access.csv', 'views/project_views.xml', ], 'installable': True, diff --git a/project_stage/security/ir.model.access.csv b/project_stage/security/ir.model.access.csv new file mode 100644 index 00000000..ebea85b2 --- /dev/null +++ b/project_stage/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_project_type,access_project_type,model_project_type,base.group_user,1,0,0,0 +manage_project_type,manage_project_type,model_project_type,project.group_project_manager,1,1,1,1 \ No newline at end of file From ff6b7c74f1c740023b191ffebc749f11d603c34d Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Tue, 23 Jul 2019 15:12:31 -0700 Subject: [PATCH 034/131] MIG `project_stage` to 12.0 --- project_stage/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project_stage/__manifest__.py b/project_stage/__manifest__.py index 140c8fa5..cc6e4a6a 100644 --- a/project_stage/__manifest__.py +++ b/project_stage/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Project Stages', - 'version': '11.0.1.0.1', + 'version': '12.0.1.0.1', 'author': 'Hibou Corp. ', 'website': 'https://hibou.io/', 'license': 'AGPL-3', From 74034de0641e40cfdaf18ef67105972b0ab2cb9a Mon Sep 17 00:00:00 2001 From: Bhoomi Date: Mon, 23 Sep 2019 17:47:31 -0400 Subject: [PATCH 035/131] MIG `project_stage` For Odoo 13.0 --- project_stage/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project_stage/__manifest__.py b/project_stage/__manifest__.py index cc6e4a6a..8582c36d 100644 --- a/project_stage/__manifest__.py +++ b/project_stage/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Project Stages', - 'version': '12.0.1.0.1', + 'version': '13.0.1.0.1', 'author': 'Hibou Corp. ', 'website': 'https://hibou.io/', 'license': 'AGPL-3', From fa4144ec7b53f7c9e1f1b3a31550f601209f818c Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Wed, 23 May 2018 11:50:23 -0700 Subject: [PATCH 036/131] Upgrade `website_project_task` for 11.0 --- website_project_task/__init__.py | 0 website_project_task/__manifest__.py | 25 ++++++++++++ .../project_task_templates.xml | 38 +++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 website_project_task/__init__.py create mode 100644 website_project_task/__manifest__.py create mode 100644 website_project_task/project_task_templates.xml diff --git a/website_project_task/__init__.py b/website_project_task/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/website_project_task/__manifest__.py b/website_project_task/__manifest__.py new file mode 100644 index 00000000..efb95eed --- /dev/null +++ b/website_project_task/__manifest__.py @@ -0,0 +1,25 @@ +{ + 'name': 'Website Project Tasks', + 'version': '11.0.1.0.0', + 'author': 'Hibou Corp. ', + 'website': 'https://hibou.io/', + 'license': 'AGPL-3', + 'category': 'Tools', + 'complexity': 'easy', + 'description': """ +This module adds options to Website Project: +============================================ + +* Tags on Tasks +* Classes on Stages and Tags for CSS hooks. + """, + 'depends': [ + 'project', + ], + 'data': [ + 'project_task_templates.xml', + ], + 'installable': True, + 'auto_install': False, + 'category': 'Hidden', +} diff --git a/website_project_task/project_task_templates.xml b/website_project_task/project_task_templates.xml new file mode 100644 index 00000000..47fd67ac --- /dev/null +++ b/website_project_task/project_task_templates.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + From 035115ad5c20d344b6369b860133838e94e24a34 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Fri, 1 Jun 2018 14:01:50 -0700 Subject: [PATCH 037/131] Fix column names for stage & tag --- website_project_task/project_task_templates.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website_project_task/project_task_templates.xml b/website_project_task/project_task_templates.xml index 47fd67ac..9ddfebe0 100644 --- a/website_project_task/project_task_templates.xml +++ b/website_project_task/project_task_templates.xml @@ -15,7 +15,8 @@ Tags - + + From a3273374d4e787c17be770daf0d772ff5abed54d Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Sat, 3 Nov 2018 16:26:49 -0700 Subject: [PATCH 038/131] ADD security to `project.task.line` and show on website. `website_project_task` module now includes optional template to display Todo List on the task view --- .../project_task_templates.xml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/website_project_task/project_task_templates.xml b/website_project_task/project_task_templates.xml index 9ddfebe0..a64fd695 100644 --- a/website_project_task/project_task_templates.xml +++ b/website_project_task/project_task_templates.xml @@ -36,4 +36,22 @@ + + From 5ff04b7e9b1be11f70d6ae7a330a5fc68c8916d5 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Wed, 13 Feb 2019 12:13:40 -0800 Subject: [PATCH 039/131] FIX Portal access for `project.task.line` --- website_project_task/project_task_templates.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website_project_task/project_task_templates.xml b/website_project_task/project_task_templates.xml index a64fd695..fc9495cc 100644 --- a/website_project_task/project_task_templates.xml +++ b/website_project_task/project_task_templates.xml @@ -38,11 +38,11 @@