Skip to content

Commit c614985

Browse files
authored
Merge pull request #78 from HackAssistant/friends
Added friends on detail
2 parents dbb2e71 + c56101f commit c614985

File tree

2 files changed

+26
-13
lines changed

2 files changed

+26
-13
lines changed

app/settings.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -428,5 +428,3 @@
428428
},
429429
'ICON': 'bi bi-github',
430430
}
431-
432-

review/views.py

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from django_tables2 import SingleTableMixin
2222

2323
from app.mixins import TabsViewMixin
24+
from app.utils import is_installed
2425
from application import forms
2526
from application.mixins import ApplicationPermissionRequiredMixin
2627
from application.models import Application, FileField, ApplicationLog, ApplicationTypeConfig, PromotionalCode
@@ -123,22 +124,36 @@ def get_form(self, application_type):
123124
raise Http404()
124125
return ApplicationForm
125126

127+
def add_friends_details(self, details, application):
128+
if is_installed('friends'):
129+
friend_code = application.user.friendscode_set.first()
130+
if friend_code is not None:
131+
friends = friend_code.get_members().exclude(pk=friend_code.pk).values_list('user__email', flat=True)
132+
if len(friends) > 0:
133+
details[_('Number of friends')] = len(friends)
134+
details[_('Friends list')] = ', '.join(friends)
135+
136+
def get_details(self, application):
137+
details = {_('Full Name'): application.user.get_full_name(), _('Status'): application.get_status_display()}
138+
if application.promotional_code:
139+
details[_('Promotion')] = application.promotional_code.name
140+
for name, value in application.form_data.items():
141+
if isinstance(value, FileField):
142+
value = value.url
143+
if isinstance(value, bool):
144+
value = _('Yes') if value else _('No')
145+
if isinstance(value, list):
146+
value = ', '.join(value)
147+
details[name.replace('_', ' ').lower().title()] = value
148+
self.add_friends_details(details, application)
149+
return details
150+
126151
def get_context_data(self, **kwargs):
127152
context = super().get_context_data(**kwargs)
128153
application = self.get_application()
129154
if application is not None:
130-
details = {_('Full Name'): application.user.get_full_name(), _('Status'): application.get_status_display()}
131-
if application.promotional_code:
132-
details[_('Promotion')] = application.promotional_code.name
155+
details = self.get_details(application)
133156
ApplicationForm = self.get_form(application.type)
134-
for name, value in application.form_data.items():
135-
if isinstance(value, FileField):
136-
value = value.url
137-
if isinstance(value, bool):
138-
value = _('Yes') if value else _('No')
139-
if isinstance(value, list):
140-
value = ', '.join(value)
141-
details[name.replace('_', ' ').lower().title()] = value
142157
icons = {name.replace('_', ' ').lower().title(): value
143158
for name, value in getattr(ApplicationForm.Meta, 'icon_link', {}).items()}
144159
comments = application.logs.filter(comment__isnull=False)

0 commit comments

Comments
 (0)