def _set_enrollment(self, experiment, alternative, enrollment_date=None, last_seen=None): if experiment.name in self._enrollment_cache: del self._enrollment_cache[experiment.name] try: enrollment, _ = Enrollment.objects.get_or_create( user=self.user, experiment=experiment, defaults={"alternative": alternative} ) except IntegrityError: # Already registered (db race condition under high load) return # Update alternative if it doesn't match enrollment_changed = False if enrollment.alternative != alternative: enrollment.alternative = alternative enrollment_changed = True if enrollment_date: enrollment.enrollment_date = enrollment_date enrollment_changed = True if last_seen: enrollment.last_seen = last_seen enrollment_changed = True if enrollment_changed: enrollment.save() self.experiment_counter.increment_participant_count(experiment, alternative, self._participant_identifier()) user_enrolled.send(self, experiment=experiment.name, alternative=alternative, user=self.user, session=None)
def _set_enrollment(self, experiment, alternative, enrollment_date=None, last_seen=None): if experiment.name in self._enrollment_cache: del self._enrollment_cache[experiment.name] try: enrollment, _ = Enrollment.objects.get_or_create(user=self.user, experiment=experiment, defaults={'alternative': alternative}) except IntegrityError: # Already registered (db race condition under high load) return # Update alternative if it doesn't match enrollment_changed = False if enrollment.alternative != alternative: enrollment.alternative = alternative enrollment_changed = True if enrollment_date: enrollment.enrollment_date = enrollment_date enrollment_changed = True if last_seen: enrollment.last_seen = last_seen enrollment_changed = True if enrollment_changed: enrollment.save() self.experiment_counter.increment_participant_count(experiment, alternative, self._participant_identifier()) user_enrolled.send(self, experiment=experiment.name, alternative=alternative, user=self.user, session=None)
def _set_enrollment(self, experiment, alternative, enrollment_date=None, last_seen=None): enrollments = self.session.get('experiments_enrollments', {}) enrollments[experiment.name] = (alternative, None, timestamp_from_datetime(enrollment_date or now()), timestamp_from_datetime(last_seen)) self.session['experiments_enrollments'] = enrollments if self._is_verified_human(): self.experiment_counter.increment_participant_count( experiment, alternative, self._participant_identifier()) else: logger.info( json.dumps({ 'type': 'participant_unconfirmed', 'experiment': experiment.name, 'alternative': alternative, 'participant': self._participant_identifier() })) user_enrolled.send(self, experiment=experiment.name, alternative=alternative, user=None, session=self.session)
def _set_enrollment(self, experiment, alternative, enrollment_date=None, last_seen=None): enrollments = self.session.get('experiments_enrollments', {}) enrollments[experiment.name] = (alternative, None, timestamp_from_datetime(enrollment_date or now()), timestamp_from_datetime(last_seen)) self.session['experiments_enrollments'] = enrollments if self._is_verified_human(): self.experiment_counter.increment_participant_count(experiment, alternative, self._participant_identifier()) else: logger.info(json.dumps({'type':'participant_unconfirmed', 'experiment': experiment.name, 'alternative': alternative, 'participant': self._participant_identifier()})) user_enrolled.send(self, experiment=experiment.name, alternative=alternative, user=None, session=self.session)
def _set_enrollment(self, experiment, alternative, enrollment_date=None, last_seen=None): enrollments = self.session.get('experiments_enrollments', {}) enrollments[experiment.name] = (alternative, None, timestamp_from_datetime(enrollment_date or now()), timestamp_from_datetime(last_seen)) self.session['experiments_enrollments'] = enrollments if self._is_verified_human(): self.experiment_counter.increment_participant_count(experiment, alternative, self._participant_identifier()) user_enrolled.send( self, experiment=experiment.name, alternative=alternative, user=None, session=self.session)
def _set_enrollment(self, experiment, alternative, enrollment_date=None, last_seen=None): if experiment.name in self._enrollment_cache: del self._enrollment_cache[experiment.name] try: enrollment, _ = Enrollment.objects.get_or_create( experiment=experiment, defaults={'alternative': alternative}, **self._qs_kwargs) except IntegrityError: # Already registered (db race condition under high load) return # Update alternative if it doesn't match enrollment_changed = False if enrollment.alternative != alternative: enrollment.alternative = alternative enrollment_changed = True if enrollment_date: enrollment.enrollment_date = enrollment_date enrollment_changed = True if last_seen: enrollment.last_seen = last_seen enrollment_changed = True if enrollment_changed: enrollment.save() if self._is_verified_human: self.experiment_counter.increment_participant_count( experiment, alternative, self._participant_identifier()) else: logger.info( json.dumps({ 'type': 'participant_unconfirmed', 'experiment': experiment.name, 'alternative': alternative, 'participant': self._participant_identifier() })) user_enrolled.send(self, experiment=experiment.name, alternative=alternative, user=self.user, session=self.session)
def _set_enrollment(self, experiment, alternative, enrollment_date=None, last_seen=None): enrollments = self.session.get("experiments_enrollments", {}) enrollments[experiment.name] = ( alternative, None, timestamp_from_datetime(enrollment_date or now()), timestamp_from_datetime(last_seen), ) self.session["experiments_enrollments"] = enrollments if self._is_verified_human(): self.experiment_counter.increment_participant_count(experiment, alternative, self._participant_identifier()) else: logger.info( json.dumps( { "type": "participant_unconfirmed", "experiment": experiment.name, "alternative": alternative, "participant": self._participant_identifier(), } ) ) user_enrolled.send(self, experiment=experiment.name, alternative=alternative, user=None, session=self.session)
class AuthenticatedUser(WebUser): def __init__(self, user, request=None): self._enrollment_cache = {} self.user = user self.request = request super(AuthenticatedUser, self).__init__() def _get_enrollment(self, experiment): if experiment.name not in self._enrollment_cache: try: self._enrollment_cache[experiment.name] = Enrollment.objects.get(user=self.user, experiment=experiment).alternative except Enrollment.DoesNotExist: self._enrollment_cache[experiment.name] = None return self._enrollment_cache[experiment.name] def _set_enrollment(self, experiment, alternative, enrollment_date=None, last_seen=None): if experiment.name in self._enrollment_cache: del self._enrollment_cache[experiment.name] try: enrollment, _ = Enrollment.objects.get_or_create(user=self.user, experiment=experiment, defaults={'alternative': alternative}) except IntegrityError, exc: # Already registered (db race condition under high load) return # Update alternative if it doesn't match enrollment_changed = False if enrollment.alternative != alternative: enrollment.alternative = alternative enrollment_changed = True if enrollment_date: enrollment.enrollment_date = enrollment_date enrollment_changed = True if last_seen: enrollment.last_seen = last_seen enrollment_changed = True if enrollment_changed: enrollment.save() self.experiment_counter.increment_participant_count(experiment, alternative, self._participant_identifier()) user_enrolled.send( self, experiment=experiment.name, alternative=alternative, user=self.user, session=None)
def _set_enrollment(self, experiment, alternative, enrollment_date=None, last_seen=None): user_enrolled.send( self, experiment=experiment.name, alternative=alternative, user=None, session=None) pass