from shuup.notify.base import ScriptTemplate
from shuup.notify.models.script import Script
[docs]
class BaseScriptTemplate(ScriptTemplate):
"""
A base ScriptTemplate class which provides implementation for create and update the script.
"""
[docs]
def get_script_steps(self, form=None):
"""
Returns a list of Steps to use in the script.
:param django.forms.Form|None form: validated form to use or None
:return: list of steps
:rtype: list[shuup.notify.Step]
"""
return []
[docs]
def create_script(self, shop, form=None):
"""Creates the script based on the event and the steps"""
script = Script(
event_identifier=self.event.identifier,
name=self.name,
enabled=True,
shop=shop,
)
script.set_steps(self.get_script_steps(form))
script.save()
return script
[docs]
def update_script(self, form):
"""Change the steps and save the script"""
self.script_instance.set_steps(self.get_script_steps(form))
self.script_instance.save()
return self.script_instance