from django.contrib.auth.models import Permission
from wagtailmodeladmin.helpers import PermissionHelper


class ReadOnlyPermissionHelper(PermissionHelper):
    def has_add_permission(self, user):
        return False

    def has_list_permission(self, user):
        try:
            list_perm_codename = 'list_%s' % self.opts.model_name
            perm = Permission.objects.get(
                content_type__app_label=self.opts.app_label,
                codename=list_perm_codename,
            )
            return user.has_perm(perm)
        except Permission.DoesNotExist:
            pass
        return super(ReadOnlyPermissionHelper, self).has_list_permission(user)