def participate(request, experiment_id=None): participant = request.user.participant experiment = get_object_or_404(Experiment.objects.select_related('experiment_metadata', 'experiment_configuration'), pk=experiment_id, experiment_metadata=get_experiment_metadata()) pgr = experiment.get_participant_group_relationship(participant) return render(request, experiment.participant_template, { 'experiment': experiment, 'participant_experiment_relationship': experiment.get_participant_experiment_relationship(participant), 'participant_group_relationship': pgr, 'experimentModelJson': dumps(get_view_model_dict(experiment, pgr)), })
def subjectpool_index(request): """ Provides subject recruitment interface with all the active and past experiment sessions. """ experimenter = request.user.experimenter es_list = ExperimentSession.objects.select_related("experiment_metadata").filter(creator=request.user) session_list = [session.to_dict() for session in es_list] experiment_metadata_list = [em.to_dict() for em in ExperimentMetadata.objects.bookmarked(experimenter)] potential_participants_count = Participant.objects.active().count() data = { "session_list": session_list, "experiment_metadata_list": experiment_metadata_list, "allEligibleParticipants": potential_participants_count, "potentialParticipantsCount": potential_participants_count, } return render(request, "subjectpool/index.html", {"view_model_json": dumps(data), "form": SessionInviteForm()})
def subjectpool_index(request): """ Provides subject recruitment interface with all the active and past experiment sessions. """ experimenter = request.user.experimenter es_list = ExperimentSession.objects.select_related('experiment_metadata').filter(creator=request.user) session_list = [session.to_dict() for session in es_list] experiment_metadata_list = [em.to_dict() for em in ExperimentMetadata.objects.bookmarked(experimenter)] potential_participants_count = Participant.objects.active().count() data = { 'session_list': session_list, 'experiment_metadata_list': experiment_metadata_list, 'allEligibleParticipants': potential_participants_count, 'potentialParticipantsCount': potential_participants_count, } return render(request, "subjectpool/index.html", {"view_model_json": dumps(data), "form": SessionInviteForm()})
def participate(request, experiment_id=None): participant = request.user.participant logger.debug("handling participate request for %s and experiment %s", participant, experiment_id) experiment = get_object_or_404(Experiment.objects.select_related('experiment_metadata', 'experiment_configuration'), pk=experiment_id, experiment_metadata=get_experiment_metadata()) if experiment.is_active: pgr = experiment.get_participant_group_relationship(participant) return render(request, experiment.participant_template, { 'experiment': experiment, 'participant_group_relationship': pgr, 'group': pgr.group, 'experimentModelJson': dumps(get_view_model_dict(experiment, pgr)), }) else: messages.info(request, '%s has not been activated yet. Please try again later.' % experiment) return redirect('core:dashboard')
def participate(request, experiment_id=None): participant = request.user.participant experiment = get_object_or_404( Experiment.objects.select_related('experiment_metadata', 'experiment_configuration'), pk=experiment_id, experiment_metadata=get_experiment_metadata()) pgr = experiment.get_participant_group_relationship(participant) return render( request, experiment.participant_template, { 'experiment': experiment, 'participant_experiment_relationship': experiment.get_participant_experiment_relationship(participant), 'participant_group_relationship': pgr, 'experimentModelJson': dumps(get_view_model_dict(experiment, pgr)), })
def experimenter_index(request): """ Provides experimenter subject recruitment interface with all active experiment sessions and past experiment sessions. """ experimenter = request.user.experimenter data = ExperimentSession.objects.filter(creator=request.user) experiment_metadata_list = [em.to_dict() for em in ExperimentMetadata.objects.bookmarked(experimenter)] session_list = [session.to_dict() for session in data] potential_participants_count = Participant.objects.active().count() session_data = { "session_list": session_list, "experiment_metadata_list": experiment_metadata_list, 'allEligibleParticipants': potential_participants_count, 'potentialParticipantsCount': potential_participants_count, } form = SessionInviteForm() return render(request, "experimenter/subject-pool-index.html", {"view_model_json": dumps(session_data), "form": form})
def participate(request, experiment_id=None): participant = request.user.participant logger.debug( "handling participate request for %s and experiment %s", participant, experiment_id) experiment = get_object_or_404(Experiment.objects.select_related('experiment_metadata', 'experiment_configuration'), pk=experiment_id) pgr = experiment.get_participant_group_relationship(participant) if experiment.experiment_metadata != get_experiment_metadata() or pgr.participant != request.user.participant: raise Http404 return render(request, experiment.participant_template, { 'experiment': experiment, 'participant_experiment_relationship': experiment.get_participant_experiment_relationship(participant), 'participant_group_relationship': pgr, 'experimentModelJson': dumps(get_view_model_dict(experiment, pgr)), })
def participate(request, experiment_id=None): participant = request.user.participant logger.debug("handling participate request for %s and experiment %s", participant, experiment_id) experiment = get_object_or_404( Experiment.objects.select_related('experiment_metadata', 'experiment_configuration'), pk=experiment_id, experiment_metadata=get_experiment_metadata()) if experiment.is_active: pgr = experiment.get_participant_group_relationship(participant) return render( request, experiment.participant_template, { 'experiment': experiment, 'participant_group_relationship': pgr, 'group': pgr.group, 'experimentModelJson': dumps( get_view_model_dict(experiment, pgr)), }) else: messages.info( request, '%s has not been activated yet. Please try again later.' % experiment) return redirect('core:dashboard')
def to_json(self): return dumps(self.to_dict())