File diff 7c77001d5e7d → d9e8a72d140c
vendor/regidesk/regidesk/models.py
Show inline comments
...
 
@@ -37,6 +37,7 @@ class BoardingPassTemplate(models.Model):
 
        verbose_name = ("Boarding Pass template")
 
        verbose_name_plural = ("Boarding Pass templates")
 

	
 

	
 
class BoardingPass(models.Model):
 

	
 
    template = models.ForeignKey(BoardingPassTemplate, null=True, blank=True,
...
 
@@ -54,6 +55,8 @@ class BoardingPass(models.Model):
 
            ("view_boarding_pass", "Can view sent boarding passes"),
 
            ("send_boarding_pass", "Can send boarding passes"),
 
        )
 
        verbose_name = ("Boarding Pass")
 
        verbose_name_plural = ("Boarding Passes")
 

	
 
    def __unicode__(self):
 
        return self.checkin.attendee.attendeeprofilebase.attendeeprofile.name + ' ' + self.timestamp.strftime('%Y-%m-%d %H:%M:%S')
...
 
@@ -62,6 +65,7 @@ class BoardingPass(models.Model):
 
    def email_args(self):
 
        return (self.subject, self.body, self.from_address, self.user.email)
 

	
 

	
 
class CheckIn(models.Model):
 

	
 
    user = models.OneToOneField(User, on_delete=models.CASCADE)
...
 
@@ -159,7 +163,8 @@ class CheckIn(models.Model):
 
            updated = True
 

	
 
        if not self.venueless_traits:
 
            self.venueless_traits = ".".join(("attendee",))
 
            traits = self._get_venueless_traits()
 
            self.venueless_traits = ",".join(traits)
 
            updated = True
 

	
 
        if not self._venueless_token:
...
 
@@ -171,11 +176,43 @@ class CheckIn(models.Model):
 

	
 
        return self._venueless_token
 

	
 
    def _get_venueless_traits(self):
 
        traits = ["attendee"]
 

	
 
        ticket_type = self.user.attendee.ticket_type
 

	
 
        if ticket_type == "Conference Volunteer":
 
            traits.append("volunteer")
 
        elif ticket_type == "Conference Organiser":
 
            traits.append("organiser")
 

	
 
        if hasattr(self.user, "speaker_profile"):
 
            best = 0
 
            for presentation in self.user.speaker_profile.presentations.all():
 
                if presentation.section.id == 1:
 
                    # Main Conference Speaker
 
                    best = 1
 
                if best == 0 and presentation.section.id == 2:
 
                    # Miniconf Organiser
 
                    best = 2
 

	
 
            if best == 1:
 
                traits.append("speaker")
 
            elif best == 2:
 
                traits.append("miniconf_org")
 
            else:
 
                traits.append("miniconf_speaker")
 

	
 
        return traits
 

	
 
    def _generate_venueless_token(self):
 
        """ Generate token for Venueless login """
 

	
 
        issued_at = datetime.datetime.utcnow()
 
        expiry = settings.LCA_END + datetime.timedelta(days=1)
 
        if self.user.attendee.ticket_type == "Miniconf Only":
 
            # Miniconf only ticket holders have limited access
 
            expiry = settings.LCA_MINICONF_END
 

	
 
        payload = {
 
            "iss": settings.VENUELESS_TOKEN_ISSUER,