@@ -149,6 +149,7 @@ class FormDefinitionAdmin(admin.ModelAdmin):
149149 "version" ,
150150 "created_at" ,
151151 "form_builder_link" ,
152+ "workflow_builder_link" ,
152153 "clone_link" ,
153154 )
154155 list_filter = ("is_active" , "requires_login" )
@@ -165,12 +166,25 @@ def form_builder_link(self, obj):
165166 url = reverse ('admin:form_builder_edit' , args = [obj .pk ])
166167 return format_html (
167168 '<a href="{}" class="button" target="_blank">'
168- '<i class="bi bi-pencil-square"></i> Visual Builder'
169+ '<i class="bi bi-pencil-square"></i> Form Builder'
169170 '</a>' ,
170171 url
171172 )
172173 return "-"
173- form_builder_link .short_description = "Visual Builder"
174+ form_builder_link .short_description = "Form Builder"
175+
176+ def workflow_builder_link (self , obj ):
177+ """Display a link to the visual workflow builder"""
178+ if obj .pk :
179+ url = reverse ('admin:workflow_builder' , args = [obj .pk ])
180+ return format_html (
181+ '<a href="{}" class="button" target="_blank">'
182+ '<i class="bi bi-diagram-3"></i> Workflow'
183+ '</a>' ,
184+ url
185+ )
186+ return "-"
187+ workflow_builder_link .short_description = "Workflow Builder"
174188
175189 def clone_link (self , obj ):
176190 """Display a link to clone the form"""
@@ -266,11 +280,12 @@ def clone_forms(self, request, queryset):
266280 clone_forms .short_description = "Clone selected forms"
267281
268282 def get_urls (self ):
269- """Add custom URLs for the form builder"""
283+ """Add custom URLs for the form builder and workflow builder """
270284 urls = super ().get_urls ()
271- from . import form_builder_views
285+ from . import form_builder_views , workflow_builder_views
272286
273287 custom_urls = [
288+ # Form Builder URLs
274289 path (
275290 'builder/new/' ,
276291 self .admin_site .admin_view (form_builder_views .form_builder_view ),
@@ -311,6 +326,22 @@ def get_urls(self):
311326 self .admin_site .admin_view (form_builder_views .form_builder_clone ),
312327 name = 'form_builder_api_clone'
313328 ),
329+ # Workflow Builder URLs
330+ path (
331+ '<int:form_id>/workflow/' ,
332+ self .admin_site .admin_view (workflow_builder_views .workflow_builder_view ),
333+ name = 'workflow_builder'
334+ ),
335+ path (
336+ 'workflow/api/load/<int:form_id>/' ,
337+ self .admin_site .admin_view (workflow_builder_views .workflow_builder_load ),
338+ name = 'workflow_builder_load'
339+ ),
340+ path (
341+ 'workflow/api/save/' ,
342+ self .admin_site .admin_view (workflow_builder_views .workflow_builder_save ),
343+ name = 'workflow_builder_save'
344+ ),
314345 ]
315346 return custom_urls + urls
316347
0 commit comments