o
    h&                     @   s  d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZmZmZ d dlmZmZmZ d dl m!Z!m"Z" d dl#m$Z$ d dl%m&Z&m'Z' d dl(m)Z) d dl*m+Z+ d dl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 dd Z5ee5dd Z6dd Z7G dd de+Z8G dd deZ9G dd  d eZ:G d!d" d"ej;Z<G d#d$ d$eZ=G d%d& d&eZ>G d'd( d(e!Z?G d)d* d*e!Z@G d+d, d,e"ZAG d-d. d.e&ZBG d/d0 d0e&ZCG d1d2 d2e'ZDG d3d4 d4e&ZEG d5d6 d6eZFG d7d8 d8e&ZGG d9d: d:e&ZHG d;d< d<eZIG d=d> d>e'ZJG d?d@ d@e$ZKeKdAZLeLjMZNG dBdC dCe)jOZPG dDdE dEe)ZQeQdFZRdS )G    N)formsHttpResponse)redirectrender)TemplateResponse)path)timezone)gettext_lazy)messages)user_passes_test)WagtailFilterSet)
FieldPanel)BooleanColumnColumnUpdatedAtColumn)
DeleteViewEditView	IndexView)ViewSetViewSetGroup)ChooserViewSet)ModelViewSetModelViewSetGroup)PageListingViewSet)SubmissionsListView)Advert	EventPageFeatureCompleteToyJSONBlockCountsStreamModelJSONMinMaxCountStreamModelJSONStreamModelModelWithStringTypePrimaryKeySearchTestModelc                 C   s
   | j dkS )NBob)
first_name)user r'   Z/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/test/testapp/views.pyuser_is_called_bob"      
r)   c                 C   s   t dS )NzBobs of the world unite!r   )requestr'   r'   r(   bob_only_zone&   s   r,   c                 C   s<   | j dkrtt| jd }|| | jd  tdS t| dS )NPOSTlevelmessagetestapp_message_testzwagtailadmin/base.html)methodgetattrr   r-   r   r   )r+   fnr'   r'   r(   message_test+   s
   

r4   c                       s(   e Zd ZdZdZdZ fddZ  ZS )CustomSubmissionsListView2   )submit_time)z-submit_timec                    s   t   }| jjd | S )z:Returns the filename for CSV file with page title at start-)superget_csv_filename	form_pageslug)selffilename	__class__r'   r(   r:   9   s   
z*CustomSubmissionsListView.get_csv_filename)__name__
__module____qualname__paginate_bydefault_orderingordering_csvr:   __classcell__r'   r'   r?   r(   r5   4   s
    r5   c                   @   s    e Zd ZeZdZdZdZdZdS )TestIndexViewtestapp_generic_indexz'tests/generic_view_templates/index.html   test_objectN)	rA   rB   rC   r"   modelindex_url_nametemplate_namerD   context_object_namer'   r'   r'   r(   rH   ?   s    rH   c                   @   s   e Zd Zdd ZdS )TestIndexViewWithoutModelc                 C   s
   t j S N)r"   objectsallr=   r'   r'   r(   get_base_querysetH   r*   z+TestIndexViewWithoutModel.get_base_querysetN)rA   rB   rC   rU   r'   r'   r'   r(   rP   G   s    rP   c                   @      e Zd ZG dd dZdS )CustomModelEditFormc                   @   s   e Zd ZeZdZdS )zCustomModelEditForm.Meta)contentN)rA   rB   rC   r"   rL   fieldsr'   r'   r'   r(   MetaM   s    rZ   NrA   rB   rC   rZ   r'   r'   r'   r(   rW   L       rW   c                   @   s<   e Zd ZeZdZdZdZdZdZ	dZ
eZedZedZdS )	TestEditViewrK   z&tests/generic_view_templates/edit.htmlrI   testapp_generic_edittestapp_generic_deleteUser '%(object)s' updated.ztest edit viewN)rA   rB   rC   r"   rL   rO   rN   rM   success_urledit_url_namedelete_url_namerW   
form_classr
   success_message
page_titler'   r'   r'   r(   r]   R   s    r]   c                   @   s4   e Zd ZeZdZdZdZdZdZ	e
dZe
dZdS )	TestDeleteViewrK   z(tests/generic_view_templates/delete.htmlrI   r^   r_   r`   ztest delete viewN)rA   rB   rC   r"   rL   rO   rN   rM   rb   rc   r
   re   rf   r'   r'   r'   r(   rg   _   s    rg   c                       sF   e Zd ZdZdZdZdZd fdd	Zdd	 Zd
d Z	dd Z
  ZS )CalendarViewSetzThe Calendardatecalendarztests/misc/calendar.htmlNc                    s"   t  j|fi | t | _d S rQ   )r9   __init__r	   now)r=   namekwargsr?   r'   r(   rk   p   s   zCalendarViewSet.__init__c                 C   s4   t  | jj}t|| j|| jj d| jdS )N	 calendarcalendar_htmlrf   header_icon)rj   HTMLCalendar
formatyearrl   yearr   rN   iconr=   r+   rq   r'   r'   r(   indext   s   zCalendarViewSet.indexc                 C   sD   t  | jj| jj}t|| j|| jj d| jj d| jdS )N/ro   rp   )	rj   rs   formatmonthrl   ru   monthr   rN   rv   rw   r'   r'   r(   r{      s   zCalendarViewSet.monthc                 C   s    t d| jddt d| jddgS )N rx   rm   zmonth/r{   )r   rx   r{   rT   r'   r'   r(   get_urlpatterns   s   zCalendarViewSet.get_urlpatternsrQ   )rA   rB   rC   
menu_labelrv   rm   rN   rk   rx   r{   r~   rG   r'   r'   r?   r(   rh   j   s    rh   c                   @   s,   e Zd ZdZdZdZdZdd Zdd Zd	S )
GreetingsViewSetzThe Greetingsr&   	greetings	greetingzc                 C   s   t |dd| jdS )Nztests/misc/greetings.html	Greetings)rf   rr   )r   rv   )r=   r+   r'   r'   r(   rx      s
   
zGreetingsViewSet.indexc                 C   s   t d| jddgS )Nr|   rx   r}   )r   rx   rT   r'   r'   r(   r~      s   z GreetingsViewSet.get_urlpatternsN)	rA   rB   rC   r   rv   url_namespace
url_prefixrx   r~   r'   r'   r'   r(   r      s    r   c                   @   s   e Zd ZeefZdZdS )MiscellaneousViewSetGroupMiscellaneousN)rA   rB   rC   rh   r   itemsr   r'   r'   r'   r(   r      s    r   c                   @   s   e Zd ZdZeZg ZdZdS )JSONStreamModelViewSetstreammodelrotateN)rA   rB   rC   rm   r!   rL   exclude_form_fieldsrv   r'   r'   r'   r(   r      s
    r   c                   @   s$   e Zd ZdZdZeZdZdZdZ	dS )!JSONMinMaxCountStreamModelViewSetminmaxcount_streammodelzminmaxcount-streammodel)bodyr   zJSON MinMaxCount StreamModelN)
rA   rB   rC   r   r   r    rL   form_fieldsrv   r   r'   r'   r'   r(   r      s    r   c                
   @   s&   e Zd ZeeeeddddddfZdS )JSONModelViewSetGroupr'   resubmitblockcounts_streammodelzblockcounts/streammodelzJSON BlockCounts StreamModel)rL   r   rv   r   r   r   N)rA   rB   rC   r   r   r   r   r   r'   r'   r'   r(   r      s    r   c                   @   s    e Zd ZeZddgZddgZdS )SearchTestModelViewSettitler   N)rA   rB   rC   r#   rL   search_fieldsr   r'   r'   r'   r(   r      s    r   c                   @   s   e Zd ZeZddgZdS )FeatureCompleteToyIndexViewrm   z-release_dateN)rA   rB   rC   r   rL   rE   r'   r'   r'   r(   r      s    r   c                   @   s|   e Zd ZeZdZdZdZdZdZ	dZ
eZdede gZdd	gZg d
ZdZd	diZdZdZdd	gZeded	ddgZdS )FeatureCompleteToyViewSetfeature_complete_toyzfeature-complete-toyzFeature Complete Toysmediazcustomprefix/ztests/fctoy_index.htmlrm   is_coolrelease_date)rm   r   r   zfeature-complete-toyszLaunch date   Tstridztests.can_set_release_date)
permissionN)rA   rB   rC   r   rL   r   r   r   rv   template_prefixindex_template_namer   index_view_classr   r   list_displaylist_filterlist_exportexport_filenameexport_headingslist_per_pageinspect_view_enabledinspect_view_fieldsr   panelsr'   r'   r'   r(   r      s(    
r   c                       sH   e Zd ZeZdZddgiZdgZdZdZ	ddgZ
dZ fd	d
Z  ZS )FCToyAlt1ViewSetr   rm   	icontainszFC Toys Alt 1Tr   r   Fc                    s   t  jdddi|S )Nis_searchableFr'   )r9   get_index_view_kwargs)r=   rn   r?   r'   r(   r      s   z&FCToyAlt1ViewSet.get_index_view_kwargs)rA   rB   rC   r   rL   rv   r   r   r   r   inspect_view_fields_excludecopy_view_enabledr   rG   r'   r'   r?   r(   r      s    
r   c                   @   rV   )FCToyCustomFilterSetc                   @   s   e Zd ZeZddgiZdS )zFCToyCustomFilterSet.Metar   	year__lteN)rA   rB   rC   r   rL   rY   r'   r'   r'   r(   rZ      s    rZ   Nr[   r'   r'   r'   r(   r      r\   r   c                   @   sV   e Zd ZdZdZeeddeddede	ddgd	d
eddede
g ddgddfZd	S )ToyViewSetGroupToysr   
fctoy_alt1r}   z
fctoy-alt2zFC Toys Alt 2r'   rm   N)rm   r   rL   rv   filterset_classr   r   search_backend_namez
fctoy-alt3zFC Toys Alt 3)rm   r   r   r   F)rm   r   rL   r   r   r   orderingr   )rA   rB   rC   r   	menu_iconr   r   r   r   r   r   r   r'   r'   r'   r(   r     s4    
r   c                   @   s*   e Zd ZeZdZdgZddgZdd ZdS )AnimatedAdvertChooserViewSetFurlmultiplec                 C   s   t jjddS )Nanimated)
tags__name)r   rR   filterrT   r'   r'   r(   get_object_list)  s   z,AnimatedAdvertChooserViewSet.get_object_listN)	rA   rB   rC   r   rL   register_widgeturl_filter_parameterspreserve_url_parametersr   r'   r'   r'   r(   r   #  s    r   animated_advert_chooserc                   @   rV   )EventPageFilterSetc                   @   s   e Zd ZeZdgZdS )zEventPageFilterSet.MetaaudienceN)rA   rB   rC   r   rL   rY   r'   r'   r'   r(   rZ   5  s    
rZ   Nr[   r'   r'   r'   r(   r   4  r\   r   c                   @   s6   e Zd ZeZdZdZdZej	e
ddddg Z	eZdS )EventPageListingViewSetrj   zEvent pagesTr   Audience)labelsort_keyN)rA   rB   rC   r   rL   rv   r   add_to_admin_menur   columnsr   r   r   r'   r'   r'   r(   r   :  s    r   event_pages)Srj   djangor   django.httpr   django.shortcutsr   r   django.template.responser   django.urlsr   django.utilsr	   django.utils.translationr
   wagtail.adminr   wagtail.admin.authr   wagtail.admin.filtersr   wagtail.admin.panelsr   wagtail.admin.ui.tablesr   r   r   wagtail.admin.views.genericr   r   r   wagtail.admin.viewsets.baser   r   wagtail.admin.viewsets.chooserr   wagtail.admin.viewsets.modelr   r   wagtail.admin.viewsets.pagesr   wagtail.contrib.forms.viewsr   wagtail.test.testapp.modelsr   r   r   r   r    r!   r"   r#   r)   r,   r4   r5   rH   rP   	ModelFormrW   r]   rg   rh   r   r   r   r   r   r   r   r   r   r   r   r   animated_advert_chooser_viewsetwidget_classAdvertChooserWidgetr   r   r   event_page_listing_viewsetr'   r'   r'   r(   <module>   sd    (
	+	
