Skip to content

Commit

Permalink
Minor fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
mateusdemorais committed Jun 11, 2018
1 parent ad99f61 commit ed27f1c
Show file tree
Hide file tree
Showing 3 changed files with 146 additions and 31 deletions.
173 changes: 144 additions & 29 deletions api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -595,9 +595,7 @@ def list(self, request):
compatibility = self.request.user.compatibilities.filter(
parliamentary=parliamentary['id']
)[0].compatibility
parliamentary['compatibility'] = "{}%".format(
round(compatibility, 2)
)
parliamentary['compatibility'] = round(compatibility, 2)

return response

Expand All @@ -615,9 +613,7 @@ def retrieve(self, request, pk=None):
compatibility = self.request.user.compatibilities.filter(
parliamentary=response.data['id']
)[0].compatibility
response.data['compatibility'] = "{}%".format(
round(compatibility, 2)
)
response.data['compatibility'] = round(compatibility, 2)

return response

Expand All @@ -639,23 +635,28 @@ def list(self, request):
parliamentarians_total_votes = ParliamentaryVote.objects.filter(
proposition=proposition['id']
)
parliamentarians_approval = parliamentarians_total_votes.filter(
option='Y'
).count() / parliamentarians_total_votes.count() * 100
try:
parliamentarians_approval = \
parliamentarians_total_votes.filter(
option='Y'
).count() / parliamentarians_total_votes.count() * 100
except ZeroDivisionError:
parliamentarians_approval = 0

population_total_votes = UserVote.objects.filter(
proposition=proposition['id']
)
population_approval = population_total_votes.filter(
option='Y'
).count() / population_total_votes.count() * 100

proposition['parliamentarians_approval'] = "{}%".format(
try:
population_approval = population_total_votes.filter(
option='Y'
).count() / population_total_votes.count() * 100
except ZeroDivisionError:
population_approval = 0

proposition['parliamentarians_approval'] = \
round(parliamentarians_approval, 2)
)
proposition['population_approval'] = "{}%".format(
proposition['population_approval'] = \
round(population_approval, 2)
)

return response

Expand All @@ -665,23 +666,27 @@ def retrieve(self, request, pk=None):
parliamentarians_total_votes = ParliamentaryVote.objects.filter(
proposition=response.data['id']
)
parliamentarians_approval = parliamentarians_total_votes.filter(
option='Y'
).count() / parliamentarians_total_votes.count() * 100
try:
parliamentarians_approval = parliamentarians_total_votes.filter(
option='Y'
).count() / parliamentarians_total_votes.count() * 100
except ZeroDivisionError:
parliamentarians_approval = 0

population_total_votes = UserVote.objects.filter(
proposition=response.data['id']
)
population_approval = population_total_votes.filter(
option='Y'
).count() / population_total_votes.count() * 100
try:
population_approval = population_total_votes.filter(
option='Y'
).count() / population_total_votes.count() * 100
except ZeroDivisionError:
population_approval = 0

response.data['parliamentarians_approval'] = "{}%".format(
response.data['parliamentarians_approval'] = \
round(parliamentarians_approval, 2)
)
response.data['population_approval'] = "{}%".format(
response.data['population_approval'] = \
round(population_approval, 2)
)

return response

Expand Down Expand Up @@ -722,6 +727,35 @@ def non_voted_by_user(self, request):
proposition_serialized.data,
status=status.HTTP_200_OK
)

parliamentarians_total_votes = \
ParliamentaryVote.objects.filter(
proposition=response.data['id']
)
try:
parliamentarians_approval = \
parliamentarians_total_votes.filter(
option='Y'
).count() / \
parliamentarians_total_votes.count() * 100
except ZeroDivisionError:
parliamentarians_approval = 0

population_total_votes = UserVote.objects.filter(
proposition=response.data['id']
)
try:
population_approval = population_total_votes.filter(
option='Y'
).count() / population_total_votes.count() * 100
except ZeroDivisionError:
population_approval = 0

response.data['parliamentarians_approval'] = \
round(parliamentarians_approval, 2)
response.data['population_approval'] = \
round(population_approval, 2)

break

except AttributeError:
Expand Down Expand Up @@ -756,6 +790,36 @@ def voted_by_parliamentary(self, request):
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)

for proposition in serializer.data:

parliamentarians_total_votes = \
ParliamentaryVote.objects.filter(
proposition=proposition['id']
)
try:
parliamentarians_approval = \
parliamentarians_total_votes.filter(
option='Y'
).count() / parliamentarians_total_votes.count() * 100
except ZeroDivisionError:
parliamentarians_approval = 0

population_total_votes = UserVote.objects.filter(
proposition=proposition['id']
)
try:
population_approval = population_total_votes.filter(
option='Y'
).count() / population_total_votes.count() * 100
except ZeroDivisionError:
population_approval = 0

proposition['parliamentarians_approval'] = \
round(parliamentarians_approval, 2)
proposition['population_approval'] = \
round(population_approval, 2)

return self.get_paginated_response(serializer.data)

serializer = self.get_serializer(queryset, many=True)
Expand Down Expand Up @@ -784,6 +848,34 @@ def list(self, request):
proposition_serializer = PropositionSerializer(proposition)
vote['proposition'] = proposition_serializer.data

parliamentarians_total_votes = \
ParliamentaryVote.objects.filter(
proposition=vote['proposition']['id']
)
try:
parliamentarians_approval = \
parliamentarians_total_votes.filter(
option='Y'
).count() / \
parliamentarians_total_votes.count() * 100
except ZeroDivisionError:
parliamentarians_approval = 0

population_total_votes = UserVote.objects.filter(
proposition=vote['proposition']['id']
)
try:
population_approval = population_total_votes.filter(
option='Y'
).count() / population_total_votes.count() * 100
except ZeroDivisionError:
population_approval = 0

vote['proposition']['parliamentarians_approval'] = \
round(parliamentarians_approval, 2)
vote['proposition']['population_approval'] = \
round(population_approval, 2)

return response

def create(self, request):
Expand Down Expand Up @@ -893,12 +985,24 @@ def get_queryset(self):
def list(self, request):
response = super(UserFollowingViewset, self).list(request)

extended_user = ExtendedUser.objects.get(user=request.user)
if extended_user.should_update:
update_compatibility(self)
extended_user.should_update = False
extended_user.save()

for following in response.data['results']:
parliamentary = \
Parliamentary.objects.get(pk=following['parliamentary'])
parliamentary_serializer = ParliamentarySerializer(parliamentary)
following['parliamentary'] = parliamentary_serializer.data

compatibility = self.request.user.compatibilities.filter(
parliamentary=following['parliamentary']['id']
)[0].compatibility
following['parliamentary']['compatibility'] = \
round(compatibility, 2)

return response

def create(self, request):
Expand Down Expand Up @@ -971,6 +1075,12 @@ def retrieve(self, request, pk=None):
}
return Response(response, status=status.HTTP_404_NOT_FOUND)

extended_user = ExtendedUser.objects.get(user=request.user)
if extended_user.should_update:
update_compatibility(self)
extended_user.should_update = False
extended_user.save()

user_following_serializer = UserFollowingSerializer(user_following)
user_following_dict = dict(user_following_serializer.data)

Expand All @@ -982,6 +1092,12 @@ def retrieve(self, request, pk=None):
user_following_dict['parliamentary'] = \
parliamentary_serializer.data

compatibility = self.request.user.compatibilities.filter(
parliamentary=user_following_dict['parliamentary']['id']
)[0].compatibility
user_following_dict['parliamentary']['compatibility'] = \
round(compatibility, 2)

return Response(user_following_dict)


Expand Down Expand Up @@ -1068,9 +1184,8 @@ def most_compatible(self, request):
compatibility
).data
del compatibility_serialized['user']
compatibility_serialized['compatibility'] = "{}%".format(
compatibility_serialized['compatibility'] = \
round(compatibility_serialized['compatibility'], 2)
)

compatibilities_list.append(compatibility_serialized)

Expand Down
2 changes: 1 addition & 1 deletion provision/hml/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ services:
container_name: nginx
image: nginx
ports:
- "80:8000"
- "8000:8000"
volumes:
- ../../.:/code
- ../.././nginx:/etc/nginx/conf.d
Expand Down
2 changes: 1 addition & 1 deletion provision/prod/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ services:
container_name: nginx
image: nginx
ports:
- "80:8000"
- "8000:8000"
volumes:
- ../../.:/code
- ../.././nginx:/etc/nginx/conf.d
Expand Down

0 comments on commit ed27f1c

Please sign in to comment.