a
    Ç[Ùf™  ã                   @   s:   d
d d dœdd„Z dd d d d dœdd„Zd dœdd	„Zd S )N)ÚpermissionsÚdescriptionc                   s&   ‡ ‡fdd„}| du r|S || ƒS dS )az  
    Conveniently add attributes to an action function::

        @admin.action(
            permissions=['publish'],
            description='Mark selected stories as published',
        )
        def make_published(self, request, queryset):
            queryset.update(status='p')

    This is equivalent to setting some attributes (with the original, longer
    names) on the function directly::

        def make_published(self, request, queryset):
            queryset.update(status='p')
        make_published.allowed_permissions = ['publish']
        make_published.short_description = 'Mark selected stories as published'
    c                    s    ˆd urˆ| _ ˆ d urˆ | _| S )N)Zallowed_permissionsÚshort_description©Úfunc©r   r   © úqC:\Users\91910\OneDrive\Desktop\vts_admin_rebuild-master\vts\Lib\site-packages\django/contrib/admin/decorators.pyÚ	decorator   s
    zaction.<locals>.decoratorNr   )Úfunctionr   r   r	   r   r   r   Úaction   s    r   )ÚbooleanÚorderingr   Úempty_valuec                   s*   ‡ ‡‡‡fdd„}| du r|S || ƒS dS )a~  
    Conveniently add attributes to a display function::

        @admin.display(
            boolean=True,
            ordering='-publish_date',
            description='Is Published?',
        )
        def is_published(self, obj):
            return obj.publish_date is not None

    This is equivalent to setting some attributes (with the original, longer
    names) on the function directly::

        def is_published(self, obj):
            return obj.publish_date is not None
        is_published.boolean = True
        is_published.admin_order_field = '-publish_date'
        is_published.short_description = 'Is Published?'
    c                    sT   ˆ d urˆd urt dƒ‚ˆ d ur&ˆ | _ˆd ur4ˆ| _ˆd urBˆ| _ˆd urPˆ| _| S )NzWThe boolean and empty_value arguments to the @display decorator are mutually exclusive.)Ú
ValueErrorr   Zadmin_order_fieldr   Zempty_value_displayr   ©r   r   r   r   r   r   r	   :   s    ÿzdisplay.<locals>.decoratorNr   )r
   r   r   r   r   r	   r   r   r   Údisplay"   s    r   ©Úsitec                    s<   ddl m‰ ddlm‰  ddlm‰ ‡ ‡‡‡‡fdd„}|S )zý
    Register the given model(s) classes and wrapped ModelAdmin class with
    admin site:

    @register(Author)
    class AuthorAdmin(admin.ModelAdmin):
        pass

    The `site` kwarg is an admin site to use instead of the default admin site.
    é    )Ú
ModelAdmin)Ú	AdminSiter   c                    sJ   ˆst dƒ‚ˆpˆ}t|ˆ ƒs&t dƒ‚t| ˆƒs8t dƒ‚|jˆ| d | S )Nz.At least one model must be passed to register.zsite must subclass AdminSitez'Wrapped class must subclass ModelAdmin.)Úadmin_class)r   Ú
isinstanceÚ
issubclassÚregister)r   Z
admin_site©r   r   Zdefault_siteÚmodelsr   r   r   Ú_model_admin_wrapper_   s    

z&register.<locals>._model_admin_wrapper)Zdjango.contrib.adminr   Zdjango.contrib.admin.sitesr   r   )r   r   r   r   r   r   r   P   s
    r   )N)N)r   r   r   r   r   r   r   Ú<module>   s
   " ÿÿ.