コード例 #1
0
def test_valid_url(mocker):
    public_admin = PublicAdminSite("dashboard", PUBLIC_APPS)
    valid, invalid = mocker.MagicMock(), mocker.MagicMock()
    valid.pattern.regex.pattern = "/my_open_house/"
    invalid.pattern.regex.pattern = "/my_open_house/add/"
    assert public_admin.valid_url(valid)
    assert not public_admin.valid_url(invalid)
コード例 #2
0
def test_urls(mocker):
    public_admin = PublicAdminSite("dashboard", PUBLIC_APPS)
    get_urls = mocker.patch.object(PublicAdminSite, "get_urls")
    get_urls.return_value = range(3)
    valid_url = mocker.patch.object(PublicAdminSite, "valid_url")
    valid_url.side_effect = (True, False, True)
    assert public_admin.urls == ([0, 2], "admin", "dashboard")
コード例 #3
0
ファイル: admin.py プロジェクト: jhrdt/django-public-admin
 def get_urls(self):
     """Filter out the URLs that should not exist in a public admin."""
     return [
         url for url in super().get_urls() if PublicAdminSite.valid_url(url)
     ]
コード例 #4
0
 def get_urls(self):
     return [
         url for url in super().get_urls() if PublicAdminSite.valid_url(url)
     ]
コード例 #5
0
from public_admin.admin import PublicModelAdmin
from public_admin.sites import PublicAdminSite, PublicApp

from example.my_open_house.models import Beverage, Snack


class BeverageModelAdmin(PublicModelAdmin):
    list_display = ("name", "amount", "alcoholic")
    list_filter = ("alcoholic",)


class SnackModelAdmin(PublicModelAdmin):
    list_display = ("name", "amount", "vegan")
    list_filter = ("vegan",)


public_app = PublicApp("my_open_house", models=("Beverage", "Snack"))
public_admin = PublicAdminSite("dashboard", public_app)
public_admin.register(Beverage, BeverageModelAdmin)
public_admin.register(Snack, SnackModelAdmin)
コード例 #6
0
        )

    def title_ukr(self, obj) -> str:
        return obj.title_ukr

    def title_not_ukr(self, obj) -> str:
        return obj.title_eng or obj.title_not_ukr

    def max_year(self, obj):
        return obj.max_year

    def max_season(self, obj):
        return obj.max_season

    max_year.admin_order_field = 'max_year'

    def max_registered_on(self, obj):
        return obj.max_registered_on

    max_registered_on.admin_order_field = 'max_registered_on'

    def link(self, obj):
        return format_html(
            f"<a href='https://toloka.to/tracker.php?nm={obj.title_eng or obj.title_ukr}' target='_blank'>link</a>"
        )


public_app = PublicApp("posts", models=("MediaItem", ))
public_admin = PublicAdminSite("dashboard", public_app)
public_admin.register(MediaItem, PublicMediaItemAdmin)
コード例 #7
0
def test_init(mocker):
    public_admin = PublicAdminSite("dashboard", PUBLIC_APPS)
    assert not public_admin.actions
    assert not public_admin._global_actions
    assert public_admin.name == "dashboard"
コード例 #8
0
def test_has_permission_post(mocker):
    public_admin = PublicAdminSite("dashboard", PUBLIC_APPS)
    request = mocker.MagicMock()
    request.method = "POST"
    assert not public_admin.has_permission(request)
コード例 #9
0
def test_non_authorized_model_cannot_be_registered():
    public_admin = PublicAdminSite("dashboard", PUBLIC_APPS)
    with pytest.raises(UnauthorizedModelError):
        public_admin.register(Music)
コード例 #10
0
def test_authorized_model_can_be_registered():
    public_admin = PublicAdminSite("dashboard", PUBLIC_APPS)
    public_admin.register(Beverage)
コード例 #11
0
from public_admin.sites import PublicAdminSite

public_admin = PublicAdminSite("dashboard", ("my_open_house", ),
                               ("beverage", ))


def test_init(mocker):
    assert not public_admin.actions
    assert not public_admin._global_actions
    assert public_admin.name == "dashboard"


def test_valid_url(mocker):
    valid, invalid = mocker.MagicMock(), mocker.MagicMock()
    valid.pattern.regex.pattern = "/my_open_house/"
    invalid.pattern.regex.pattern = "/my_open_house/add/"
    assert public_admin.valid_url(valid)
    assert not public_admin.valid_url(invalid)


def test_urls(mocker):
    get_urls = mocker.patch.object(PublicAdminSite, "get_urls")
    get_urls.return_value = range(3)
    valid_url = mocker.patch.object(PublicAdminSite, "valid_url")
    valid_url.side_effect = (True, False, True)
    assert public_admin.urls == ([0, 2], "admin", "dashboard")


def test_has_permission_get(mocker):
    request = mocker.MagicMock()
    request.method = "GET"