summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoffroy Larue <gla@odoo.com>2019-08-29 10:32:55 +0000
committerGeoffroy Larue <gla@odoo.com>2019-09-18 12:05:19 +0000
commite2e85cb93a261b3f6bb9ef1f49197ca67fe7f48b (patch)
tree7f4706f7b9fb855904d2b70ee1b415fb4a4d9252
parentf5596bb8fe6998083194dd54027ae6adff802f14 (diff)
[IMP] project: project form view
Move and relabel the Privacy field and its various options to improve usability. Task-2047389 Closes #36360
-rw-r--r--addons/hr_timesheet/views/project_views.xml16
-rw-r--r--addons/project/models/project.py14
-rw-r--r--addons/project/views/project_views.xml40
3 files changed, 49 insertions, 21 deletions
diff --git a/addons/hr_timesheet/views/project_views.xml b/addons/hr_timesheet/views/project_views.xml
index f0ea47cd606..c8d46bbaa01 100644
--- a/addons/hr_timesheet/views/project_views.xml
+++ b/addons/hr_timesheet/views/project_views.xml
@@ -41,8 +41,20 @@
<div name="button_box" position="inside">
<button class="oe_stat_button" name="%(act_hr_timesheet_line_by_project)d" type="action" icon="fa-calendar" string="Timesheets" attrs="{'invisible': [('allow_timesheets', '=', False)]}" groups="hr_timesheet.group_hr_timesheet_user"/>
</div>
- <xpath expr="//group[@name='extra_settings']" position="inside">
- <field name="allow_timesheets"/>
+ <xpath expr="//div[@id='rating_settings']/.." position="before">
+ <div class="row mt16 o_settings_container">
+ <div class="col-lg-6 o_setting_box" id="timesheet_settings">
+ <div class="o_setting_left_pane">
+ <field name="allow_timesheets"/>
+ </div>
+ <div class="o_setting_right_pane">
+ <label for="allow_timesheets" string="Timesheets"/>
+ <div class="text-muted">
+ Log time on tasks
+ </div>
+ </div>
+ </div>
+ </div>
</xpath>
</field>
</record>
diff --git a/addons/project/models/project.py b/addons/project/models/project.py
index 3061f241984..bb31a609fd3 100644
--- a/addons/project/models/project.py
+++ b/addons/project/models/project.py
@@ -195,16 +195,16 @@ class Project(models.Model):
help="Internal email associated with this project. Incoming emails are automatically synchronized "
"with Tasks (or optionally Issues if the Issue Tracker module is installed).")
privacy_visibility = fields.Selection([
- ('followers', 'Visible by invited employees'),
- ('employees', 'Visible by employees'),
- ('portal', 'Visible by portal users and employees'),
+ ('followers', 'Invited employees'),
+ ('employees', 'All employees'),
+ ('portal', 'Portal users and all employees'),
],
- string='Privacy', required=True,
+ string='Visibility', required=True,
default='portal',
help="Defines the visibility of the tasks of the project:\n"
- "- Visible by invited employees: employees may only see the followed project and tasks.\n"
- "- Visible by employees: employees may see all project and tasks.\n"
- "- Visible by portal users and employees: employees may see everything."
+ "- Invited employees: employees may only see the followed project and tasks.\n"
+ "- All employees: employees may see all project and tasks.\n"
+ "- Portal users and all employees: employees may see everything."
" Portal users may see project and tasks followed by.\n"
" them or by someone of their company.")
doc_count = fields.Integer(compute='_compute_attached_docs_count', string="Number of documents attached")
diff --git a/addons/project/views/project_views.xml b/addons/project/views/project_views.xml
index c17e563f8d2..7b395088f2c 100644
--- a/addons/project/views/project_views.xml
+++ b/addons/project/views/project_views.xml
@@ -128,26 +128,42 @@
<group>
<field name="active" invisible="1"/>
<field name="user_id" string="Project Manager" attrs="{'readonly':[('active','=',False)]}"/>
- <field name="privacy_visibility" widget="radio"/>
+ <field name="partner_id" string="Customer"/>
</group>
<group>
- <field name="partner_id" string="Customer"/>
<field name="analytic_account_id" context="{'default_partner_id': partner_id}" groups="analytic.group_analytic_accounting"/>
- <label for="rating_status" groups="project.group_project_rating"/>
- <div groups="project.group_project_rating">
- <field name="rating_status" widget="radio"/>
- <p attrs="{'invisible': [('rating_status','not in',('periodic','stage'))]}" class="text-muted oe_edit_only">
- Edit project's stages and set an email template on the stages on which you want to activate the rating.
- </p>
- </div>
- <field name="rating_status_period" class="oe_inline" attrs="{'required': [('rating_status','=','periodic')], 'invisible': [('rating_status','!=','periodic')]}" groups="project.group_project_rating"/>
- <field name="portal_show_rating" attrs="{'invisible': [('rating_status','==','no')]}" groups="project.group_project_rating"/>
+ <field name="privacy_visibility" widget="radio"/>
+
<field name="subtask_project_id" groups="project.group_subtask_project"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>
<group name="extra_settings">
</group>
</group>
+ <div class="row mt16 o_settings_container">
+ <div id="rating_settings" class="col-lg-6 o_setting_box" groups="project.group_project_rating">
+ <div class="o_setting_right_pane">
+ <label for="rating_status"/>
+ <div class="text-muted">
+ Get customer feedback
+ </div>
+ <div>
+ <field name="rating_status" widget="radio"/>
+ <p attrs="{'invisible': [('rating_status','not in',('periodic','stage'))]}" class="text-muted oe_edit_only">
+ Edit project's stages and set an email template on the stages on which you want to activate the rating.
+ </p>
+ <div attrs="{'required': [('rating_status','=','periodic')], 'invisible': [('rating_status','!=','periodic')]}">
+ <label for="rating_status_period"/>
+ <field name="rating_status_period" class="oe_inline"/>
+ </div>
+ <div attrs="{'invisible': [('rating_status','==','no')]}">
+ <label for="portal_show_rating"/>
+ <field name="portal_show_rating"/>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
<group name="misc">
<group string="Time Scheduling">
<field name="resource_calendar_id"/>
@@ -159,7 +175,7 @@
<label for="alias_name" string="Email Alias"/>
<div name="alias_def">
<field name="alias_id" class="oe_read_only oe_inline"
- string="Email Alias" required="0"/>
+ string="Email Alias" required="0"/>
<div class="oe_edit_only oe_inline" name="edit_alias" style="display: inline;" >
<field name="alias_name" class="oe_inline"/>@<field name="alias_domain" class="oe_inline" readonly="1"/>
</div>