commit
50636af14c
|
|
@ -9673,7 +9673,7 @@ msgstr "رقم الإشارة"
|
|||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_visit_location__name
|
||||
msgid "Reference"
|
||||
msgstr "كود الزيارة"
|
||||
msgstr "رقم الزيارة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.external_request_form
|
||||
|
|
|
|||
|
|
@ -659,6 +659,41 @@ class VisitsSettings(models.Model):
|
|||
_name = 'visits.types'
|
||||
|
||||
name = fields.Char(string="Name")
|
||||
creation_method = fields.Selection(
|
||||
[('manual', 'Manual'),('automatic', 'Automatic')],
|
||||
string="Creation Method",
|
||||
default='manual',
|
||||
help="Whether the visit is entered manually or created automatically"
|
||||
)
|
||||
recurrence_interval = fields.Integer(
|
||||
string="Recurrence Interval",
|
||||
default=1,
|
||||
help="Determines how often visits are created automatically"
|
||||
)
|
||||
recurrence_period = fields.Selection([
|
||||
('days', 'Days'),
|
||||
('weeks', 'Weeks'),
|
||||
('months', 'Months')
|
||||
], string="Recurrence Period", default='days',
|
||||
help="Time unit for recurrence")
|
||||
otp_verification = fields.Boolean(
|
||||
string="OTP Verification",
|
||||
default=False,
|
||||
help="Whether this visit requires OTP confirmation from the family"
|
||||
)
|
||||
otp_validity_minutes = fields.Integer(
|
||||
string="OTP Validity (Minutes)",
|
||||
default=5,
|
||||
help="OTP code validity duration in minutes"
|
||||
)
|
||||
active = fields.Boolean(
|
||||
string="Active",
|
||||
default=True
|
||||
)
|
||||
survey_id = fields.Many2one(
|
||||
'survey.survey',
|
||||
string="Evaluation Survey"
|
||||
)
|
||||
|
||||
class SurveySetting(models.Model):
|
||||
_name = 'survey.setting'
|
||||
|
|
|
|||
|
|
@ -7,17 +7,22 @@ class Visit(models.Model):
|
|||
_inherit = ['mail.thread', 'mail.activity.mixin']
|
||||
_order = 'create_date desc'
|
||||
|
||||
@api.model
|
||||
def _default_researcher_team(self):
|
||||
researcher_team = self.env['committees.line'].search([('employee_id','in',[self.env.user.employee_id.id])],limit=1)
|
||||
return researcher_team.id
|
||||
|
||||
benefit_type = fields.Selection([
|
||||
('benefit', 'Benefit'),
|
||||
('family', 'Family'),
|
||||
], string='Type', default="benefit")
|
||||
benefit_id = fields.Many2one(
|
||||
'grant.benefit',string='Family file',domain="[('state', '=', 'second_approve')]")
|
||||
'grant.benefit',string='Family file',domain="[('researcher_id','=',researcher_team),('state', '=', 'second_approve')]")
|
||||
benefit_name = fields.Char(related="benefit_id.name")
|
||||
benefit_code= fields.Char(related="benefit_id.code")
|
||||
researcher_team = fields.Many2one("committees.line", string="Researcher Team",related="benefit_id.researcher_id")
|
||||
researcher_team = fields.Many2one("committees.line", string="Researcher Team", default=_default_researcher_team)
|
||||
researcher_ids = fields.Many2many("hr.employee", string="Researcher",compute="get_researcher_ids",readonly=False)
|
||||
visit_date = fields.Datetime(string='Visit Date')
|
||||
visit_date = fields.Datetime(string='Visit Date', tracking=True)
|
||||
description = fields.Char(string='Description')
|
||||
message = fields.Text(string='Message')
|
||||
visit_objective = fields.Selection([
|
||||
|
|
@ -38,7 +43,7 @@ class Visit(models.Model):
|
|||
('done', 'Done'),
|
||||
('cancel', 'Cancel'),
|
||||
('close', 'Close'),
|
||||
], string='State',default="draft")
|
||||
], string='State',default="draft", tracking=True)
|
||||
family_id = fields.Many2one('benefit.family')
|
||||
reason = fields.Text(string='Reason/Justification')
|
||||
name = fields.Char(string='Reference', required=True, copy=False, readonly=True, index=True,
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ access_benefit_branch_manager_record,access_benefit_branch_manager_record,model_
|
|||
access_benefit_manager_record,access_benefit_manager_record,model_grant_benefit,odex_benefit.group_benefit_manager,1,1,1,1
|
||||
access_benefit_edit_record,access_benefit_edit_record,model_grant_benefit,odex_benefit.group_benefit_edit,1,1,1,1
|
||||
access_education_status_all,education_status,model_education_status,odex_benefit.group_benefit_info,1,1,1,1
|
||||
access_education_status_all,education_status,model_education_status,,1,0,0,0
|
||||
access_education_status_all_users,education_status_all_users,model_education_status,,1,0,0,0
|
||||
access_weak_course_all,weak_course,model_weak_course,odex_benefit.group_benefit_info,1,1,1,1
|
||||
access_benefit_family_record,access_benefit_family_record,model_benefit_family,,1,1,1,0
|
||||
access_benefit_record_city,access_benefit_record_city,model_res_country_city,,1,1,0,0
|
||||
|
|
|
|||
|
|
|
@ -5,10 +5,7 @@
|
|||
<record model="ir.actions.act_window" id="grant_benefit_dashboard_action">
|
||||
<field name="name">Family Profile</field>
|
||||
<field name="res_model">grant.benefit</field>
|
||||
<!-- <field name="view_type">form</field>-->
|
||||
<field name="view_mode">kanban,form,tree,activity,google_map</field>
|
||||
<!-- <field name="domain">[('state','=','draft')]-->
|
||||
<!-- </field>-->
|
||||
<field name="context">{'is_benefit': True,'search_default_state': 1}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">Create the Benefit
|
||||
|
|
|
|||
|
|
@ -870,6 +870,17 @@
|
|||
<group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="creation_method"/>
|
||||
<label for="recurrence_interval" attrs="{'invisible':[('creation_method','!=','automatic')]}"/>
|
||||
<div class="o_row" attrs="{'invisible':[('creation_method','!=','automatic')]}">
|
||||
<field name="recurrence_interval" class="oe_inline" nolabel="1"/>
|
||||
<field name="recurrence_period" class="oe_inline" nolabel="1"/>
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<field name="otp_verification" widget="boolean_toggle"/>
|
||||
<field name="otp_validity_minutes" attrs="{'invisible':[('otp_verification','=',False)]}"/>
|
||||
<field name="survey_id"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
|
|
@ -882,6 +893,9 @@
|
|||
<field name="arch" type="xml">
|
||||
<tree string="Visits Types">
|
||||
<field name="name"/>
|
||||
<field name="creation_method"/>
|
||||
<field name="otp_verification" widget="boolean_toggle"/>
|
||||
<field name="survey_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
|||
|
|
@ -17,15 +17,10 @@
|
|||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<!-- <field name="benefit_type"/>-->
|
||||
<field name="name"/>
|
||||
<field name="description" attrs="{'readonly':[('state', 'in', ['close','cancel'])]}"/>
|
||||
<field name="visit_types" attrs="{'readonly':[('state', 'in', ['close','cancel'])]}"/>
|
||||
<field name="description" invisible="1" attrs="{'readonly':[('state', 'in', ['close','cancel'])]}"/>
|
||||
<field name="visit_types" domain="[('creation_method','=','manual')]" attrs="{'readonly':[('state', 'in', ['close','cancel'])]}"/>
|
||||
<field name="benefit_id" attrs="{'readonly':[('state', 'in', ['close','cancel'])]}"/>
|
||||
<!-- <field name="benefit_code"/>-->
|
||||
<!-- <field name="family_id" attrs="{'invisible':[('benefit_type','=','benefit')]}"/>-->
|
||||
<!-- <field name="selector"/>-->
|
||||
<!-- <field name="researcher_id" attrs="{'invisible':[('selector','=','researcher_team')]}"/>-->
|
||||
<field name="researcher_team" attrs="{'readonly':[('state', 'in', ['close','cancel'])]}"/>
|
||||
<field name="researcher_ids" invisible="1" widget="many2many_tags" attrs="{'readonly':[('state', 'in', ['close','cancel'])]}" force_save="1"/>
|
||||
<field name="message" attrs="{'invisible':[('state', 'not in', ['draft', 'contact'])],'readonly':[('state', 'in', ['close','cancel'])]}"/>
|
||||
|
|
@ -40,6 +35,7 @@
|
|||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/>
|
||||
<field name="activity_ids"/>
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -50,17 +46,35 @@
|
|||
<field name="model">visit.location</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Visits">
|
||||
<field name="name"/>
|
||||
<field name="benefit_id"/>
|
||||
<field name="researcher_team"/>
|
||||
<field name="visit_date"/>
|
||||
<field name="description"/>
|
||||
<field name="description" invisible="1"/>
|
||||
<field name="visit_objective" invisible="1"/>
|
||||
<field name="visit_types"/>
|
||||
<field name="contact_type"/>
|
||||
<field name="state"/>
|
||||
<field name="state" widget="badge" decoration-muted="state in ['draft']" decoration-info="state in ['contact']" decoration-warning="state in ['schedule_a_visit']" decoration-success="state in ['done', 'close']" decoration-danger="state in ['cancel']"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- <record id="visit_location_activity_view" model="ir.ui.view">-->
|
||||
<!-- <field name="name">visit.location.activity.view</field>-->
|
||||
<!-- <field name="model">visit.location</field>-->
|
||||
<!-- <field name="arch" type="xml">-->
|
||||
<!-- <activity string="Activity">-->
|
||||
<!-- <field name="id"/>-->
|
||||
<!-- <templates>-->
|
||||
<!-- <div t-name="activity-box">-->
|
||||
<!-- <div>-->
|
||||
<!-- <field name="name" display="full"/>-->
|
||||
<!-- <field name="benefit_id" muted="1" display="full"/>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </templates>-->
|
||||
<!-- </activity>-->
|
||||
<!-- </field>-->
|
||||
<!-- </record>-->
|
||||
<record model="ir.ui.view" id="visit_search">
|
||||
<field name="name">visit.location.search</field>
|
||||
<field name="model">visit.location</field>
|
||||
|
|
@ -68,9 +82,6 @@
|
|||
<search>
|
||||
<field name="benefit_id"/>
|
||||
<field name="benefit_code"/>
|
||||
<!-- <field name="id_number"/>-->
|
||||
<!-- <field name="email"/>-->
|
||||
<!-- <field name="phone"/>-->
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
|||
Loading…
Reference in New Issue