a
    Dg&                     @   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 )NZBob)Z
first_name)user r%   Y/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/test/testapp/views.pyuser_is_called_bob"   s    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r2tt| jd }|| | jd  tdS t| dS d S )NPOSTlevelmessageZtestapp_message_testzwagtailadmin/base.html)methodgetattrr   r*   r   r   )r(   fnr%   r%   r&   message_test+   s
    
r0   c                       s(   e Zd ZdZdZdZ fddZ  ZS )CustomSubmissionsListView2   )Z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_filenameZ	form_pageZslug)selffilename	__class__r%   r&   r5   9   s    
z*CustomSubmissionsListView.get_csv_filename)__name__
__module____qualname__paginate_bydefault_orderingZordering_csvr5   __classcell__r%   r%   r8   r&   r1   4   s   r1   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)	r:   r;   r<   r"   modelindex_url_nametemplate_namer=   context_object_namer%   r%   r%   r&   r@   ?   s
   r@   c                   @   s   e Zd Zdd ZdS )TestIndexViewWithoutModelc                 C   s
   t j S N)r"   objectsallr6   r%   r%   r&   get_base_querysetH   s    z+TestIndexViewWithoutModel.get_base_querysetN)r:   r;   r<   rM   r%   r%   r%   r&   rH   G   s   rH   c                   @   s   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)r:   r;   r<   r"   rD   fieldsr%   r%   r%   r&   MetaM   s   rQ   Nr:   r;   r<   rQ   r%   r%   r%   r&   rN   L   s   rN   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 )	TestEditViewrC   z&tests/generic_view_templates/edit.htmlrA   testapp_generic_edittestapp_generic_deleteUser '%(object)s' updated.ztest edit viewN)r:   r;   r<   r"   rD   rG   rF   rE   Zsuccess_urledit_url_namedelete_url_namerN   Z
form_classr
   success_message
page_titler%   r%   r%   r&   rS   R   s   rS   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 )	TestDeleteViewrC   z(tests/generic_view_templates/delete.htmlrA   rT   rU   rV   ztest delete viewN)r:   r;   r<   r"   rD   rG   rF   rE   rW   rX   r
   rY   rZ   r%   r%   r%   r&   r[   _   s   r[   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 rI   )r4   __init__r	   now)r6   namekwargsr8   r%   r&   r_   p   s    zCalendarViewSet.__init__c                 C   s4   t  | jj}t|| j|| jj d| jdS )N	 calendarcalendar_htmlrZ   header_icon)r^   HTMLCalendar
formatyearr`   yearr   rF   iconr6   r(   re   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/rc   rd   )	r^   rg   formatmonthr`   ri   monthr   rF   rj   rk   r%   r%   r&   ro      s    zCalendarViewSet.monthc                 C   s    t d| jddt d| jddgS )N rl   ra   zmonth/ro   )r   rl   ro   rL   r%   r%   r&   get_urlpatterns   s    zCalendarViewSet.get_urlpatterns)N)r:   r;   r<   
menu_labelrj   ra   rF   r_   rl   ro   rr   r?   r%   r%   r8   r&   r\   j   s   r\   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$   Z	greetingsZ	greetingzc                 C   s   t |dd| jdS )Nztests/misc/greetings.htmlZ	Greetings)rZ   rf   )r   rj   )r6   r(   r%   r%   r&   rl      s
    
zGreetingsViewSet.indexc                 C   s   t d| jddgS )Nrp   rl   rq   )r   rl   rL   r%   r%   r&   rr      s    z GreetingsViewSet.get_urlpatternsN)	r:   r;   r<   rs   rj   url_namespace
url_prefixrl   rr   r%   r%   r%   r&   rt      s   rt   c                   @   s   e Zd ZeefZdZdS )MiscellaneousViewSetGroupZMiscellaneousN)r:   r;   r<   r\   rt   itemsrs   r%   r%   r%   r&   rw      s   rw   c                   @   s   e Zd ZdZeZg ZdZdS )JSONStreamModelViewSetZstreammodelrotateN)r:   r;   r<   ra   r!   rD   exclude_form_fieldsrj   r%   r%   r%   r&   ry      s   ry   c                   @   s$   e Zd ZdZdZeZdZdZdZ	dS )!JSONMinMaxCountStreamModelViewSetZminmaxcount_streammodelzminmaxcount-streammodel)bodyrz   zJSON MinMaxCount StreamModelN)
r:   r;   r<   ru   rv   r    rD   form_fieldsrj   rs   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%   ZresubmitZblockcounts_streammodelzblockcounts/streammodelzJSON BlockCounts StreamModel)rD   r{   rj   ru   rv   rs   N)r:   r;   r<   ry   r|   r   r   rx   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)r:   r;   r<   r#   rD   search_fieldsr~   r%   r%   r%   r&   r      s   r   c                   @   s   e Zd ZeZddgZdS )FeatureCompleteToyIndexViewra   z-release_dateN)r:   r;   r<   r   rD   r>   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 )FeatureCompleteToyViewSetZfeature_complete_toyzfeature-complete-toyzFeature Complete Toysmediazcustomprefix/ztests/fctoy_index.htmlra   is_coolrelease_date)ra   r   r   zfeature-complete-toyszLaunch date   Tstridztests.can_set_release_date)Z
permissionN)r:   r;   r<   r   rD   ru   rv   rs   rj   Ztemplate_prefixZindex_template_namer   index_view_classr   r   list_displaylist_filterZlist_exportZexport_filenameZexport_headingsZlist_per_pageinspect_view_enabledZinspect_view_fieldsr   Z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   ra   Z	icontainszFC Toys Alt 1Tr   r   Fc                    s   t  jf ddi|S )NZis_searchableF)r4   get_index_view_kwargs)r6   rb   r8   r%   r&   r      s    z&FCToyAlt1ViewSet.get_index_view_kwargs)r:   r;   r<   r   rD   rj   r   r~   rs   r   Zinspect_view_fields_excludecopy_view_enabledr   r?   r%   r%   r8   r&   r      s   
r   c                   @   s   e Zd ZG dd dZdS )FCToyCustomFilterSetc                   @   s   e Zd ZeZddgiZdS )zFCToyCustomFilterSet.Metar   Z	year__lteN)r:   r;   r<   r   rD   rP   r%   r%   r%   r&   rQ      s   rQ   NrR   r%   r%   r%   r&   r      s   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 )ToyViewSetGroupZToysr   Z
fctoy_alt1rq   z
fctoy-alt2zFC Toys Alt 2r%   ra   N)ra   rs   rD   rj   filterset_classr{   r   Zsearch_backend_namez
fctoy-alt3zFC Toys Alt 3)ra   r   r   r   F)ra   rs   rD   r{   r   r   Zorderingr   )r:   r;   r<   rs   Z	menu_iconr   r   r   r   r   r   rx   r%   r%   r%   r&   r     s2   
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 )NZanimated)Z
tags__name)r   rJ   filterrL   r%   r%   r&   get_object_list)  s    z,AnimatedAdvertChooserViewSet.get_object_listN)	r:   r;   r<   r   rD   Zregister_widgetZurl_filter_parametersZpreserve_url_parametersr   r%   r%   r%   r&   r   #  s
   r   Zanimated_advert_chooserc                   @   s   e Zd ZG dd dZdS )EventPageFilterSetc                   @   s   e Zd ZeZdgZdS )zEventPageFilterSet.MetaaudienceN)r:   r;   r<   r   rD   rP   r%   r%   r%   r&   rQ   5  s   rQ   NrR   r%   r%   r%   r&   r   4  s   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 )EventPageListingViewSetr^   zEvent pagesTr   ZAudience)labelsort_keyN)r:   r;   r<   r   rD   rj   rs   Zadd_to_admin_menur   columnsr   r   r   r%   r%   r%   r&   r   :  s   r   Zevent_pages)Sr^   Zdjangor   Zdjango.httpr   Zdjango.shortcutsr   r   Zdjango.template.responser   Zdjango.urlsr   Zdjango.utilsr	   Zdjango.utils.translationr
   Zwagtail.adminr   Zwagtail.admin.authr   Zwagtail.admin.filtersr   Zwagtail.admin.panelsr   Zwagtail.admin.ui.tablesr   r   r   Zwagtail.admin.views.genericr   r   r   Zwagtail.admin.viewsets.baser   r   Zwagtail.admin.viewsets.chooserr   Zwagtail.admin.viewsets.modelr   r   Zwagtail.admin.viewsets.pagesr   Zwagtail.contrib.forms.viewsr   Zwagtail.test.testapp.modelsr   r   r   r   r    r!   r"   r#   r'   r)   r0   r1   r@   rH   Z	ModelFormrN   rS   r[   r\   rt   rw   ry   r|   r   r   r   r   r   r   r   r   Zanimated_advert_chooser_viewsetZwidget_classZAdvertChooserWidgetr   r   r   Zevent_page_listing_viewsetr%   r%   r%   r&   <module>   sb   (
	+	
