mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP]pms: added pms team model and view
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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
17
pms/models/pms_team.py
Normal 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')
|
||||
@@ -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"):
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
107
pms/views/pms_team_views.xml
Normal file
107
pms/views/pms_team_views.xml
Normal 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>
|
||||
Reference in New Issue
Block a user