Skip to content

Commit

Permalink
Merge pull request #1204 from unicef/develop
Browse files Browse the repository at this point in the history
Develop -> Master 20190924
  • Loading branch information
robertavram authored Sep 24, 2019
2 parents 044c033 + 99381b1 commit 2f09c56
Show file tree
Hide file tree
Showing 340 changed files with 40,079 additions and 93,267 deletions.
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@
# PyCharm etc.
.idea/
.vscode/
.devcontainer

# Python compiled
*.pyc
*.pem
!django_api/django_api/keys/jwt/certificate.pem
.coverage
htmlcov
.pytest_cache

# Frontend
node_modules/
Expand All @@ -22,4 +24,6 @@ package-lock.json
data/

# k8s secrets
kubernetes/base/secrets.yml
kubernetes/base/secrets.yml

Pipfile
31 changes: 31 additions & 0 deletions django_api/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
ENV_VARS=SECRET_KEY=123 \
ENV=dev \
POSTGRES_DB=unicef_prp \
POSTGRES_USER=postgres \
POSTGRES_PASSWORD= \
POSTGRES_HOST=localhost \
DATA_VOLUME=/tmp \
REDIS_URL=redis://localhost:6379/0


help:
@echo ' '
@echo 'Usage: '
@echo ' make test run tests '
@echo ' make migrate run local migrations '
@echo ' make loaddata load fixtures '
@echo ' make run run local instance '


test:
${ENV_VARS} python manage.py test --keepdb --failfast

migrate:
${ENV_VARS} python manage.py migrate

loaddata:
${ENV_VARS} python manage.py loaddata sites
${ENV_VARS} python manage.py loaddata reporting_entities

run:
${ENV_VARS} python manage.py runserver
10 changes: 5 additions & 5 deletions django_api/codefresh_django.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@ steps:
depends_on:
- django_api
- db
command: bash -c "/usr/local/bin/waitforit -host=db -port=5432 -timeout=120 && flake8 && coverage run --source="." ./manage.py test"
command: bash -c "/usr/local/bin/waitforit -host=db -port=5432 -timeout=120 && pip install -r requirements/dev.txt && flake8 && coverage run --source="." ./manage.py test"
environment:
- POSTGRES_DB=etools_prp
- POSTGRES_USER=etools_prp_user
- POSTGRES_PASSWORD=
- POSTGRES_HOST=db
- SECRET_KEY=asdfqwef124rf
- ENV=staging
- ENV=dev
- DJANGO_ALLOWED_HOST="*"
- DJANGO_SETTINGS_MODULE=django_api.settings.staging
- DJANGO_SETTINGS_MODULE=django_api.settings.dev
- C_FORCE_ROOT=1
- CELERY_LOG_LEVEL=info

Expand All @@ -39,9 +39,9 @@ steps:
- POSTGRES_PASSWORD=
- POSTGRES_HOST=db
- SECRET_KEY=asdfqwef124rf
- ENV=staging
- ENV=dev
- DJANGO_ALLOWED_HOST="*"
- DJANGO_SETTINGS_MODULE=django_api.settings.staging
- DJANGO_SETTINGS_MODULE=django_api.settings.dev
- C_FORCE_ROOT=1
- CELERY_LOG_LEVEL=info

Expand Down
6 changes: 5 additions & 1 deletion django_api/django_api/apps/account/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,11 @@ def user_type(self):
return USER_TYPES.imo
if {PRP_ROLE_TYPES.cluster_member,
PRP_ROLE_TYPES.cluster_viewer,
PRP_ROLE_TYPES.cluster_coordinator} \
PRP_ROLE_TYPES.cluster_coordinator,
PRP_ROLE_TYPES.ip_viewer,
PRP_ROLE_TYPES.ip_editor,
PRP_ROLE_TYPES.ip_admin,
PRP_ROLE_TYPES.ip_authorized_officer} \
.intersection(user_prp_roles):
return USER_TYPES.partner

Expand Down
2 changes: 1 addition & 1 deletion django_api/django_api/apps/cluster/export_indicators.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ def fill_sheet(self, disaggregation_types, indicators):
partner_activity.cluster_activity else partner_activity.cluster_objective.cluster
cluster_objective = partner_activity.cluster_activity.cluster_objective if \
partner_activity.cluster_activity else partner_activity.cluster_objective
partner_project = partner_activity.project
partner_project = partner_activity.projects.first().project
elif partner_project:
cluster = partner_project.clusters.first()
cluster_objective = cluster.cluster_objectives.first()
Expand Down
15 changes: 8 additions & 7 deletions django_api/django_api/apps/cluster/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ def get_cluster(self, queryset, name, value):

def get_partner(self, queryset, name, value):
return queryset.filter(
Q(reportable__partner_activities__project__partner=value) |
Q(reportable__partner_activities__partner=value) |
Q(reportable__partner_projects__partner=value)
).distinct()

Expand All @@ -117,14 +117,15 @@ def get_indicator(self, queryset, name, value):
return queryset.filter(reportable=reportable)

def get_project(self, queryset, name, value):
value_list = value.split(',')
return queryset.filter(
Q(reportable__cluster_objectives__cluster__partner_projects=value) |
Q(reportable__cluster_objectives__cluster_activities__partner_activities__project=value) |
Q(reportable__cluster_activities__cluster_objective__cluster__partner_projects=value) |
Q(reportable__cluster_activities__partner_activities__project=value)
Q(reportable__cluster_objectives__cluster__partner_projects__in=value_list) |
Q(reportable__cluster_objectives__cluster_activities__partner_activities__projects__in=value_list) |
Q(reportable__cluster_activities__cluster_objective__cluster__partner_projects__in=value_list) |
Q(reportable__cluster_activities__partner_activities__projects__in=value_list)
|
Q(reportable__partner_activities__project=value) |
Q(reportable__partner_projects=value)
Q(reportable__partner_activities__projects__in=value_list) |
Q(reportable__partner_projects__in=value_list)
).distinct()

def get_location(self, queryset, name, value):
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-05-22 17:59
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('cluster', '0002_auto_20180711_2325'),
]

operations = [
migrations.AlterField(
model_name='cluster',
name='external_source',
field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True),
),
migrations.AlterField(
model_name='clusteractivity',
name='external_source',
field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True),
),
migrations.AlterField(
model_name='clusterobjective',
name='external_source',
field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True),
),
]
93 changes: 61 additions & 32 deletions django_api/django_api/apps/cluster/tests/test_views.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import datetime
from dateutil.relativedelta import relativedelta
from unittest.mock import Mock, patch

from django.urls import reverse

Expand Down Expand Up @@ -27,6 +28,7 @@
LocationFactory,
ClusterActivityFactory,
PartnerProjectFactory,
PartnerActivityProjectContextFactory,
ClusterActivityPartnerActivityFactory,
QuantityTypeIndicatorBlueprintFactory,
QuantityReportableToClusterActivityFactory,
Expand Down Expand Up @@ -700,8 +702,12 @@ def test_cluster_indicator_reports_list_and_filtering_and_ordering(self):
)

self.p_activity = ClusterActivityPartnerActivityFactory(
partner=self.partner,
cluster_activity=self.activity,
)
self.project_context = PartnerActivityProjectContextFactory(
project=self.project,
activity=self.p_activity,
)

self.blueprint = QuantityTypeIndicatorBlueprintFactory()
Expand All @@ -719,20 +725,21 @@ def test_cluster_indicator_reports_list_and_filtering_and_ordering(self):
)

# Create 4 indicator reports across generic relation
self.clusteractivity_indicator_report = ClusterIndicatorReportFactory(
reportable=self.clusteractivity_reportable,
)
self.partneractivity_indicator_report = ClusterIndicatorReportFactory(
reportable=self.partneractivity_reportable,
report_status=INDICATOR_REPORT_STATUS.submitted,
)
self.clusterobjective_indicator_report = ClusterIndicatorReportFactory(
reportable=self.clusterobjective_reportable,
report_status=INDICATOR_REPORT_STATUS.overdue,
)
self.partnerproject_indicator_report = ClusterIndicatorReportFactory(
reportable=self.partnerproject_reportable,
)
with patch("django.db.models.signals.ModelSignal.send", Mock()):
self.clusteractivity_indicator_report = ClusterIndicatorReportFactory(
reportable=self.clusteractivity_reportable,
)
self.partneractivity_indicator_report = ClusterIndicatorReportFactory(
reportable=self.partneractivity_reportable,
report_status=INDICATOR_REPORT_STATUS.submitted,
)
self.clusterobjective_indicator_report = ClusterIndicatorReportFactory(
reportable=self.clusterobjective_reportable,
report_status=INDICATOR_REPORT_STATUS.overdue,
)
self.partnerproject_indicator_report = ClusterIndicatorReportFactory(
reportable=self.partnerproject_reportable,
)

self.loc_data = IndicatorLocationDataFactory(
indicator_report=self.partnerproject_indicator_report,
Expand Down Expand Up @@ -860,13 +867,21 @@ def setUp(self):
)

self.p_activity = ClusterActivityPartnerActivityFactory(
partner=self.partner,
cluster_activity=self.activity,
)
self.project_context = PartnerActivityProjectContextFactory(
project=self.project,
activity=self.p_activity,
)

self.p_custom_activity = CustomPartnerActivityFactory(
cluster_objective=self.objective,
partner=self.partner,
)
self.project_context = PartnerActivityProjectContextFactory(
project=self.project,
activity=self.p_activity,
)

self.blueprint = QuantityTypeIndicatorBlueprintFactory()
Expand All @@ -887,24 +902,25 @@ def setUp(self):
)

# Create 4 indicator reports across generic relation
self.clusteractivity_indicator_report = ClusterIndicatorReportFactory(
reportable=self.clusteractivity_reportable,
)
self.partneractivity_indicator_report = ClusterIndicatorReportFactory(
reportable=self.partneractivity_reportable,
report_status=INDICATOR_REPORT_STATUS.submitted,
)
self.custom_partneractivity_indicator_report = ClusterIndicatorReportFactory(
reportable=self.custom_partneractivity_reportable,
report_status=INDICATOR_REPORT_STATUS.submitted,
)
self.clusterobjective_indicator_report = ClusterIndicatorReportFactory(
reportable=self.clusterobjective_reportable,
report_status=INDICATOR_REPORT_STATUS.overdue,
)
self.partnerproject_indicator_report = ClusterIndicatorReportFactory(
reportable=self.partnerproject_reportable,
)
with patch("django.db.models.signals.ModelSignal.send", Mock()):
self.clusteractivity_indicator_report = ClusterIndicatorReportFactory(
reportable=self.clusteractivity_reportable,
)
self.partneractivity_indicator_report = ClusterIndicatorReportFactory(
reportable=self.partneractivity_reportable,
report_status=INDICATOR_REPORT_STATUS.submitted,
)
self.custom_partneractivity_indicator_report = ClusterIndicatorReportFactory(
reportable=self.custom_partneractivity_reportable,
report_status=INDICATOR_REPORT_STATUS.submitted,
)
self.clusterobjective_indicator_report = ClusterIndicatorReportFactory(
reportable=self.clusterobjective_reportable,
report_status=INDICATOR_REPORT_STATUS.overdue,
)
self.partnerproject_indicator_report = ClusterIndicatorReportFactory(
reportable=self.partnerproject_reportable,
)

self.clusteractivity_loc_data = IndicatorLocationDataFactory(
indicator_report=self.clusteractivity_indicator_report,
Expand Down Expand Up @@ -1052,7 +1068,11 @@ def setUp(self):

self.p_custom_activity = CustomPartnerActivityFactory(
cluster_objective=self.objective,
partner=self.partner,
)
self.project_context = PartnerActivityProjectContextFactory(
project=self.project,
activity=self.p_custom_activity,
)

self.blueprint = QuantityTypeIndicatorBlueprintFactory()
Expand Down Expand Up @@ -1188,12 +1208,21 @@ def test_response_details(self):

p_activity = ClusterActivityPartnerActivityFactory(
cluster_activity=self.activity,
partner=partner,
)
self.project_context = PartnerActivityProjectContextFactory(
project=project,
activity=p_activity,
)

p_custom_activity = CustomPartnerActivityFactory(
cluster_objective=self.objective,
partner=partner,
)

self.project_context = PartnerActivityProjectContextFactory(
project=project,
activity=p_custom_activity,
)

partneractivity_reportable = QuantityReportableToPartnerActivityFactory(
Expand Down
Loading

0 comments on commit 2f09c56

Please sign in to comment.