28 lines
1.1 KiB
Python
28 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
from datetime import datetime
|
|
from odoo import api, fields, models, _
|
|
from odoo.exceptions import ValidationError
|
|
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT
|
|
|
|
|
|
class MassMailingScheduleDate(models.TransientModel):
|
|
_name = 'mass.mailing.schedule.date'
|
|
_description = 'Mass Mailing Scheduling'
|
|
|
|
schedule_date = fields.Datetime(string='Schedule in the Future')
|
|
mass_mailing_id = fields.Many2one('mail.mass_mailing', required=True)
|
|
|
|
@api.constrains('schedule_date')
|
|
def _check_schedule_date(self):
|
|
for scheduler in self:
|
|
if scheduler.schedule_date < fields.Datetime.now():
|
|
raise ValidationError(_('Please select a date equal/or greater than the current date.'))
|
|
|
|
def set_schedule_date(self):
|
|
self.ensure_one()
|
|
mailing = self.mass_mailing_id
|
|
if mailing.mailchimp_template_id:
|
|
schedule_date = datetime.strptime(self.schedule_date, DEFAULT_SERVER_DATETIME_FORMAT)
|
|
mailing.schedule_mailchimp_champaign(schedule_date)
|
|
self.mass_mailing_id.write({'schedule_date': self.schedule_date, 'state': 'in_queue'})
|