Как сгенерировать новый лид с помощью мастера кнопок?

Я пытаюсь добавить кнопку «Создать новый лид» внутри события календаря, которая копирует все об этой возможности и создает новый лид с теми же данными и часами события.

это мой .py

class AnserCopy(models.TransientModel):
_name = 'anser.copy.wizard'

comments = fields.Text('Comments')
opportunity_id = fields.Many2one('crm.lead', string='Opportunity', domain = "[('type', '=', 'opportunity')]")
tag_ids = fields.Many2many('crm.lead.tag', 'crm_lead_tag_rel', 'lead_id', 'tag_id', string='Tags', help = "Classify and analyze your lead/opportunity categories like: Training, Service")
event_id = fields.Many2one('event.event', string='Event', required=True, ondelete='cascade')

@api.multi
def action_change_appointment_state(self):
wizards = self.browse(self._ids)

for wizard in wizards:
# get the lead to transform
event_id = wizard.event_id.copy()
opportunity_id = event_id.opportunity
opportunity_id = wizard.event_id.opportunity_id.copy()
opportunity_id.tag_ids = wizard.tag_ids

и мой .xml

<record model = "ir.ui.view" id = "copy_wizard">
<field name = "name">Copy Opportunity</field>
<field name = "model">anser.copy.wizard</field>
<field name = "type">form</field>
<field name = "arch" type = "xml">
<form string = "Copy">
<group>
<field name = "tag_ids" />
</group>
<footer>
<button type = "object" name = "action_change_appointment_state" string = "Change State" class = "btn-primary"/>
<button string = "Cancel" class = "btn-default" special = "cancel"/>
</footer>
</form>
</field>
</record>

<record id = "action_copy" model = "ir.actions.act_window">
<field name = "name">Copy</field>
<field name = "res_model">anser.copy.wizard</field>
<field name = "view_type">form</field>
<field name = "view_mode">form</field>
<field name = "target">new</field>
</record>

<record id = "view_calendar_event_form_inherit6" model = "ir.ui.view">
<field name = "name">calendar.event.form.inherit6</field>
<field name = "model">calendar.event</field>
<field name = "inherit_id" ref = "calendar.view_calendar_event_form"/>
<field name = "arch" type = "xml">
<sheet position = "before">
<header>
<button name = "%(action_copy)d" type = "action" string = "Gerar Nova Oportunidade" />
</header>
</sheet>
</field>
</record>

Но моя функция не работает, кто-нибудь может мне помочь?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
40
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я решил это:

class AnserMedicalCopy(models.TransientModel):
    _name = 'anser_medical.copy_opportunity.wizard'

    @api.model
    def default_get(self, fields):
        result = super(AnserMedicalCopy, self).default_get(fields)
        event_id = self.env.context.get('active_id')
        if event_id:
            result['event_id'] = event_id
        return result


    tag_ids = fields.Many2many('crm.lead.tag', string='Tags', help = "Classify and analyze your lead/opportunity categories like: Training, Service")
    event_id = fields.Many2one('calendar.event', string='Event', required=True, ondelete='cascade')


    @api.multi
    def action_copy_opportunity(self):
        wizards = self.browse(self._ids)

        for wizard in wizards:
            if wizard.event_id and wizard.event_id.opportunity_id:
                event_id = wizard.event_id.copy()
                event_id.opportunity_id = wizard.event_id.opportunity_id.copy()
                event_id.opportunity_id.tag_ids = wizard.tag_ids

        return {
            'name': _('New Event'),
            'view_type': 'form',
            'view_mode': 'form,tree',
            'res_model': 'calendar.event',
            'view_id': False,
            'res_id': event_id.id,
            'type': 'ir.actions.act_window',
            'nodestroy': True
            }

Другие вопросы по теме