Skip to content

Commit

Permalink
Get last_update and days_ago
Browse files Browse the repository at this point in the history
Co-authored-by: Breno Mariz <mrzbeo@gmail.com>
  • Loading branch information
mateusdemorais and breno-mariz committed Jun 16, 2018
1 parent 582065f commit 12a4df0
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 13 deletions.
6 changes: 4 additions & 2 deletions VoxPopLoader/loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def setup(self):
base=self.base_url
)

self.api_base_url = "api:8000"
self.api_base_url = "localhost:8000"
self.propositions_url = \
"http://{base}/api/propositions/?limit=10000".format(
base=self.api_base_url
Expand Down Expand Up @@ -412,7 +412,9 @@ def __get_propositions(self):
# Situação
'situation': proposition_result[sp]['descricaoSituacao'],
# URL da proposição na íntegra
'url_full': proposition_result[sp]['url']
'url_full': proposition_result[sp]['url'],
# Última atualização da proposição
'last_update': proposition_result[sp]['dataHora']
}

requests.post(
Expand Down
46 changes: 35 additions & 11 deletions api/views.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import json
from base64 import b64encode
from datetime import datetime

from django.contrib.auth.models import User
from django.core.exceptions import ObjectDoesNotExist
from django.db import IntegrityError
from django.db.models import Count, Q
from django.utils import timezone

from rest_framework import mixins, status, viewsets
from rest_framework.authtoken.views import ObtainAuthToken
Expand Down Expand Up @@ -464,13 +466,13 @@ def actual_user(self, request):
user['first_name'] = request.user.first_name
user['last_name'] = request.user.last_name

try:
social_information = request.user.social_information
except SocialInformation.DoesNotExist:
social_information = SocialInformation.objects.create(
owner=request.user
)
social_information.save()
try:
social_information = request.user.social_information
except SocialInformation.DoesNotExist:
social_information = SocialInformation.objects.create(
owner=request.user
)
social_information.save()

try:
extended_user = request.user.extended_user
Expand Down Expand Up @@ -543,7 +545,7 @@ def get_propositions(self, request):
if request.query_params.get('key') == \
LoaderViewSet.__get_credentials():

propositions = Proposition.objects.all().order_by('-year')
propositions = Proposition.objects.all().order_by('-last_update')
propositions_list = []

for proposition in propositions:
Expand Down Expand Up @@ -571,6 +573,12 @@ def create_proposition(self, request):
if request.query_params.get('key') == \
LoaderViewSet.__get_credentials():
proposition_dict = request.data.dict()

proposition_dict['last_update'] = datetime.strptime(
proposition_dict['last_update'] + '-0300',
'%Y-%m-%dT%H:%M%z'
)

Proposition.objects.create(**proposition_dict)

response = Response({"status": "OK"}, status=status.HTTP_200_OK)
Expand Down Expand Up @@ -677,7 +685,7 @@ class PropositionViewset(mixins.RetrieveModelMixin,
serializer_class = PropositionSerializer

def get_queryset(self):
queryset = Proposition.objects.all().order_by('-year')
queryset = Proposition.objects.all().order_by('-last_update')
return propositions_filter(self, queryset)

def list(self, request):
Expand Down Expand Up @@ -766,7 +774,7 @@ def non_voted_by_user(self, request):

all_propositions = Proposition.objects.filter(
id__in=proposition_voted_ids
).order_by('-year')
).order_by('-last_update')

response = Response(
{'status': 'No Content'},
Expand Down Expand Up @@ -808,6 +816,12 @@ def non_voted_by_user(self, request):
round(parliamentarians_approval, 2)
response.data['population_approval'] = \
round(population_approval, 2)
response.data['days_ago'] = (
timezone.now() - datetime.strptime(
response.data['last_update'] + '-0300',
'%Y-%m-%dT%H:%M:%SZ%z'
)
).days

break

Expand Down Expand Up @@ -835,7 +849,7 @@ def voted_by_parliamentary(self, request):

queryset = Proposition.objects.filter(
id__in=proposition_voted_ids
).order_by('-year')
).order_by('-last_update')

# serializer = PropositionSerializer(queryset, many=True)
# return Response(serializer.data)
Expand Down Expand Up @@ -872,6 +886,10 @@ def voted_by_parliamentary(self, request):
round(parliamentarians_approval, 2)
proposition['population_approval'] = \
round(population_approval, 2)
proposition['days_ago'] = (timezone.now() - datetime.strptime(
proposition['last_update'] + '-0300',
'%Y-%m-%dT%H:%M:%SZ%z'
)).days

return self.get_paginated_response(serializer.data)

Expand Down Expand Up @@ -928,6 +946,12 @@ def list(self, request):
round(parliamentarians_approval, 2)
vote['proposition']['population_approval'] = \
round(population_approval, 2)
vote['proposition']['days_ago'] = (
timezone.now() - datetime.strptime(
vote['proposition']['last_update'] + '-0300',
'%Y-%m-%dT%H:%M:%SZ%z'
)
).days

return response

Expand Down

0 comments on commit 12a4df0

Please sign in to comment.