This commit is contained in:
@@ -9,6 +9,7 @@ class ActivitySerializer(serializers.ModelSerializer):
|
||||
current_signups = serializers.IntegerField(read_only=True)
|
||||
has_signed_up = serializers.SerializerMethodField()
|
||||
is_signed_up = serializers.SerializerMethodField()
|
||||
my_signup_status = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = Activity
|
||||
@@ -17,14 +18,25 @@ class ActivitySerializer(serializers.ModelSerializer):
|
||||
def get_has_signed_up(self, obj):
|
||||
return self.get_is_signed_up(obj)
|
||||
|
||||
def get_my_signup_status(self, obj):
|
||||
request = self.context.get('request')
|
||||
if not request:
|
||||
return None
|
||||
user = get_current_wechat_user(request)
|
||||
if user:
|
||||
# Return the status of the non-cancelled signup
|
||||
signup = obj.signups.filter(user=user).exclude(status='cancelled').first()
|
||||
return signup.status if signup else None
|
||||
return None
|
||||
|
||||
def get_is_signed_up(self, obj):
|
||||
request = self.context.get('request')
|
||||
if not request:
|
||||
return False
|
||||
user = get_current_wechat_user(request)
|
||||
if user:
|
||||
# Check if there is a valid signup (not cancelled)
|
||||
return obj.signups.filter(user=user).exclude(status='cancelled').exists()
|
||||
# Check if there is a valid signup (only confirmed counts)
|
||||
return obj.signups.filter(user=user, status='confirmed').exists()
|
||||
return False
|
||||
|
||||
def get_signup_form_config(self, obj):
|
||||
|
||||
Reference in New Issue
Block a user