11from django .contrib import admin
2+ from cms .components .page .tasks import execute_frontend_revalidate
23from ordered_model .admin import OrderedModelAdmin
4+ from custom_admin .widgets import RichEditorWidget
35
46from .models import JobListing
57
@@ -9,3 +11,28 @@ class JobListingAdmin(OrderedModelAdmin):
911 model = JobListing
1012 list_display = ("title" , "company" , "conference" , "move_up_down_links" )
1113 list_filter = ("conference" ,)
14+
15+ def formfield_for_dbfield (self , db_field , ** kwargs ):
16+ if db_field .name == "description" :
17+ kwargs ["widget" ] = RichEditorWidget ()
18+
19+ return super ().formfield_for_dbfield (db_field , ** kwargs )
20+
21+ def save_model (self , request , obj , form , change ):
22+ super ().save_model (request , obj , form , change )
23+ conference = obj .conference
24+
25+ if not conference .frontend_revalidate_url :
26+ return
27+
28+ for locale in ["en" , "it" ]:
29+ execute_frontend_revalidate .delay (
30+ url = conference .frontend_revalidate_url ,
31+ path = f"/{ locale } /jobs/" ,
32+ secret = conference .frontend_revalidate_secret ,
33+ )
34+ execute_frontend_revalidate .delay (
35+ url = conference .frontend_revalidate_url ,
36+ path = f"/{ locale } /jobs/{ obj .id } " ,
37+ secret = conference .frontend_revalidate_secret ,
38+ )
0 commit comments