from anydi import singleton from email_campaigns.campaigns.exceptions import EmailCampaignMustBeDraftError from email_campaigns.campaigns.models import EmailCampaign from email_campaigns.emails.handlers import AutosaveEmailHandler @singleton class AutosaveCampaignHandler(AutosaveEmailHandler[EmailCampaign]): def validate_email(self, email: EmailCampaign) -> None: # Do not allow updating of non-draft campaigns if not email.is_draft: raise EmailCampaignMustBeDraftError