- answers = self.answer_set.exclude(mark__expert=expert).filter(participant__complete_set=True)
- if expert not in self.supervisors.all():
+ answers = self.answer_set.exclude(mark__expert=expert)
+ assigned_to_expert = self.answer_set.filter(expert=expert).exists()
+ is_supervisor = expert in self.supervisors.all()
+ is_arbiter = expert in self.arbiters.all()
+ if assigned_to_expert:
+ expert_answers = answers.filter(expert=expert)
+ if expert_answers or not is_arbiter:
+ answers = expert_answers
+ answers = answers.extra(where=[
+ "field_values::text ~ ': *\"[^\"]+\"' "
+ "OR EXISTS (SELECT id FROM stage2_attachment WHERE answer_id = stage2_answer.id) "
+ "OR EXISTS (SELECT id FROM stage2_fieldoption WHERE answer_id = stage2_answer.id)"])
+ if not is_supervisor: