Amit (Open ERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-kanban-views2 into lp:openobject-addons.
Requested reviews:
OpenERP Core Team (openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-kanban-views2/+merge/78955
Hello
I have added some kanban view in this branch and also usability.
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-kanban-views2/+merge/78955
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-addons/trunk-kanban-views2.
=== modified file 'crm/crm_meeting.py'
--- crm/crm_meeting.py 2011-08-09 23:44:28 +0000
+++ crm/crm_meeting.py 2011-10-11 12:59:28 +0000
@@ -73,6 +73,7 @@
('cancel', 'Cancelled'),
('done', 'Done')], 'State', \
size=16, readonly=True),
+ 'color': fields.integer('Color'),
}
_defaults = {
'state': 'draft',
=== modified file 'crm/crm_meeting_menu.xml'
--- crm/crm_meeting_menu.xml 2011-08-18 06:57:56 +0000
+++ crm/crm_meeting_menu.xml 2011-10-11 12:59:28 +0000
@@ -49,7 +49,7 @@
<record model="ir.actions.act_window" id="crm_case_categ_meet">
<field name="name">Meetings</field>
<field name="res_model">crm.meeting</field>
- <field name="view_mode">calendar,tree,form,gantt</field>
+ <field name="view_mode">calendar,tree,form,gantt,kanban</field>
<field name="view_id" ref="crm_case_calendar_view_meet"/>
<field name="context">{"search_default_user_id":uid, 'search_default_section_id': section_id, 'virtual_id' : True}</field>
<field name="search_view_id" ref="view_crm_case_meetings_filter"/>
=== modified file 'crm/crm_meeting_view.xml'
--- crm/crm_meeting_view.xml 2011-09-22 03:02:01 +0000
+++ crm/crm_meeting_view.xml 2011-10-11 12:59:28 +0000
@@ -252,7 +252,62 @@
</tree>
</field>
</record>
-
+
+ <record model="ir.ui.view" id="crm_meeting_kanban_view">
+ <field name="name">CRM - Meeting Kanban</field>
+ <field name="model">crm.meeting</field>
+ <field name="type">kanban</field>
+ <field name="arch" type="xml">
+ <kanban default_group_by="state">
+ <templates>
+ <t t-name="kanban-box">
+ <t t-set="color" t-value="kanban_color(record.color.raw_value || record.state.raw_value)"/>
+ <div t-att-class="color + ('')">
+ <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">
+ <field name="partner_id"/>
+ </td>
+ <td valign="top" width="22"><img t-att-src="kanban_gravatar(record.email_from.value, 22)" class="oe_kanban_gravatar"/></td>
+ </tr>
+ </table>
+ <div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_box_show_onclick_trigger">
+ <div class="oe_kanban_right oe_kanban_small">
+ <field name="user_id"/>
+ </div>
+ <div class="oe_kanban_title2">
+ <field name="name"/>
+ </div>
+ <div>
+ <field name="date"/> to <field name="date_deadline"/> (<field name="duration"/> Hours.)
+ </div>
+ <div class="oe_kanban_title3">
+ <i><t t-if="record.location.raw_value">Meeting at <field name="location"/> </t></i>
+ </div>
+ </div>
+ <div class="oe_kanban_buttons_set oe_kanban_color_border oe_kanban_color_bglight oe_kanban_box_show_onclick">
+ <div class="oe_kanban_left">
+ <a string="Edit" icon="gtk-edit" type="edit"/>
+ <a string="Delete" icon="gtk-close" type="delete"/>
+ <a string="Change Color" icon="color-picker" type="color" name="color"/>
+ <a string="Send New Email" name="%(mail.action_email_compose_message_wizard)d" icon="terp-mail-message-new" type="action"/>
+ </div>
+ <div class="oe_kanban_right">
+ <a name="case_close" string="Done" states="open" type="object" icon="gtk-jump-to" />
+ <a name="case_reset" string="Reset to Unconfirmed" states="open,done" type="object" icon="gtk-convert" />
+ <a name="case_open" string="Confirm" states="draft" type="object" icon="gtk-go-forward" />
+ </div>
+ <br class="oe_kanban_clear"/>
+ </div>
+ </div>
+ </div>
+ </t>
+ </templates>
+ </kanban>
+ </field>
+ </record>
+
<!-- CRM Meeting Calendar -->
<record model="ir.ui.view" id="crm_case_calendar_view_meet">
=== modified file 'crm_claim/crm_claim.py'
--- crm_claim/crm_claim.py 2011-09-07 21:39:49 +0000
+++ crm_claim/crm_claim.py 2011-10-11 12:59:28 +0000
@@ -83,6 +83,8 @@
\nWhen the case is over, the state is set to \'Done\'.\
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
+ 'color': fields.integer('Color'),
+
}
_defaults = {
@@ -96,7 +98,16 @@
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.case', context=c),
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
}
-
+
+ def set_priority(self, cr, uid, ids, priority):
+ return self.write(cr, uid, ids, {'priority' : priority})
+
+ def set_high_priority(self, cr, uid, ids, *args):
+ return self.set_priority(cr, uid, ids, '1')
+
+ def set_normal_priority(self, cr, uid, ids, *args):
+ return self.set_priority(cr, uid, ids, '3')
+
def onchange_partner_id(self, cr, uid, ids, part, email=False):
"""This function returns value of partner address based on partner
:param part: Partner's id
=== modified file 'crm_claim/crm_claim_menu.xml'
--- crm_claim/crm_claim_menu.xml 2011-01-20 12:42:20 +0000
+++ crm_claim/crm_claim_menu.xml 2011-10-11 12:59:28 +0000
@@ -12,7 +12,7 @@
<field name="name">Claims</field>
<field name="res_model">crm.claim</field>
<field name="view_type">form</field>
- <field name="view_mode">tree,calendar,form</field>
+ <field name="view_mode">tree,calendar,form,kanban</field>
<field name="view_id" ref="crm_case_claims_tree_view"/>
<field name="context">{'search_default_section_id': section_id, "search_default_current":1,"search_default_user_id":uid, "stage_type":'claim'}</field>
<field name="search_view_id" ref="crm_claim.view_crm_case_claims_filter"/>
=== modified file 'crm_claim/crm_claim_view.xml'
--- crm_claim/crm_claim_view.xml 2011-09-24 09:10:37 +0000
+++ crm_claim/crm_claim_view.xml 2011-10-11 12:59:28 +0000
@@ -200,7 +200,71 @@
</group>
</form>
</field>
+
+ <!-- Claim Kanban view -->
</record>
+ <record model="ir.ui.view" id="kanban_crm_claim">
+ <field name="name">crm.claim.kanban</field>
+ <field name="model">crm.claim</field>
+ <field name="type">kanban</field>
+ <field name="arch" type="xml">
+ <kanban default_group_by="state">
+ <templates>
+ <t t-name="kanban-box">
+ <t t-set="color" t-value="kanban_color(record.color.raw_value || record.state.raw_value)"/>
+ <div t-att-class="color + (record.priority.raw_value == 1 ? ' oe_kanban_color_alert' : '')">
+ <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="partner_id"/>
+ </td>
+ <td valign="top" width="22"><img t-att-src="kanban_gravatar(record.user_id.value, 22)" class="oe_kanban_gravatar"/></td>
+ </tr>
+ </table>
+ <div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_box_show_onclick_trigger">
+ <div class="oe_kanban_right oe_kanban_small">
+ <field name="user_id"/>
+ </div>
+ <div class="oe_kanban_title2">
+ <field name="name"/>
+ </div>
+ <div class="oe_kanban_title3">
+ <t t-if="record.date.raw_value">Claim Date : </t>
+ <field name="date"/>
+ <t t-if="record.date_deadline.raw_value">, Deadline : </t>
+ <field name="date_deadline"/>
+ </div>
+ <div class="oe_kanban_title3">
+ <i><field name="email_from"/></i>
+ </div>
+ </div>
+
+ <div class="oe_kanban_buttons_set oe_kanban_color_border oe_kanban_color_bglight oe_kanban_box_show_onclick">
+ <div class="oe_kanban_left">
+ <a string="Edit" icon="gtk-edit" type="edit"/>
+ <a string="Change Color" icon="color-picker" type="color" name="color"/>
+ <a string="Send New Email" name="%(mail.action_email_compose_message_wizard)d" icon="terp-mail-message-new" type="action"/>
+ <a string="Add Internal Note" name="%(crm.action_crm_add_note)d" context="{'model': 'crm.lead' }" icon="terp-document-new" type="action"/>
+ </div>
+ <div class="oe_kanban_right">
+ <a name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel" />
+ <a name="case_pending" string="Pending" states="draft,open" type="object" icon="gtk-media-pause" />
+ <a name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward" />
+ <a name="case_close" string="Done" states="open,pending" type="object" icon="gtk-jump-to" />
+ <a name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert" />
+ </div>
+ <br class="oe_kanban_clear"/>
+ </div>
+ </div>
+ </div>
+ </t>
+ </templates>
+ </kanban>
+ </field>
+ </record>
<!-- Claim Calendar view -->
=== modified file 'hr_holidays/hr_holidays.py'
--- hr_holidays/hr_holidays.py 2011-10-07 10:41:49 +0000
+++ hr_holidays/hr_holidays.py 2011-10-11 12:59:28 +0000
@@ -137,6 +137,8 @@
'holiday_type': fields.selection([('employee','By Employee'),('category','By Employee Category')], 'Allocation Type', help='By Employee: Allocation/Request for individual Employee, By Employee Category: Allocation/Request for group of employees in category', required=True),
'manager_id2': fields.many2one('hr.employee', 'Second Approval', readonly=True, help='This area is automaticly filled by the user who validate the leave with second level (If Leave type need second validation)'),
'double_validation': fields.related('holiday_status_id', 'double_validation', type='boolean', relation='hr.holidays.status', string='Apply Double Validation'),
+ 'email_from': fields.related('employee_id', 'work_email', string="Email", type="char", size=64),
+ 'color': fields.integer('Color'),
}
_defaults = {
'employee_id': _employee_get,
=== modified file 'hr_holidays/hr_holidays_view.xml'
--- hr_holidays/hr_holidays_view.xml 2011-10-07 10:41:49 +0000
+++ hr_holidays/hr_holidays_view.xml 2011-10-11 12:59:28 +0000
@@ -216,8 +216,68 @@
</tree>
</field>
</record>
-
-
+
+ <record model="ir.ui.view" id="kanban_hr_holodays">
+ <field name="name">hr.holidays.kanban</field>
+ <field name="model">hr.holidays</field>
+ <field name="type">kanban</field>
+ <field name="arch" type="xml">
+ <kanban default_group_by="state">
+ <templates>
+ <t t-name="kanban-box">
+ <t t-set="color" t-value="kanban_color(record.color.raw_value || record.name.raw_value)"/>
+ <div t-att-class="color + (record.color.raw_value == 1 ? ' oe_kanban_color_alert' : '')">
+ <div class="oe_kanban_box oe_kanban_color_border">
+ <div class="oe_kanban_box_header oe_kanban_color_bgdark oe_kanban_color_border oe_kanban_draghandle">
+ <table class="oe_kanban_table">
+ <tr>
+ <td class="oe_kanban_title1" align="left" valign="middle"><field name="employee_id"/></td>
+ <td valign="top" width="22">
+ <img t-att-src="kanban_gravatar(record.user_id.value, 22)" class="oe_kanban_gravatar"/>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_box_show_onclick_trigger">
+ <div class="oe_kanban_right oe_kanban_small">
+ <field name="user_id"/>
+ </div>
+ <div class="oe_kanban_title2">
+ <field name="holiday_status_id"/>
+ <t t-if="record.department_id.raw_value"> , </t>
+ <field name="department_id"/>
+ </div>
+ <div class="oe_kanban_title3">
+ <field name="date_from"/>
+ <t t-if="record.date_to.raw_value && record.date_from.raw_value"> to </t>
+ <field name="date_to"/>
+ </div>
+ <div class="oe_kanban_title3">
+ <i><t t-if="record.number_of_days_temp.raw_value">Days : </t>
+ <field name="number_of_days_temp"/></i>
+ </div>
+ </div>
+ <div class="oe_kanban_buttons_set oe_kanban_color_border oe_kanban_color_bglight oe_kanban_box_show_onclick">
+ <div class="oe_kanban_left">
+ <a string="Edit" icon="gtk-edit" type="edit"/>
+ <a string="Change Color" icon="color-picker" type="color" name="color"/>
+ <a string="Send New Email" name="%(mail.action_email_compose_message_wizard)d" icon="terp-mail-message-new" type="action"/>
+ </div>
+ <div class="oe_kanban_right">
+ <a string="Confirm" name="holidays_confirm" states="draft" type="object" icon="gtk-yes"/>
+ <a string="Approve" name="holidays_validate" states="confirm" type="object" icon="gtk-apply"/>
+ <a string="Refuse" name="holidays_refuse" states="confirm" type="object" icon="gtk-no"/>
+ </div>
+ <br class="oe_kanban_clear"/>
+ </div>
+ </div>
+ </div>
+ </t>
+ </templates>
+ </kanban>
+ </field>
+ </record>
+
<record model="ir.ui.view" id="view_holiday">
<field name="name">hr.holidays.tree</field>
<field name="model">hr.holidays</field>
@@ -250,6 +310,7 @@
<field name="name">Leave Requests</field>
<field name="res_model">hr.holidays</field>
<field name="view_type">form</field>
+ <field name="view_mode">tree,form,kanban</field>
<field name="view_id" ref="edit_holiday_new"/>
<field name="context">{"search_default_department_id": department_id, "search_default_my_leaves": 1}</field>
<field name="domain">[('type','=','remove')]</field>
@@ -284,6 +345,7 @@
<field name="name">Allocation Requests</field>
<field name="res_model">hr.holidays</field>
<field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
<field name="context">{"search_default_my_leaves": 1,'default_type':'add',"search_default_department_id": department_id}</field>
<field name="domain">[('type','=','add')]</field>
<field name="view_id" ref="allocation_leave_new"/>
@@ -316,6 +378,20 @@
<field name="domain">[('holiday_type','=','employee')]</field>
<field name="search_view_id" ref="view_hr_holidays_filter"/>
</record>
+
+ <record model="ir.actions.act_window.view" id="open_company_allocation_tree">
+ <field name="sequence" eval="1"/>
+ <field name="view_mode">tree</field>
+ <field name="view_id" ref="view_holiday_allocation_tree"/>
+ <field name="act_window_id" ref="open_company_allocation"/>
+ </record>
+
+ <record model="ir.actions.act_window.view" id="open_company_allocation_form">
+ <field name="sequence" eval="2"/>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="allocation_leave_new"/>
+ <field name="act_window_id" ref="open_company_allocation"/>
+ </record>
<menuitem name="Leaves Summary" parent="menu_open_ask_holidays" id="menu_open_company_allocation" action="open_company_allocation" sequence="40"/>
=== modified file 'idea/idea.py'
--- idea/idea.py 2011-09-22 06:14:19 +0000
+++ idea/idea.py 2011-10-11 12:59:28 +0000
@@ -198,6 +198,7 @@
'stat_vote_ids': fields.one2many('idea.vote.stat', 'idea_id', 'Statistics', readonly=True),
'vote_limit': fields.integer('Maximum Vote per User',
help="Set to one if you require only one Vote per user"),
+ 'color': fields.integer('Color Index'),
}
_defaults = {
@@ -205,6 +206,7 @@
'my_vote': lambda *a: '-1',
'state': lambda *a: 'draft',
'vote_limit': lambda * a: 1,
+ 'color': 0,
'created_date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'visibility': lambda *a: True,
}
=== modified file 'idea/idea_view.xml'
--- idea/idea_view.xml 2011-10-07 16:22:43 +0000
+++ idea/idea_view.xml 2011-10-11 12:59:28 +0000
@@ -51,7 +51,7 @@
</tree>
</field>
</record>
-
+
<!-- Idea Category Action -->
<record model="ir.actions.act_window" id="action_idea_category">
@@ -273,7 +273,7 @@
<field name="count_comments"/>
<field name="count_votes"/>
<field name="state"/>
- <button name="idea_open" string="Open" states="draft" icon="terp-gtk-go-back-rtl"/>
+ <button name="idea_open" string="Open" states="draft" icon="terp-gtk-go-back-rtl"/>
<button name="%(idea.action_idea_post_vote)d" icon="gtk-execute" type="action" states="open" string="Submit Vote"/>
<button name="idea_close" string="Accept" states="open" icon="gtk-jump-to"/>
<button name="idea_cancel" string="Refuse" states="open" icon="gtk-cancel"/>
@@ -310,14 +310,88 @@
</field>
</record>
+ <!-- IDEA Kanban View -->
+ <record model="ir.ui.view" id="idea_kanban_view">
+ <field name="name">IDEA - Ideas Kanban</field>
+ <field name="model">idea.idea</field>
+ <field name="type">kanban</field>
+ <field name="arch" type="xml">
+ <kanban default_group_by="state">
+ <templates>
+ <t t-name="kanban-box">
+ <t t-set="color" t-value="kanban_color(record.color.raw_value || record.state.raw_value)"/>
+ <div t-att-class="color + (record.color.raw_value == 1 ? ' oe_kanban_color_alert' : '')">
+ <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">
+ <field name="name"/>
+ </td>
+ <td valign="top" width="22"><img t-att-src="kanban_gravatar(record.user_id.value, 22)" class="oe_kanban_gravatar"/></td>
+ </tr>
+ </table>
+ <div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_box_show_onclick_trigger">
+ <div class="oe_kanban_right oe_kanban_small">
+ <field name="user_id"/>
+ </div>
+ <div class="oe_kanban_title2">
+ <field name="category_id"/>
+ </div>
+ <div class="oe_kanban_title3">
+ <t t-if="record.created_date.raw_value">Created Date : </t>
+ <field name="created_date"/>
+ </div>
+ <div class="oe_kanban_title3">
+ <t t-if="record.open_date.raw_value">Open Date : </t>
+ <field name="open_date"/>
+ </div>
+ <div class="oe_kanban_title3">
+ <i><t t-if="record.vote_avg.raw_value">Average Score : </t>
+ <field name="vote_avg"/></i>
+ </div>
+ </div>
+ <div class="oe_kanban_buttons_set oe_kanban_color_border oe_kanban_color_bglight oe_kanban_box_show_onclick">
+ <div class="oe_kanban_left">
+ <a string="Edit" icon="gtk-edit" type="edit"/>
+ <a string="Change Color" icon="color-picker" type="color" name="color"/>
+ </div>
+ <div class="oe_kanban_right">
+ <a name="idea_open" string="Open" states="draft" type="object" icon="terp-gtk-go-back-rtl"/>
+ <a name="%(idea.action_idea_post_vote)d" icon="gtk-execute" type="action" states="open" string="Submit Vote"/>
+ <a name="idea_close" string="Accept" states="open" type="object" icon="gtk-jump-to"/>
+ <a name="idea_cancel" string="Refuse" states="open" type="object" icon="gtk-cancel"/>
+ </div>
+ <br class="oe_kanban_clear"/>
+ </div>
+ </div>
+ </div>
+ </t>
+ </templates>
+ </kanban>
+ </field>
+ </record>
+
<record model="ir.actions.act_window" id="action_idea_idea">
<field name="name">Ideas</field>
<field name="res_model">idea.idea</field>
<field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
+ <field name="view_mode">tree,form,kanban</field>
<field name="search_view_id" ref="view_idea_idea_search"/>
</record>
+ <record model="ir.actions.act_window.view" id="action_idea_tree_view">
+ <field name="sequence" eval="1"/>
+ <field name="view_mode">tree</field>
+ <field name="view_id" ref="view_idea_idea_tree"/>
+ <field name="act_window_id" ref="action_idea_idea"/>
+ </record>
+ <record model="ir.actions.act_window.view" id="action_idea_form_view">
+ <field name="sequence" eval="2"/>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="view_idea_idea_form"/>
+ <field name="act_window_id" ref="action_idea_idea"/>
+ </record>
+
<menuitem name="Ideas" parent="menu_ideas1" id="menu_idea_idea" action="action_idea_idea" sequence="1"/>
<!-- Open Idea Action -->
=== modified file 'product/product_view.xml'
--- product/product_view.xml 2011-09-29 05:14:07 +0000
+++ product/product_view.xml 2011-10-11 12:59:28 +0000
@@ -86,6 +86,7 @@
<field name="purchase_ok"/>
</group>
<group colspan="1" col="1">
+ <separator string="Product Image" colspan="1"/>
<field name="product_image" widget='image' nolabel="1"/>
</group>
</group>
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp