def print_assignment(hit_id): if hit_id == 'all': a = [] for hit in mturk.list_hits()['HITs']: try: a.extend( mturk.list_assignments_for_hit(HITId=hit['HITId']).get( 'Assignments', [])) except Exception as e: print(e) pprint(a) else: pprint( mturk.list_assignments_for_hit(HITId=hit_id).get( 'Assignments', []))
def changelist_view(self, request, extra_context=None): # Update assignment statuses of any new assignments try: self.assignments = { assignment['AssignmentId']: assignment for hit in mturk.list_hits()['HITs'] for assignment in mturk.list_assignments_for_hit(HITId=hit['HITId']).get('Assignments', []) } for obj in HIT.objects.filter(Q(data__has_key='hitId') &~ Q(data__has_key='status')): obj.data['status'] = self.assignments.get(obj.assignment_id, {}).get('AssignmentStatus', '') obj.save() except Exception as e: self.message_user(request, f'Unable to retrieve assignment statuses. {e}', messages.ERROR) return super().changelist_view(request, extra_context=None)