Fix
This commit is contained in:
parent
99be174a93
commit
36bafab94e
|
@ -19,6 +19,7 @@ from . import dash
|
|||
from . import invoice
|
||||
from . import statement
|
||||
from . import stock
|
||||
from . import operation
|
||||
|
||||
|
||||
def register():
|
||||
|
@ -36,6 +37,7 @@ def register():
|
|||
configuration.Configuration,
|
||||
product.Template,
|
||||
product.PriceList,
|
||||
operation.Maintenance,
|
||||
booking.Booking,
|
||||
booking.BookingDailyStart,
|
||||
booking.ManagerStart,
|
||||
|
|
14
booking.xml
14
booking.xml
|
@ -83,13 +83,6 @@ this repository contains the full copyright notices and license terms. -->
|
|||
<field name="count" eval="True"/>
|
||||
<field name="act_window" ref="act_booking_form"/>
|
||||
</record>
|
||||
<!-- <record model="ir.action.act_window.domain" id="act_booking_form_domain_check_in">
|
||||
<field name="name">Check In</field>
|
||||
<field name="sequence" eval="30"/>
|
||||
<field name="domain" eval="[('registration_state', '=', 'check_in')]" pyson="1"/>
|
||||
<field name="count" eval="True"/>
|
||||
<field name="act_window" ref="act_booking_form"/>
|
||||
</record> -->
|
||||
<record model="ir.action.act_window.domain" id="act_booking_form_domain_no_show">
|
||||
<field name="name">No Show</field>
|
||||
<field name="sequence" eval="50"/>
|
||||
|
@ -100,13 +93,6 @@ this repository contains the full copyright notices and license terms. -->
|
|||
<field name="count" eval="True"/>
|
||||
<field name="act_window" ref="act_booking_form"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.domain" id="act_booking_form_domain_check_out">
|
||||
<field name="name">Check Out</field>
|
||||
<field name="sequence" eval="30"/>
|
||||
<field name="domain" eval="[('registration_state', '=', 'check_out')]" pyson="1"/>
|
||||
<field name="count" eval="True"/>
|
||||
<field name="act_window" ref="act_booking_form"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.domain" id="act_booking_form_domain_all">
|
||||
<field name="name">All</field>
|
||||
<field name="sequence" eval="90"/>
|
||||
|
|
|
@ -0,0 +1,101 @@
|
|||
#This file is part of Presik. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
from trytond.model import ModelView, ModelSQL, fields, Workflow
|
||||
from trytond.pyson import Eval, Bool
|
||||
|
||||
|
||||
STATES = {'readonly': Eval('state') != 'draft'}
|
||||
|
||||
|
||||
class Maintenance(Workflow, ModelSQL, ModelView):
|
||||
'Hotel Maintenance'
|
||||
__name__ = 'hotel.maintenance'
|
||||
room = fields.Many2One('hotel.room', 'Room', required=True, states=STATES)
|
||||
start_date = fields.Date('Start Maintenance', states=STATES)
|
||||
end_date = fields.Date('End Maintenance', states={
|
||||
'required': Bool(Eval('start_date')),
|
||||
'readonly': Eval('state') != 'draft'
|
||||
})
|
||||
total_days = fields.Function(fields.Integer('Total Days'), 'get_days')
|
||||
issue = fields.Text('Issue', required=True)
|
||||
action = fields.Text('Action', states={
|
||||
'required': Eval('state') == 'finished',
|
||||
'readonly': Eval('state') != 'confirmed'
|
||||
})
|
||||
inspected_by = fields.Many2One('company.employee', 'Inspected By',
|
||||
required=True)
|
||||
state = fields.Selection([
|
||||
('draft', 'Draft'),
|
||||
('confirmed', 'Confirmed'),
|
||||
('finished', 'Finished'),
|
||||
('cancelled', 'Canceled'),
|
||||
], 'State', readonly=True, select=True)
|
||||
criticality = fields.Selection([
|
||||
('low', 'Low'),
|
||||
('important', 'Important'),
|
||||
('urgent', 'Urgent'),
|
||||
], 'Criticality')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(Maintenance, cls).__setup__()
|
||||
cls._transitions |= set((
|
||||
('draft', 'confirmed'),
|
||||
('draft', 'cancelled'),
|
||||
('confirmed', 'draft'),
|
||||
('cancelled', 'draft'),
|
||||
('confirmed', 'cancelled'),
|
||||
('confirmed', 'finished'),
|
||||
('finished', 'confirmed'),
|
||||
))
|
||||
cls._buttons.update({
|
||||
'confirm': {
|
||||
'invisible': Eval('state') != 'draft',
|
||||
},
|
||||
'finish': {
|
||||
'invisible': Eval('state') != 'confirmed',
|
||||
},
|
||||
'draft': {
|
||||
'invisible': Eval('state') != 'confirmed',
|
||||
},
|
||||
'cancel': {
|
||||
'invisible': Eval('state') != 'finished',
|
||||
}
|
||||
})
|
||||
|
||||
@staticmethod
|
||||
def default_state():
|
||||
return 'draft'
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('draft')
|
||||
def draft(cls, records):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('cancelled')
|
||||
def cancel(cls, records):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('confirmed')
|
||||
def confirm(cls, records):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('finished')
|
||||
def finish(cls, records):
|
||||
pass
|
||||
|
||||
@fields.depends('start_date', 'end_date')
|
||||
def on_change_start_date(self):
|
||||
if not self.start_date:
|
||||
self.end_date = None
|
||||
|
||||
def get_days(self, name):
|
||||
if self.end_date and self.start_date:
|
||||
return (self.end_date - self.start_date).days
|
|
@ -0,0 +1,92 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data>
|
||||
|
||||
<record model="ir.ui.view" id="hotel_maintenance_view_tree">
|
||||
<field name="model">hotel.maintenance</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="name">maintenance_tree</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="hotel_maintenance_view_form">
|
||||
<field name="model">hotel.maintenance</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">maintenance_form</field>
|
||||
</record>
|
||||
<record model="ir.action.act_window" id="act_hotel_maintenance_form">
|
||||
<field name="name">Maintenance</field>
|
||||
<field name="res_model">hotel.maintenance</field>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_maintenance_form_view1">
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="view" ref="hotel_maintenance_view_tree"/>
|
||||
<field name="act_window" ref="act_hotel_maintenance_form"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_maintenance_form_view2">
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="view" ref="hotel_maintenance_view_form"/>
|
||||
<field name="act_window" ref="act_hotel_maintenance_form"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.domain" id="act_hotel_maintenance_form_domain_draft">
|
||||
<field name="name">Draft`</field>
|
||||
<field name="sequence" eval="50"/>
|
||||
<field name="domain" eval="['OR',
|
||||
[('state', '=', 'draft')],
|
||||
]" pyson="1"/>
|
||||
<field name="count" eval="True"/>
|
||||
<field name="act_window" ref="act_hotel_maintenance_form"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.domain" id="act_hotel_maintenance_form_domain_confirmed">
|
||||
<field name="name">Confirmed</field>
|
||||
<field name="sequence" eval="50"/>
|
||||
<field name="domain" eval="['OR',
|
||||
[('state', '=', 'confirmed')],
|
||||
]" pyson="1"/>
|
||||
<field name="count" eval="True"/>
|
||||
<field name="act_window" ref="act_hotel_maintenance_form"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.domain" id="act_hotel_maintenance_form_domain_all">
|
||||
<field name="name">All</field>
|
||||
<field name="sequence" eval="90"/>
|
||||
<field name="domain" eval="[]" pyson="1"/>
|
||||
<field name="act_window" ref="act_hotel_maintenance_form"/>
|
||||
</record>
|
||||
<menuitem name="Maintenance" parent="hotel.menu_hotel"
|
||||
sequence="20" action="act_hotel_maintenance_form"
|
||||
id="menu_hotel_maintenance"/>
|
||||
|
||||
<!-- Model Access -->
|
||||
<record model="ir.model.access" id="access_maintenance">
|
||||
<field name="model" search="[('model', '=', 'hotel.maintenance')]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.access" id="access_maintenance_group_hotel">
|
||||
<field name="model" search="[('model', '=', 'hotel.maintenance')]"/>
|
||||
<field name="group" ref="group_hotel"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.access" id="access_maintenance_group_hotel_frontdesk">
|
||||
<field name="model" search="[('model', '=', 'hotel.maintenance')]"/>
|
||||
<field name="group" ref="group_hotel_frontdesk"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.access" id="access_maintenance_group_hotel_admin">
|
||||
<field name="model" search="[('model', '=', 'hotel.maintenance')]"/>
|
||||
<field name="group" ref="group_hotel_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
<field name="perm_delete" eval="True"/>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
13
room.py
13
room.py
|
@ -25,7 +25,7 @@ class Room(ModelSQL, ModelView):
|
|||
amenities = fields.Many2Many('hotel.room-hotel.amenities', 'room',
|
||||
'amenities', 'Amenities')
|
||||
space = fields.Integer('Space', help='Space on m2')
|
||||
channel_id = fields.Char('Channel ID')
|
||||
channel_id = fields.Char('Channel Manager ID')
|
||||
main_accommodation = fields.Many2One('product.template',
|
||||
'Main Accommodation', ondelete='RESTRICT', depends=['templates'],
|
||||
domain=[('id', 'in', Eval('templates', []))],
|
||||
|
@ -42,6 +42,11 @@ class Room(ModelSQL, ModelView):
|
|||
def default_active():
|
||||
return True
|
||||
|
||||
@fields.depends('start_mnt', 'end_mnt')
|
||||
def on_change_start_mnt(self):
|
||||
if not self.start_mnt:
|
||||
self.end_mnt = None
|
||||
|
||||
|
||||
class RoomAmenities(ModelSQL):
|
||||
'Room - Amenities'
|
||||
|
@ -93,13 +98,9 @@ class CleanningDays(ModelSQL, ModelView):
|
|||
('5', 'Friday'),
|
||||
('6', 'Saturday'),
|
||||
('7', 'Sunday'),
|
||||
], 'Weekday', required=True)
|
||||
], 'Weekday', required=True)
|
||||
note = fields.Text('Note')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(CleanningDays, cls).__setup__()
|
||||
|
||||
|
||||
class RoomTemplate(ModelSQL):
|
||||
'Room - Template'
|
||||
|
|
|
@ -8,11 +8,11 @@ depends:
|
|||
sale
|
||||
product_price_list
|
||||
sale_price_list
|
||||
account_voucher
|
||||
party_personal
|
||||
commission
|
||||
dash
|
||||
account_statement
|
||||
account_voucher
|
||||
commission
|
||||
party_personal
|
||||
dash
|
||||
sale_shop
|
||||
xml:
|
||||
hotel.xml
|
||||
|
@ -32,3 +32,4 @@ xml:
|
|||
sale.xml
|
||||
policy.xml
|
||||
message.xml
|
||||
operation.xml
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<form col="6">
|
||||
<label name="room"/>
|
||||
<field name="room"/>
|
||||
<label name="criticality"/>
|
||||
<field name="criticality"/>
|
||||
<label name="create_uid"/>
|
||||
<field name="create_uid"/>
|
||||
<label name="start_date"/>
|
||||
<field name="start_date"/>
|
||||
<label name="end_date"/>
|
||||
<field name="end_date"/>
|
||||
<label name="total_days"/>
|
||||
<field name="total_days"/>
|
||||
<label name="inspected_by"/>
|
||||
<field name="inspected_by"/>
|
||||
<separator name="issue" colspan="4"/>
|
||||
<field name="issue" colspan="4"/>
|
||||
<separator name="action" colspan="4"/>
|
||||
<field name="action" colspan="4"/>
|
||||
<group col="6" colspan="4" id="buttons">
|
||||
<label name="state"/>
|
||||
<field name="state"/>
|
||||
<button name="draft" string="Draft"/>
|
||||
<button name="cancel" string="Cancel" icon="tryton-cancel"/>
|
||||
<button name="confirm" string="Confirm" icon="tryton-forward"/>
|
||||
<button name="finish" string="Finish" icon="tryton-cancel"/>
|
||||
</group>
|
||||
</form>
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tree>
|
||||
<field name="room" expand="1"/>
|
||||
<field name="start_date" expand="1"/>
|
||||
<field name="end_date" expand="1"/>
|
||||
<field name="inspected_by" expand="1"/>
|
||||
<field name="criticality" expand="1"/>
|
||||
<field name="total_days" expand="1"/>
|
||||
<field name="state" expand="1"/>
|
||||
</tree>
|
Loading…
Reference in New Issue