subscriptions read only
This commit is contained in:
parent
42885e8b4c
commit
63cc029ce3
|
|
@ -340,6 +340,14 @@ class User(AbstractUser):
|
||||||
model='product',
|
model='product',
|
||||||
).values_list('object_id', flat=True)
|
).values_list('object_id', flat=True)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def subscriptions(self):
|
||||||
|
result = []
|
||||||
|
for subscription in self.subscriber.all():
|
||||||
|
for item in subscription.active_subscriptions:
|
||||||
|
result.append(item.id)
|
||||||
|
return set(result)
|
||||||
|
|
||||||
|
|
||||||
class UserRole(ProjectBaseMixin):
|
class UserRole(ProjectBaseMixin):
|
||||||
"""UserRole model."""
|
"""UserRole model."""
|
||||||
|
|
|
||||||
|
|
@ -45,11 +45,21 @@ class BackUserSerializer(serializers.ModelSerializer):
|
||||||
'last_ip',
|
'last_ip',
|
||||||
'last_country',
|
'last_country',
|
||||||
'roles',
|
'roles',
|
||||||
|
'subscriptions',
|
||||||
)
|
)
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'password': {'write_only': True},
|
'password': {'write_only': True},
|
||||||
}
|
}
|
||||||
read_only_fields = ('old_password', 'last_login', 'date_joined', 'city', 'locale', 'last_ip', 'last_country')
|
read_only_fields = (
|
||||||
|
'old_password',
|
||||||
|
'last_login',
|
||||||
|
'date_joined',
|
||||||
|
'city',
|
||||||
|
'locale',
|
||||||
|
'last_ip',
|
||||||
|
'last_country',
|
||||||
|
'subscriptions',
|
||||||
|
)
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
user = super().create(validated_data)
|
user = super().create(validated_data)
|
||||||
|
|
@ -61,8 +71,38 @@ class BackUserSerializer(serializers.ModelSerializer):
|
||||||
class BackDetailUserSerializer(BackUserSerializer):
|
class BackDetailUserSerializer(BackUserSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = User
|
model = User
|
||||||
exclude = ('password',)
|
fields = (
|
||||||
read_only_fields = ('old_password', 'last_login', 'date_joined')
|
'id',
|
||||||
|
'last_country',
|
||||||
|
'roles',
|
||||||
|
'last_login',
|
||||||
|
'is_superuser',
|
||||||
|
'first_name',
|
||||||
|
'last_name',
|
||||||
|
'is_staff',
|
||||||
|
'is_active',
|
||||||
|
'date_joined',
|
||||||
|
'username',
|
||||||
|
'image_url',
|
||||||
|
'cropped_image_url',
|
||||||
|
'email',
|
||||||
|
'unconfirmed_email',
|
||||||
|
'email_confirmed',
|
||||||
|
'newsletter',
|
||||||
|
'old_id',
|
||||||
|
'locale',
|
||||||
|
'city',
|
||||||
|
'last_ip',
|
||||||
|
'groups',
|
||||||
|
'user_permissions',
|
||||||
|
'subscriptions',
|
||||||
|
)
|
||||||
|
read_only_fields = (
|
||||||
|
'old_password',
|
||||||
|
'last_login',
|
||||||
|
'date_joined',
|
||||||
|
'subscriptions',
|
||||||
|
)
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
user = super().create(validated_data)
|
user = super().create(validated_data)
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,7 @@ class UserSerializer(serializers.ModelSerializer):
|
||||||
'email_confirmed',
|
'email_confirmed',
|
||||||
'newsletter',
|
'newsletter',
|
||||||
'roles',
|
'roles',
|
||||||
|
'subscriptions',
|
||||||
]
|
]
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'first_name': {'required': False, 'write_only': True, },
|
'first_name': {'required': False, 'write_only': True, },
|
||||||
|
|
@ -65,6 +66,9 @@ class UserSerializer(serializers.ModelSerializer):
|
||||||
'cropped_image_url': {'required': False, },
|
'cropped_image_url': {'required': False, },
|
||||||
'newsletter': {'required': False, },
|
'newsletter': {'required': False, },
|
||||||
}
|
}
|
||||||
|
read_only_fields = (
|
||||||
|
'subscriptions',
|
||||||
|
)
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
user = super(UserSerializer, self).create(validated_data)
|
user = super(UserSerializer, self).create(validated_data)
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ class UserListView(generics.ListCreateAPIView):
|
||||||
serializer_class = serializers.BackUserSerializer
|
serializer_class = serializers.BackUserSerializer
|
||||||
permission_classes = (permissions.IsAdminUser,)
|
permission_classes = (permissions.IsAdminUser,)
|
||||||
filter_backends = (DjangoFilterBackend, OrderingFilter)
|
filter_backends = (DjangoFilterBackend, OrderingFilter)
|
||||||
|
|
||||||
filterset_fields = (
|
filterset_fields = (
|
||||||
'email_confirmed',
|
'email_confirmed',
|
||||||
'is_staff',
|
'is_staff',
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,20 @@
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
from notification import models
|
||||||
|
|
||||||
# Register your models here.
|
|
||||||
|
@admin.register(models.SubscriptionType)
|
||||||
|
class SubscriptionTypeAdmin(admin.ModelAdmin):
|
||||||
|
"""SubscriptionType admin."""
|
||||||
|
list_display = ['index_name', 'country']
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(models.Subscriber)
|
||||||
|
class SubscriberAdmin(admin.ModelAdmin):
|
||||||
|
"""Subscriber admin."""
|
||||||
|
raw_id_fields = ('user',)
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(models.Subscribe)
|
||||||
|
class SubscribeAdmin(admin.ModelAdmin):
|
||||||
|
"""Subscribe admin."""
|
||||||
|
raw_id_fields = ('subscriber',)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user