Skip to content

Commit

Permalink
[IMP] analytic: split the analytic settings
Browse files Browse the repository at this point in the history
- split the analytic setting into two checkbox analytic accoutn and tags.
- Create a new group for analytic tag and set everywhere to visible if feature is activated
- Added domain on analytic_tag to get tag related to the analytic account.
- Added tag_ids field in analytic entries tree view.
  • Loading branch information
hsh-odoo committed Mar 24, 2017
1 parent f4cba34 commit e94f158
Show file tree
Hide file tree
Showing 14 changed files with 52 additions and 12 deletions.
5 changes: 5 additions & 0 deletions addons/account/models/account_invoice.py
Original file line number Diff line number Diff line change
Expand Up @@ -1227,6 +1227,11 @@ def _default_account(self):
currency_id = fields.Many2one('res.currency', related='invoice_id.currency_id', store=True)
company_currency_id = fields.Many2one('res.currency', related='invoice_id.company_currency_id', readonly=True)

@api.onchange('account_analytic_id')
def _onchange_account_analytic_id(self):
self.analytic_tag_ids = False
return {'domain': {'analytic_tag_ids': [('id', 'in', self.account_analytic_id.tag_ids.ids)]}}

@api.model
def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):
res = super(AccountInvoiceLine, self).fields_view_get(
Expand Down
4 changes: 4 additions & 0 deletions addons/account/models/res_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ class AccountConfigSettings(models.TransientModel):
implied_group='base.group_multi_currency')
group_analytic_accounting = fields.Boolean(string='Analytic Accounting',
implied_group='analytic.group_analytic_accounting')
group_analytic_tag = fields.Boolean(string='Analytic Tags',
implied_group='analytic.group_analytic_tag')
group_warning_account = fields.Boolean(string="Warnings", implied_group='account.group_warning_account')
module_account_asset = fields.Boolean(string='Assets Management')
module_account_deferred_revenue = fields.Boolean(string="Revenue Recognition")
Expand Down Expand Up @@ -106,6 +108,8 @@ def set_chart_of_accounts(self):
def onchange_analytic_accounting(self):
if self.group_analytic_accounting:
self.module_account_accountant = True
else:
self.group_analytic_tag = False

@api.onchange('module_account_budget')
def onchange_module_account_budget(self):
Expand Down
2 changes: 1 addition & 1 deletion addons/account/views/account_analytic_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@
name="Analytic Accounts Tags"
parent="menu_analytic_accounting"
action="analytic.account_analytic_tag_action"
groups="base.group_no_one"/>
groups="analytic.group_analytic_tag"/>

</data>
</odoo>
4 changes: 2 additions & 2 deletions addons/account/views/account_invoice_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@
domain="[('company_id', '=', parent.company_id), ('internal_type', '=', 'other'), ('deprecated', '=', False)]"/>
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"
domain="[('company_id', '=', parent.company_id)]"/>
<field name="analytic_tag_ids" groups="analytic.group_analytic_accounting" widget="many2many_tags"/>
<field name="analytic_tag_ids" groups="analytic.group_analytic_tag" widget="many2many_tags"/>
<field name="quantity"/>
<field name="uom_id" groups="product.group_uom"/>
<field name="price_unit"/>
Expand Down Expand Up @@ -404,7 +404,7 @@
domain="[('company_id', '=', parent.company_id), ('internal_type', '=', 'other')]"/>
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"
domain="[('company_id', '=', parent.company_id)]"/>
<field name="analytic_tag_ids" groups="analytic.group_analytic_accounting" widget="many2many_tags"/>
<field name="analytic_tag_ids" groups="analytic.group_analytic_tag" widget="many2many_tags"/>
<field name="quantity"/>
<field name="uom_id" groups="product.group_uom"/>
<field name="price_unit"/>
Expand Down
2 changes: 1 addition & 1 deletion addons/account/views/account_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1045,7 +1045,7 @@
</group>
<group groups="analytic.group_analytic_accounting" string="Analytic">
<field name="analytic_account_id"/>
<field name="analytic_tag_ids" widget="many2many_tags"/>
<field name="analytic_tag_ids" widget="many2many_tags" groups="analytic.group_analytic_tag"/>
</group>
</group>
<field name="narration" colspan="4" nolabel="1" placeholder="Add an internal note..."/>
Expand Down
15 changes: 14 additions & 1 deletion addons/account/views/res_config_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,20 @@
<div class="mt16" id="analytic_account_link">
<button name="%(analytic.action_analytic_account_form)d" icon="fa-arrow-right" type="action" string="Analytic Accounts" class="btn-link"/>
</div>
<div>
</div>
</div>
</div>
<div class="col-xs-12 col-md-6 o_setting_box" id="analytic_tag" attrs="{'invisible': [('group_analytic_accounting', '=', False)]}">
<div class="o_setting_left_pane">
<field name="group_analytic_tag"/>
</div>
<div class="o_setting_right_pane">
<label for="group_analytic_tag"/>
<div class="text-muted">
Tag your analytic entries to get multidimentional analytics
</div>
<div class="content-group" attrs="{'invisible': [('group_analytic_tag', '=', False)]}">
<div class="mt16" id="analytic_account_tag_link">
<button name="%(analytic.account_analytic_tag_action)d" icon="fa-arrow-right" type="action" string="Tags for Multidimensional Analytics" class="btn-link"/>
</div>
</div>
Expand Down
5 changes: 5 additions & 0 deletions addons/analytic/security/analytic_security.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,10 @@
<field name="category_id" ref="base.module_category_hidden"/>
</record>

<record id="group_analytic_tag" model="res.groups">
<field name="name">Analytic Tags</field>
<field name="category_id" ref="base.module_category_hidden"/>
</record>

</data>
</odoo>
2 changes: 1 addition & 1 deletion addons/analytic/security/ir.model.access.csv
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_account_analytic_account,access_account_analytic_account,model_account_analytic_account,group_analytic_accounting,1,1,1,1
access_account_analytic_line,access_account_analytic_line,model_account_analytic_line,group_analytic_accounting,1,1,1,1
access_account_analytic_tag,access_account_analytic_tag,model_account_analytic_tag,group_analytic_accounting,1,1,1,1
access_account_analytic_tag,access_account_analytic_tag,model_account_analytic_tag,group_analytic_tag,1,1,1,1
3 changes: 2 additions & 1 deletion addons/analytic/views/analytic_account_views.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
<field name="date"/>
<field name="name"/>
<field name="account_id"/>
<field name="tag_ids" groups="analytic.group_analytic_tag"/>
<field name="currency_id" invisible="1"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="unit_amount" sum="Quantity"/>
Expand Down Expand Up @@ -104,7 +105,7 @@
<field name="partner_id"/>
</group>
<group>
<field name="tag_ids" widget="many2many_tags"/>
<field name="tag_ids" widget="many2many_tags" groups="analytic.group_analytic_tag"/>
<field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/>
<field name="currency_id" options="{'no_create': True}" groups="base.group_multi_currency"/>
</group>
Expand Down
6 changes: 6 additions & 0 deletions addons/purchase/security/purchase_security.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@
<field name="implied_ids" eval="[(4, ref('analytic.group_analytic_accounting'))]"/>
</record>

<record id="group_analytic_tag" model="res.groups">
<field name="name">Analytic Tags for Purchases</field>
<field name="category_id" ref="base.module_category_hidden"/>
<field name="implied_ids" eval="[(4, ref('analytic.group_analytic_tag'))]"/>
</record>

<record id="group_manage_vendor_price" model="res.groups">
<field name="name">Manage Vendor Price</field>
<field name="category_id" ref="base.module_category_hidden"/>
Expand Down
2 changes: 1 addition & 1 deletion addons/purchase/views/account_config_settings_views.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<field name="model">account.config.settings</field>
<field name="inherit_id" ref="account.account_config_settings_view_form"/>
<field name="arch" type="xml">
<div id="account_budget" position="before">
<div id="analytic_tag" position="before">
<div class="col-xs-12 col-md-6 o_setting_box" title="Allows you to specify an analytic account on purchase order lines.">
<div class="o_setting_left_pane">
<field name="group_analytic_account_for_purchases" class="oe_inline"/>
Expand Down
2 changes: 1 addition & 1 deletion addons/purchase/views/purchase_views.xml
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@
<field name="date_planned"/>
<field name="company_id" groups="base.group_multi_company" options="{'no_create': True}"/>
<field name="account_analytic_id" context="{'default_partner_id':parent.partner_id}" groups="purchase.group_analytic_accounting"/>
<field name="analytic_tag_ids" groups="purchase.group_analytic_accounting" widget="many2many_tags"/>
<field name="analytic_tag_ids" groups="purchase.group_analytic_tag" widget="many2many_tags"/>
<field name="product_qty"/>
<field name="qty_received" invisible="not context.get('show_purchase', False)"/>
<field name="qty_invoiced" invisible="not context.get('show_purchase', False)"/>
Expand Down
6 changes: 6 additions & 0 deletions addons/sale/security/sale_security.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,12 @@
<field name="implied_ids" eval="[(4, ref('analytic.group_analytic_accounting'))]"/>
</record>

<record id="group_analytic_tag" model="res.groups">
<field name="name">Analytic Tags for Sales</field>
<field name="category_id" ref="base.module_category_hidden"/>
<field name="implied_ids" eval="[(4, ref('analytic.group_analytic_tag'))]"/>
</record>

<record model="res.users" id="base.user_root">
<field eval="[(4,ref('base.group_partner_manager'))]" name="groups_id"/>
</record>
Expand Down
6 changes: 3 additions & 3 deletions addons/sale/views/sale_views.xml
Original file line number Diff line number Diff line change
Expand Up @@ -244,9 +244,9 @@
<div>
<field name="customer_lead" class="oe_inline"/> days
</div>
<label for="analytic_tag_ids"/>
<label for="analytic_tag_ids" groups="sale.group_analytic_tag"/>
<div>
<field name="analytic_tag_ids" widget="many2many_tags"/>
<field name="analytic_tag_ids" widget="many2many_tags" groups="sale.group_analytic_tag"/>
</div>
</group>
</group>
Expand Down Expand Up @@ -279,7 +279,7 @@
attrs="{'readonly': [('state', 'in', ('sale','done', 'cancel'))]}"
context="{'company_id': parent.company_id}"
groups="product.group_uom" options='{"no_open": True}'/>
<field name="analytic_tag_ids" groups="analytic.group_analytic_accounting" widget="many2many_tags"/>
<field name="analytic_tag_ids" groups="sale.group_analytic_tag" widget="many2many_tags"/>
<field name="price_unit"
attrs="{'readonly': [('qty_invoiced', '&gt;', 0)]}"/>
<field name="tax_id" widget="many2many_tags" domain="[('type_tax_use','=','sale'),('company_id','=',parent.company_id)]"
Expand Down

0 comments on commit e94f158

Please sign in to comment.