[IMP] project, project_issue, project_timesheet, rating_project : refactoring of the kanban project. Now using bootstrap, and better disposition of module elements.

This commit is contained in:
Jérome Maes
2015-02-04 15:24:48 +01:00
parent 803778d9b4
commit 68cc737247
5 changed files with 61 additions and 53 deletions
+34 -20
View File
@@ -272,35 +272,49 @@
</div>
<div class="oe_project_kanban_content">
<div class="row">
<h4 class="text-center"><strong><field name="name"/></strong></h4>
<div class="text-center oe_kanban_alias" t-if="record.alias_name.value and record.alias_domain.value">
<small><i class="fa fa-envelope-o"></i> <field name="alias_id"/></small>
<h4 class="text-center">
<field name="name"/>
</h4>
<div t-if="record.alias_name.value and record.alias_domain.value" class="text-center text-muted">
<small>
<i class="fa fa-envelope-o"></i> <field name="alias_id"/>
</small>
</div>
</div>
<div class="row oe_margin_top_8 oe_kanban_project_list">
<a t-if="record.use_tasks.raw_value" class="oe_sparkline_bar_link" name="%(act_project_project_2_project_task_all)d" type="action" style="margin-right: -5px">
<t t-raw="record.task_ids.raw_value.length" /> <field name="label_tasks"/>
<field name="monthly_tasks" widget="sparkline_bar" options="{'delayIn': '1000'}">
Created Tasks
</field>
</a>
<div t-if="record.use_tasks.raw_value and record.task_count.raw_value lt 1" style="margin-top: 6px;margin-left:20px;">
<div class="col-md-6">
<a t-if="record.use_tasks.raw_value" class="oe_sparkline_bar_link" name="%(act_project_project_2_project_task_all)d" type="action">
<t t-raw="record.task_ids.raw_value.length" />
<field name="label_tasks"/>
<field name="monthly_tasks" widget="sparkline_bar" options="{'delayIn': '1000'}">
Created Tasks
</field>
</a>
</div>
<div t-if="record.use_tasks.raw_value and record.task_count.raw_value lt 1" class="col-md-12">
<img src="/project/static/src/img/top_left_arrow.png" style="margin-top: -8px; width: 22px;" />
<span>No activity yet, click to enter in the project.</span>
</div>
</div>
<div class="row oe_margin_top_8 oe_kanban_project_list">
<a t-if="record.doc_count.raw_value" name="attachment_tree_view" type="object" style="margin-right: 10px"> <field name="doc_count"/> Documents</a>
<div class="row oe_margin_top_8 oe_kanban_project_infos">
<div class="col-md-6">
<a t-if="record.doc_count.raw_value" name="attachment_tree_view" type="object">
<field name="doc_count"/> Documents
</a>
</div>
<div class="col-md-6">
<span groups="project.group_time_work_estimation_tasks">
<i class="fa fa-clock-o"/>
<t t-esc="Math.round(record.effective_hours.raw_value)"/>/<t t-esc="Math.round(record.planned_hours.raw_value)"/>
<field name="company_uom_id"/>
</span>
</div>
</div>
<div class="row oe_margin_top_8 oe_kanban_footer_left">
<span groups="project.group_time_work_estimation_tasks">
<i class="fa fa-clock-o"/>
<t t-esc="Math.round(record.effective_hours.raw_value)"/>/<t t-esc="Math.round(record.planned_hours.raw_value)"/> <field name="company_uom_id"/>
</span>
<span t-if="record.date.raw_value">
<div class="row oe_margin_top_8 oe_kanban_project_tags">
<h5 t-if="record.date.raw_value" class="label label-default">
<i class="fa fa-calendar"/>
<field name="date"/>
</span>
</h5>
</div>
<div class="row oe_margin_top_8 oe_kanban_project_avatars">
<t t-foreach="record.members.raw_value.slice(0,11)" t-as="member">
@@ -553,7 +567,7 @@
<div class="oe_kanban_bottom_right">
<img t-att-src="kanban_image('res.users', 'image_small', record.user_id.raw_value)" t-att-title="record.user_id.value" width="24" height="24" class="oe_kanban_avatar pull-right"/>
<div class="pull-left" groups="base.group_user">
<field name="kanban_state" widget="kanban_state_selection"
<field name="kanban_state" widget="kanban_state_selection"
options='{"states_legend": {"normal": "legend_normal", "blocked": "legend_blocked", "done": "legend_done"}}'/>
<field name="priority" widget="priority"/>
</div>
+7 -11
View File
@@ -1,8 +1,3 @@
.oe_kanban_project {
width: 220px;
min-height: 160px;
}
.oe_kanban_project_avatars img {
width: 30px;
border-radius: 2px;
@@ -21,7 +16,7 @@
.openerp .oe_kanban_view .oe_kanban_project_task_spark {
/* Customize width and height of kanban according bootstrap3 */
width: 265px;
width: 290px;
min-height: 120px;
/* End of customize */
cursor: default;
@@ -40,14 +35,15 @@
.openerp .oe_margin_top_8 {
margin-top: 8px;
}
.openerp .oe_kanban_project .oe_kanban_project_tags{
text-align: right;
}
.openerp .oe_kanban_project .oe_kanban_project_tags .label{
margin: 3px 2px;
}
.openerp label.oe_project_kanban_legend {
min-width: inherit !important;
margin-top: 6px;
margin-right: 8px;
}
.openerp .oe_project_kanban_content .oe_kanban_footer_left .fa {
visible: inline-block;
}
+12 -10
View File
@@ -349,17 +349,19 @@
<field name="use_issues"/>
<field name="issue_ids" invisible="1"/>
</field>
<xpath expr="//div[contains(@class, 'oe_kanban_project_list')]/a" position="after">
<a t-if="record.use_issues.raw_value" style="margin-right: 20px" class="pull-right"
name="%(act_project_project_2_project_issue_all)d" type="action">
<t t-raw="record.issue_ids.raw_value.length"/> <field name="label_issues"/>
<field name="monthly_issues" widget="sparkline_bar" options="{'delayIn': '1000'}">
Closed Issues
</field>
</a>
<xpath expr="//div[contains(@class, 'oe_kanban_project_list')]/div" position="after">
<div class="col-md-6">
<a t-if="record.use_issues.raw_value" name="%(act_project_project_2_project_issue_all)d" type="action">
<t t-raw="record.issue_ids.raw_value.length"/>
<field name="label_issues"/>
<field name="monthly_issues" widget="sparkline_bar" options="{'delayIn': '1000'}">
Closed Issues
</field>
</a>
</div>
</xpath>
<xpath expr="//div[contains(@class, 'oe_kanban_project_list')]/div" position="replace">
<div t-if="!(record.use_tasks.raw_value and record.task_count.raw_value gt 0) and !(record.use_issues.raw_value and record.issue_ids.raw_value.length gt 0)" style="margin-top: 6px;margin-left:20px;">
<xpath expr="//div[contains(@class, 'oe_kanban_project_list')]/div[contains(@class, 'col-md-12')]" position="replace">
<div t-if="!(record.use_tasks.raw_value and record.task_count.raw_value gt 0) and !(record.use_issues.raw_value and record.issue_ids.raw_value.length gt 0)" class="col-md-12">
<img src="/project/static/src/img/top_left_arrow.png" style="margin-top: -8px; width: 22px;" />
<span>No activity yet, click to enter in the project.</span>
</div>
@@ -13,9 +13,11 @@
<field name="currency_id"/>
<field name="partner_id"/>
</field>
<xpath expr="//div[contains(@class, 'oe_kanban_project_list')]/a" position="after">
<a t-if="record.invoice_on_timesheets.raw_value" style="margin-right: 10px"
<xpath expr="//div[contains(@class, 'oe_kanban_project_infos')]/div" position="after">
<div class="col-md-6">
<a t-if="record.invoice_on_timesheets.raw_value" style="margin-right: 10px"
name="open_timesheets" type="object"><field name="hours_quantity"/> Hours</a>
</div>
</xpath>
</field>
</record>
+4 -10
View File
@@ -42,18 +42,12 @@
<field name="percentage_satisfaction_project" invisible="1"/>
<field name="is_visible_happy_customer" invisible="1"/>
</field>
<xpath expr="//div[contains(@class, 'oe_kanban_project_list')]" position="after">
<div class="row oe_margin_top_8 oe_kanban_project_list">
<xpath expr="//div[contains(@class, 'oe_kanban_project_tags')]" position="inside">
<a t-if="record.is_visible_happy_customer.raw_value and record.percentage_satisfaction_project.raw_value &gt; -1" name="action_view_all_rating" type="object" title="Percentage of happy people about this project">
<img t-if="record.percentage_satisfaction_project.raw_value &gt;= 0 and record.percentage_satisfaction_project.raw_value &lt;= 30" class="rating" src="rating/static/src/img/rating_0.png" style="width:10%;height:10%"></img>
<img t-if="record.percentage_satisfaction_project.raw_value &gt; 30 and record.percentage_satisfaction_project.raw_value &lt;= 69" class="rating" src="rating/static/src/img/rating_5.png" style="width:10%;height:10%"></img>
<img t-if="record.percentage_satisfaction_project.raw_value &gt;= 70" class="rating" src="rating/static/src/img/rating_10.png" style="width:10%;height:10%"></img>
<img t-if="record.percentage_satisfaction_project.raw_value &lt; 0" class="rating" src="rating/static/src/img/rating_-1.png" style="width:10%;height:10%"></img>
<t t-if="record.percentage_satisfaction_project.raw_value &gt;= 0">
<t t-raw="record.percentage_satisfaction_project.raw_value"/> %
</t>
<h5 t-attf-class="label #{record.percentage_satisfaction_project.raw_value &gt;= 50 ? 'label-success' : 'label-warning'}">
<i t-attf-class="fa #{record.percentage_satisfaction_project.raw_value &gt;= 50 ? 'fa-smile-o' : 'fa-frown-o'}"/> <t t-raw="record.percentage_satisfaction_project.raw_value"/> %
</h5>
</a>
</div>
</xpath>
</field>
</record>