[IMP]pms: added pms team model and view

This commit is contained in:
braisab
2022-03-28 20:59:39 +02:00
committed by Darío Lodeiros
parent 27fdc2a650
commit c618dad695
7 changed files with 131 additions and 0 deletions

View File

@@ -93,6 +93,7 @@
"views/res_partner_id_category.xml",
"views/payment_transaction_views.xml",
"views/account_move_line_views.xml",
"views/pms_team_views.xml",
],
"demo": [
"demo/pms_master_data.xml",

View File

@@ -47,3 +47,4 @@ from . import res_partner_id_number
from . import pms_automated_mails
from . import payment_transaction
from . import res_partner_id_category
from . import pms_team

17
pms/models/pms_team.py Normal file
View File

@@ -0,0 +1,17 @@
from odoo import models, fields, api
class PmsTeam(models.Model):
_name = "pms.team"
_inherit = ['mail.thread']
_description = "PMS Team"
_check_pms_properties_auto = True
name = fields.Char('PMS Team', required=True)
sequence = fields.Integer('Sequence', default=10)
active = fields.Boolean(default=True)
pms_property_id = fields.Many2one(
'pms.property', string='Property')
user_id = fields.Many2one('res.users', string='Team Leader')
member_ids = fields.One2many(
'res.users', 'pms_team_id', string='Channel Members')

View File

@@ -276,6 +276,8 @@ class ResPartner(models.Model):
vat_document_types.append((doc_type.name, doc_type.name))
return vat_document_types
team_id = fields.Many2one("pms.team", "PMS Team")
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.gender")
def _compute_gender(self):
if hasattr(super(), "_compute_gender"):

View File

@@ -25,6 +25,8 @@ class ResUsers(models.Model):
domain="[('company_id','in',company_ids)]",
)
pms_team_id = fields.Many2one("pms.team", "User's PMS Team")
@api.model
def get_active_property_ids(self):
# TODO: Require performance test and security (dont allow any property id)

View File

@@ -66,3 +66,4 @@ user_access_res_partner_portal,user_access_res_partner_portal,model_res_partner,
user_access_pms_precheckin_portal,user_access_pms_precheckin_portal,model_pms_checkin_partner,base.group_portal,1,1,1,1
user_access_pms_booking_duplicate,user_access_pms_booking_duplicate,model_pms_booking_duplicate,pms.group_pms_user,1,1,1,1
user_access_pms_reservation_duplicate,user_access_pms_reservation_duplicate,model_pms_reservation_duplicate,pms.group_pms_user,1,1,1,1
user_access_pms_team,user_access_pms_team,model_pms_team,pms.group_pms_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
66 user_access_pms_precheckin_portal user_access_pms_precheckin_portal model_pms_checkin_partner base.group_portal 1 1 1 1
67 user_access_pms_booking_duplicate user_access_pms_booking_duplicate model_pms_booking_duplicate pms.group_pms_user 1 1 1 1
68 user_access_pms_reservation_duplicate user_access_pms_reservation_duplicate model_pms_reservation_duplicate pms.group_pms_user 1 1 1 1
69 user_access_pms_team user_access_pms_team model_pms_team pms.group_pms_user 1 1 1 1

View File

@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="pms_team_view_form" model="ir.ui.view">
<field name="name">pms.team.form</field>
<field name="model">pms.team</field>
<field name="arch" type="xml">
<form string="PMS Team">
<sheet>
<div class="oe_button_box" name="button_box"/>
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
<div class="oe_title">
<label for="name" class="oe_edit_only" string="PMS Team"/>
<h1>
<field name="name" placeholder="PMS Team name..."/>
</h1>
<div name="options_active" />
</div>
<group>
<group name="left">
<field name="active"/>
<field name="user_id" domain="[('share', '=', False)]"/>
<field name="pms_property_id" options="{'no_create': True}"/>
</group>
<group name="right">
</group>
</group>
<notebook>
<page name="members" string="Team Members" >
<field name="member_ids" widget="many2many" options="{'not_delete': True}">
<kanban quick_create="false" create="true" delete="true">
<field name="id"/>
<field name="name"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click" style="max-width: 200px">
<div class="o_kanban_record_top">
<img t-att-src="kanban_image('res.users', 'image_128', record.id.raw_value)" class="oe_avatar oe_kanban_avatar_smallbox o_image_40_cover mb0" alt="Avatar"/>
<div class="o_kanban_record_headings ml8">
<strong class="o_kanban_record_title"><field name="name"/></strong>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</page>
</notebook>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" help="Follow this team to automatically track the events associated to users of this team."/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<record id="pms_team_view_tree" model="ir.ui.view">
<field name="name">pms.team.tree</field>
<field name="model">pms.team</field>
<field name="field_parent">child_ids</field>
<field name="arch" type="xml">
<tree string="PMS Team" sample="1" multi_edit="1">
<field name="sequence" widget="handle"/>
<field name="name" readonly="1"/>
<field name="active" invisible="1"/>
<field name="user_id" domain="[('share', '=', False)]"/>
<field name="pms_property_id"/>
</tree>
</field>
</record>
<record id="pms_team_view_kanban" model="ir.ui.view">
<field name="name">pms.team.kanban</field>
<field name="model">pms.team</field>
<field name="arch" type="xml">
<kanban class="o_kanban_mobile" sample="1">
<templates>
<t t-name="kanban-box">
<div t-attf-class="oe_kanban_content oe_kanban_global_click">
<div class="row">
<div class="col-6">
<strong><field name="name"/></strong>
</div>
<div class="col-6">
<span class="float-right"><field name="user_id"/></span>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<record id="pms_team_action" model="ir.actions.act_window">
<field name="name">Teams</field>
<field name="res_model">pms.team</field>
<field name="view_mode">tree,form,kanban</field>
</record>
<menuitem
action="pms_team_action"
id="pms_team_menu"
parent="pms.pms_configuration_menu"
sequence="55"
name="Teams"
/>
</odoo>