[ЗПА] Створити CMS плагін Заявка на підбір аукціону
Плагін являє собою кнопку з текстом і картинкою
При натисканні на кнопку відкривається попапом форма
JS форми зробить окремо богдан. Там має бути динамічна побудова форми, схожа на сюрвей
Різниця з сюрвей полягає в тому, що ми не робимо запити по мережі на отримання форми, а схема форми надається відразу в HTML приблизно так
<script id="data" type="application/json">{"org": 10, "items":["one","two"]}</script>
У формі є обов'язкові поля та додатковіДод. поля працюють за аналогією з сюрвеєм, за винятком того, що налаштування їх зберігатиметься відразу в інстансі моделі плагіна
Налаштування пропонується зберігати в JSONField (marketplace_portal.jsonforms.models.fields.JSONField)
Для збереження форми треба подивитися убік get_plugin_urls
Якось вот так
class AuctionRequest(CMSPluginBase):
name = _("AuctionRequest")
allow_children = False
model = AuctionRequestModel
render_template = "....../auction_request.html"
def render(self, context, instance, placeholder):
context = super().render(context, instance, placeholder)
context['form_url'] = reverse("admin:auction_request_save", kwargs={"plugin_id": instance.id})
return context
def get_plugin_urls(self):
urlpatterns = [
re_path(r'^auction_request_save/<plugin_id>/$', self.auction_request_save, name='auction_request_save'),
]
return urlpatterns
def auction_request_save(self, request):
...
Edited by dmitry.mashoshin