Se rendre au contenu
Menu
Cette question a été signalée
1 Répondre
3241 Vues

Hello All,

i selected patient from   patient  and open patient form  , And above the patient form i add a button for this button wizard is opened and getting  appointment information .

I want that patient_id filed in   create appointment  wizard should be auto field when user open it

How can i  do this? 


##################### Code ####################

from odoo import models, fields, api



class CreateAppintment(models.TransientModel):

    _name = 'create.appointment'

    patient_id = fields.Many2one('clinic.patient', string='Patient')

    date_appointment = fields.Datetime('Date of Appointment')

    appointment_type = fields.Selection([('type1', 'Medical consultation'), ('type2', 'Check Up')],

                                        string="Appointment Type",

                                        help="To Detect The Type Of Appointment")


    appointment_status = fields.Selection(

        [('Pending', 'Pending'), ('Comfirmed', 'Comfirmed'), ('Done', 'Done'), ('Canceled', 'Canceled')], String="Status",

        readonly=True, default='Pending')

    doctor_id = fields.Many2one('hr.employee', string='Doctor',

                                domain="[('department_id.name', '=', 'Doctors')]")

    notes = fields.Html('Notes')


    def default_get(self):

        pass


        # Create Appointment


    def create_appointment(self):

        vals = {

            'patient_id': self.patient_id.id,

            'doctor_id': self.doctor_id.id,

            'date_appointment': self.date_appointment,

            'appointment_type': self.appointment_type,

            'appointment_status': self.appointment_status,

            'notes': self.notes

        }

        # adding a message to the Chatter from code

        self.patient_id.message_post(body='Test String', subject="Appointment Creation")

        # creating appointments from the code

        self.env['clinic.appointment'].create(vals)



Avatar
Ignorer
Meilleure réponse

Hi,

You can pass the default value using the context, in the question you haven't added shown how you are opening the wizard(code of button),

See this sample for a field, you can pass similar context for button also,

<field name="test" context="{'default_patient_id': active_id}"/>

Thanks

Avatar
Ignorer
Auteur

# code of button in patient model xml to open Create appointment wizard

<button name="%(UP_Clinic.create_appointment_wizard)d" string="Create Appointment" type="action" class="oe_highlight" />

Publications associées Réponses Vues Activité
2
août 25
2396
1
juil. 25
903
1
août 25
1151
0
mai 25
1341
2
avr. 25
3560