mirror of
https://gitlab.crans.org/mediatek/med.git
synced 2025-07-09 01:30:20 +02:00
Get memberships from Note Kfet
This commit is contained in:
@ -48,8 +48,13 @@ class User(AbstractUser):
|
||||
|
||||
@property
|
||||
def is_member(self):
|
||||
# FIXME Use NK20
|
||||
return True
|
||||
"""
|
||||
Return True if user is member of the club.
|
||||
"""
|
||||
return Membership.objects.filter(
|
||||
user=self,
|
||||
date_start__lte=timezone.now(),
|
||||
date_end__gte=timezone.now()).exists()
|
||||
|
||||
def update_data(self, data: dict):
|
||||
"""
|
||||
@ -68,6 +73,38 @@ class User(AbstractUser):
|
||||
self.address = data['profile']['address']
|
||||
self.comment = data['profile']['section']
|
||||
|
||||
for membership_dict in data['memberships']:
|
||||
if membership_dict['club'] != 22: # Med
|
||||
continue
|
||||
# Add membership if not exists
|
||||
Membership.objects.get_or_create(
|
||||
user=self,
|
||||
date_start=membership_dict['date_start'],
|
||||
date_end=membership_dict['date_end'],
|
||||
)
|
||||
|
||||
|
||||
class Membership(models.Model):
|
||||
user = models.ForeignKey(
|
||||
User,
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name=_('user'),
|
||||
)
|
||||
|
||||
date_start = models.DateField(
|
||||
auto_now_add=True,
|
||||
verbose_name=_('start date'),
|
||||
)
|
||||
|
||||
date_end = models.DateField(
|
||||
auto_now_add=True,
|
||||
verbose_name=_('start date'),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('membership')
|
||||
verbose_name_plural = _('memberships')
|
||||
|
||||
|
||||
class AccessToken(models.Model):
|
||||
owner = models.ForeignKey(
|
||||
@ -142,9 +179,6 @@ class AccessToken(models.Model):
|
||||
Extract information about the Note Kfet API by using the current
|
||||
access token.
|
||||
"""
|
||||
if self.owner:
|
||||
return self.owner
|
||||
|
||||
data = requests.get('https://note-dev.crans.org/api/me/',
|
||||
headers=self.auth_header()).json()
|
||||
username = data['username']
|
||||
@ -162,6 +196,10 @@ class AccessToken(models.Model):
|
||||
user.update_data(data)
|
||||
user.save()
|
||||
|
||||
# Store token owner
|
||||
self.owner = user
|
||||
self.save()
|
||||
|
||||
return user
|
||||
|
||||
class Meta:
|
||||
|
Reference in New Issue
Block a user