[IMP] Improved project task kanban view. Changed icon for 'done' state (with al)

bzr revid: fme@openerp.com-20111107173653-2bcsu7w145v5orw6
This commit is contained in:
Fabien Meghazi 2011-11-07 18:36:53 +01:00
parent 8d0fbb32be
commit 1bfc64477b
2 changed files with 48 additions and 20 deletions

View File

@ -431,7 +431,7 @@ class task(osv.osv):
'priority': fields.selection([('4','Very Low'), ('3','Low'), ('2','Medium'), ('1','Important'), ('0','Very important')], 'Priority'),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of tasks."),
'type_id': fields.many2one('project.task.type', 'Stage'),
'state': fields.selection([('draft', 'New'),('open', 'In Progress'),('pending', 'Pending'), ('cancelled', 'Cancelled'), ('done', 'Done')], 'State', readonly=True, required=True,
'state': fields.selection([('draft', 'New'),('open', 'In Progress'),('pending', 'Pending'), ('ready', 'Ready'), ('done', 'Done'), ('cancelled', 'Cancelled')], 'State', readonly=True, required=True,
help='If the task is created the state is \'Draft\'.\n If the task is started, the state becomes \'In Progress\'.\n If review is needed the task is in \'Pending\' state.\
\n If the task is over, the states is set to \'Done\'.'),
'create_date': fields.datetime('Create Date', readonly=True,select=True),
@ -706,6 +706,10 @@ class task(osv.osv):
self.log(cr, uid, t.id, message)
return True
def do_ready(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state': 'ready'}, context=context)
return True
def do_draft(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state': 'draft'}, context=context)
return True
@ -749,6 +753,22 @@ class task(osv.osv):
self.log(cr, uid, id, message)
return True
def set_remaining_hours_1(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'remaining_hours': 8.0}, context=context)
return True
def set_remaining_hours_2(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'remaining_hours': 2 * 8.0}, context=context)
return True
def set_remaining_hours_5(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'remaining_hours': 5 * 8.0}, context=context)
return True
def set_remaining_hours_10(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'remaining_hours': 10 * 8.0}, context=context)
return True
def _change_type(self, cr, uid, ids, next, *args):
"""
go to the next stage

View File

@ -244,7 +244,7 @@
</group>
<group col="3" colspan="2">
<field name="remaining_hours" widget="float_time" attrs="{'readonly':[('state','!=','draft')]}" colspan="2"/>
<button name="%(action_project_task_reevaluate)d" string="Reevaluate" type="action" colspan="1" target="new" states="open,pending" icon="gtk-edit"/>
<button name="%(action_project_task_reevaluate)d" string="Reevaluate" type="action" colspan="1" target="new" states="open,ready,pending" icon="gtk-edit"/>
</group>
<field colspan="4" name="description" nolabel="1" attrs="{'readonly':[('state','=','done')]}" widget="text_wiki"/>
@ -259,13 +259,13 @@
<newline/>
<group col="11" colspan="4">
<field name="state" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}' select="1"/>
<button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel"/>
<button name="do_draft" states="open" string="Draft" type="object" icon="gtk-indent"/>
<button name="do_open" states="pending,draft" string="Start Task" type="object" icon="gtk-execute"/>
<button name="do_cancel" states="draft,open,ready,pending" string="Cancel" type="object" icon="gtk-cancel"/>
<button name="do_draft" states="open,ready" string="Draft" type="object" icon="gtk-indent"/>
<button name="do_open" states="pending,draft" string="Start Task" type="object" icon="gtk-media-play"/>
<button name="%(action_project_task_reevaluate)d" states="done,cancelled" string="Reactivate" type="action" icon="gtk-convert" context="{'button_reactivate':True}" />
<button name="do_pending" states="open" string="Pending" type="object" icon="gtk-media-pause"/>
<button groups="base.group_extended" name="%(action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action" icon="gtk-sort-descending"/>
<button name="action_close" states="pending,open" string="Done" type="object" icon="terp-dialog-close"/>
<button name="do_pending" states="open,ready" string="Pending" type="object" icon="gtk-media-pause"/>
<button groups="base.group_extended" name="%(action_project_task_delegate)d" states="pending,open,ready,draft" string="Delegate" type="action" icon="gtk-sort-descending"/>
<button name="action_close" states="pending,open,ready" string="Done" type="object" icon="terp-dialog-close"/>
</group>
</page>
<page groups="base.group_extended" string="Delegations History">
@ -328,17 +328,20 @@
<field name="user_email"/>
<field name="description"/>
<field name="sequence"/>
<field name="state"/>
<field name="project_id"/>
<field name="remaining_hours" sum="Remaining Time"/>
<templates>
<t t-name="kanban-box">
<t t-set="pad_url">http://pad.openerp.com/<t t-raw="_.underscored(_.trim(record.name.raw_value))"/></t>
<div t-att-class="kanban_color(record.color.raw_value) + (record.state.raw_value === 'pending' ? ' oe_kanban_color_alert' : '')">
<div t-att-class="kanban_color(record.color.raw_value) + (record.state.raw_value === 'pending' ? ' oe_kanban_color_alert' : '') + (record.state.raw_value === 'ready' ? ' oe_kanban_color_green' : '')">
<div class="oe_kanban_box oe_kanban_color_border">
<table class="oe_kanban_table oe_kanban_box_header oe_kanban_color_bgdark oe_kanban_color_border oe_kanban_draghandle">
<tr>
<td class="oe_kanban_title1" align="left" valign="middle">
<a t-if="record.priority.raw_value == 1" icon="star-on" type="object" name="set_normal_priority"/>
<a t-if="record.priority.raw_value != 1" icon="star-off" type="object" name="set_high_priority" style="opacity:0.6; filter:alpha(opacity=60);"/>
<field name="name"/>
<span t-att-title="record.project_id.value"><field name="name"/></span>
</td>
<td valign="top" width="22">
<img t-att-src="kanban_gravatar(record.user_email.value, 22)" class="oe_kanban_gravatar" t-att-title="record.user_id.value"/>
@ -346,16 +349,19 @@
</tr>
</table>
<div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_box_show_onclick_trigger">
<div class="oe_kanban_right">
<b>
<field name="project_id"/><br/>
<field name="state"/><t t-if="record.date_deadline.value"> - </t>
<i><field name="date_deadline"/></i>
</b>
</div>
<div>
<t t-esc="kanban_text_ellipsis(record.description.value, 160)"/>
</div>
<div>
<i t-if="record.date_deadline.raw_value"><field name="date_deadline"/> ,</i>
<field name="remaining_hours"/>
<b>
<a name="set_remaining_hours_1" string="Set 1 day" type="object"> [1d]</a>
<a name="set_remaining_hours_2" string="Set 2 day" type="object"> [2d]</a>
<a name="set_remaining_hours_5" string="Set 5 day" type="object"> [5d]</a>
<a name="set_remaining_hours_10" string="Set 10 day" type="object"> [10d]</a>
</b>
</div>
<br class="oe_kanban_clear"/>
</div>
<div class="oe_kanban_buttons_set oe_kanban_color_border oe_kanban_color_bglight oe_kanban_box_show_onclick">
@ -364,8 +370,10 @@
<a string="Change Color" icon="color-picker" type="color" name="color"/>
</div>
<div class="oe_kanban_right">
<a name="do_pending" string="Set Pending" states="open" type="object" icon="gtk-media-pause"/>
<a name="do_open" string="Open" states="draft,pending" type="object" icon="gtk-media-play"/>
<a name="do_pending" string="Pending" states="draft,open" type="object" icon="gtk-media-pause"/>
<a name="do_open" string="Start Task" states="pending,ready" type="object" icon="gtk-media-play"/>
<a name="do_ready" string="Ready" states="draft,open" type="object" icon="gtk-go-forward"/>
<a name="action_close" string="Done" states="draft,open,ready" type="object" icon="gtk-apply"/>
</div>
<br class="oe_kanban_clear"/>
</div>
@ -407,7 +415,7 @@
<field name="progress" widget="progressbar" invisible="context.get('set_visible',False)"/>
<field name="state" invisible="context.get('set_visible',False)"/>
<button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel" help="For cancelling the task"/>
<button name="do_open" states="pending,draft,done,cancelled" string="Start Task" type="object" icon="gtk-execute" help="For changing to open state" invisible="context.get('set_visible',False)"/>
<button name="do_open" states="pending,draft,done,cancelled" string="Start Task" type="object" icon="gtk-media-play" help="For changing to open state" invisible="context.get('set_visible',False)"/>
<button groups="base.group_extended" name="%(action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action" icon="gtk-sort-descending" help="For changing to delegate state"/>
<button name="action_close" states="draft,pending,open" string="Done" type="object" icon="terp-dialog-close" help="For changing to done state"/>
</tree>