def get_context_data(self, **kwargs): review_data = {} # Add the header rows review_data['title'] = {'question': '', 'answers': list()} review_data['opinions'] = {'question': 'Opinions', 'answers': list()} review_data['score'] = {'question': 'Overall Score', 'answers': list()} review_data['recommendation'] = { 'question': 'Recommendation', 'answers': list() } review_data['revision'] = {'question': 'Revision', 'answers': list()} review_data['comments'] = {'question': 'Comments', 'answers': list()} responses = self.object_list.count() ordered_reviewers = AssignedReviewers.objects.filter( submission=self.submission).reviewed().review_order() reviews = {review.author: review for review in self.object_list} for i, reviewer in enumerate(ordered_reviewers): review = reviews[reviewer] author = '<a href="{}"><span>{}</span></a>'.format( review.get_absolute_url(), review.author) if review.author.role: author += generate_image_tag(review.author.role.icon, '12x12') author = f'<div>{author}</div>' review_data['title']['answers'].append(author) opinions_template = get_template( 'review/includes/review_opinions_list.html') opinions_html = opinions_template.render( {'opinions': review.opinions.select_related('author').all()}) review_data['opinions']['answers'].append(opinions_html) review_data['score']['answers'].append(review.get_score_display) review_data['recommendation']['answers'].append( review.get_recommendation_display()) review_data['comments']['answers'].append( review.get_comments_display(include_question=False)) if review.for_latest: revision = 'Current' else: revision = '<a href="{}">Compare</a>'.format( review.get_compare_url()) review_data['revision']['answers'].append(revision) for field_id in review.fields: field = review.field(field_id) data = review.data(field_id) if self.should_display(field): question = field.value['field_label'] review_data.setdefault(field.id, { 'question': question, 'answers': [''] * responses }) review_data[field.id]['answers'][i] = field.block.render( None, {'data': data}) return super().get_context_data(submission=self.submission, review_data=review_data, **kwargs)
def render_role_icon(self, value): if value: image = CustomImage.objects.filter(id=value).first() if image: filter_spec = 'fill-20x20' return generate_image_tag(image, filter_spec) return ''
def render_icon(image): if not image: return '' filter_spec = 'fill-20x20' return generate_image_tag(image, filter_spec)