From c407a6d48fa2a178a2122b10ec509b68ac992fc6 Mon Sep 17 00:00:00 2001 From: achamseddine Date: Tue, 5 Jul 2016 19:17:48 +0300 Subject: [PATCH 1/5] Change http to https (#32) --- EquiTrack/partners/emails.py | 2 +- EquiTrack/tpm/models.py | 4 ++-- EquiTrack/trips/emails.py | 8 ++++---- EquiTrack/trips/serializers.py | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/EquiTrack/partners/emails.py b/EquiTrack/partners/emails.py index da77582034..67a31fb483 100644 --- a/EquiTrack/partners/emails.py +++ b/EquiTrack/partners/emails.py @@ -23,7 +23,7 @@ def get_context(self): return { 'number': self.object.__unicode__(), 'state': 'Created', - 'url': 'http://{}{}'.format( + 'url': 'https://{}{}'.format( self.get_current_site().domain, self.object.get_admin_url() ) diff --git a/EquiTrack/tpm/models.py b/EquiTrack/tpm/models.py index 960a40ffe4..4520e46530 100644 --- a/EquiTrack/tpm/models.py +++ b/EquiTrack/tpm/models.py @@ -104,7 +104,7 @@ def send_emails(cls, sender, instance, created, **kwargs): instance.assigned_by.email, template=template, context={ - 'url': 'http://{}{}'.format( + 'url': 'https://{}{}'.format( current_site.domain, instance.get_admin_url() ) @@ -137,7 +137,7 @@ def send_emails(cls, sender, instance, created, **kwargs): template=template, context={ 'state': state, - 'url': 'http://{}{}'.format( + 'url': 'https://{}{}'.format( current_site.domain, instance.get_admin_url() ) diff --git a/EquiTrack/trips/emails.py b/EquiTrack/trips/emails.py index f87acce66e..c788cba322 100644 --- a/EquiTrack/trips/emails.py +++ b/EquiTrack/trips/emails.py @@ -28,7 +28,7 @@ def get_context(self): 'owner_name': self.object.owner.get_full_name(), 'number': self.object.reference(), 'state': 'Submitted', - 'url': 'http://{}{}'.format( + 'url': 'https://{}{}'.format( self.get_current_site().domain, self.object.get_admin_url()), 'purpose_of_travel': self.object.purpose_of_travel, @@ -191,7 +191,7 @@ def __init__(self, action): def get_context(self): return { 'trip_reference': self.object.reference(), - 'url': 'http://{}{}#reporting'.format( + 'url': 'https://{}{}#reporting'.format( self.get_current_site().domain, self.object.get_admin_url() ), @@ -260,12 +260,12 @@ def get_context(self): ) for trip in trips_overdue: - trips_overdue_text[trip.purpose_of_travel] = ['http://{}{}'.format( + trips_overdue_text[trip.purpose_of_travel] = ['https://{}{}'.format( self.get_current_site().domain, trip.get_admin_url()), trip.from_date.strftime("%d-%b-%y")] for trip in trips_coming: - trips_coming_text[trip.purpose_of_travel] = ['http://{}{}'.format( + trips_coming_text[trip.purpose_of_travel] = ['https://{}{}'.format( self.get_current_site().domain, trip.get_admin_url()), trip.from_date.strftime("%d-%b-%y")] diff --git a/EquiTrack/trips/serializers.py b/EquiTrack/trips/serializers.py index bb5b490a53..5c8ad8f0c4 100644 --- a/EquiTrack/trips/serializers.py +++ b/EquiTrack/trips/serializers.py @@ -147,7 +147,7 @@ def get_partners(self, obj): return [partner.name for partner in obj.partners.all()] def transform_url(self, obj): - return 'http://{}{}'.format( + return 'https://{}{}'.format( Site.objects.get_current(), obj.get_admin_url() ) From 6d03a3c0fa77bd69c7cef11a117d79303118bbdb Mon Sep 17 00:00:00 2001 From: ntrncic Date: Wed, 6 Jul 2016 17:14:28 +0200 Subject: [PATCH 2/5] intervention dates validation (#23) * intervention dates validation * updated error messages --- EquiTrack/partners/forms.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/EquiTrack/partners/forms.py b/EquiTrack/partners/forms.py index e12e30279f..02a9e23bee 100644 --- a/EquiTrack/partners/forms.py +++ b/EquiTrack/partners/forms.py @@ -384,6 +384,12 @@ def parse_disaggregate_val(csvs): class PartnershipForm(UserGroupForm): + ERROR_MESSAGES = { + 'signed_by_partner': 'Signed by partner date must be later than submission date and submission date to PRC', + 'partner_manager': 'Please select a partner manager for the signed date', + 'submission_date': 'Submition date to PRC must be later than submission date', + 'review_date': 'Review date by PRC must be later than submission date and submission date to PRC' + } user_field = u'unicef_manager' group_name = u'Senior Management Team' @@ -567,6 +573,10 @@ def clean(self): signed_by_partner_date = cleaned_data[u'signed_by_partner_date'] start_date = cleaned_data[u'start_date'] end_date = cleaned_data[u'end_date'] + initiation_date = cleaned_data[u'initiation_date'] + submission_date = cleaned_data[u'submission_date'] + review_date = cleaned_data[u'review_date'] + p_codes = cleaned_data[u'p_codes'] location_sector = cleaned_data[u'location_sector'] @@ -624,6 +634,17 @@ def clean(self): u'Please select the date {} signed the partnership'.format(partner_manager) ) + if signed_by_partner_date and signed_by_partner_date < initiation_date: + raise ValidationError({'signed_by_partner_date': self.ERROR_MESSAGES['signed_by_partner']}) + + if signed_by_partner_date and not partner_manager: + raise ValidationError({'partner_manager': self.ERROR_MESSAGES['partner_manager']}) + + if signed_by_unicef_date and not unicef_manager: + raise ValidationError( + u'Please select a unicef manager for the signed date' + ) + if signed_by_unicef_date and start_date and (start_date < signed_by_unicef_date): raise ValidationError( u'The start date must be greater or equal to the singed by date' @@ -644,6 +665,12 @@ def clean(self): err = u'The end date has to be after the start date' raise ValidationError({'end_date': err}) + if submission_date and submission_date < initiation_date: + raise ValidationError({'submission_date': self.ERROR_MESSAGES['submission_date']}) + + if review_date and review_date < submission_date and review_date < initiation_date: + raise ValidationError({'review_date': self.ERROR_MESSAGES['review_date']}) + if p_codes and location_sector: self.add_locations(p_codes, location_sector) From ddd107fd5dffb0b5c9a3bbde7c8e0e89fb6f215e Mon Sep 17 00:00:00 2001 From: Robert Avram Date: Thu, 7 Jul 2016 15:24:03 -0400 Subject: [PATCH 3/5] Celery options update and task logging (#39) --- EquiTrack/EquiTrack/settings/base.py | 2 +- EquiTrack/supplies/tasks.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/EquiTrack/EquiTrack/settings/base.py b/EquiTrack/EquiTrack/settings/base.py index d5ab6f83ec..26d2e406c5 100644 --- a/EquiTrack/EquiTrack/settings/base.py +++ b/EquiTrack/EquiTrack/settings/base.py @@ -178,7 +178,7 @@ # CELERY_ACCEPT_CONTENT = ['application/json'] # CELERYD_HIJACK_ROOT_LOGGER = False -# CELERYD_PREFETCH_MULTIPLIER = 1 +CELERYD_PREFETCH_MULTIPLIER = 1 # CELERYD_MAX_TASKS_PER_CHILD = 1000 SLACK_URL = os.environ.get('SLACK_URL') diff --git a/EquiTrack/supplies/tasks.py b/EquiTrack/supplies/tasks.py index 71e9e82905..4eb4fa5430 100644 --- a/EquiTrack/supplies/tasks.py +++ b/EquiTrack/supplies/tasks.py @@ -10,8 +10,11 @@ from requests.auth import HTTPBasicAuth from EquiTrack.celery import app +from celery.utils.log import get_task_logger +logger = get_task_logger(__name__) + def set_docs(docs): payload_json = json.dumps( @@ -57,6 +60,8 @@ def set_unisupply_distribution(distribution_plan_id): from partners.models import DistributionPlan distribution_plan = DistributionPlan.objects.get(id=distribution_plan_id) + logger.debug('Unisupply: set_unisupply_distribution task initiated') + doc = distribution_plan.document if distribution_plan.document else { "country": connection.schema_name, "distribution_id": distribution_plan.id, @@ -92,7 +97,11 @@ def set_unisupply_distribution(distribution_plan_id): distribution_plan.sent = True distribution_plan.save() - return response.text + logger.info('Unisupply task completed' + 'Status:{}, Sent:{}, Id:{}'.format(response.status_code, + distribution_plan.sent, + distribution_plan.id)) + return response.text @app.task From fda7eb0e822bad61fea5b35fae87c96c93403ddf Mon Sep 17 00:00:00 2001 From: Robert Avram Date: Wed, 13 Jul 2016 17:06:12 -0400 Subject: [PATCH 4/5] Develop (#45) * changed deprecated name for the number (#37) #118468621 * update build process (#38) * update build process [DO NOT MERGE] * build updates * small tweaks * small tweaks * get around permissions * update gitignore * display spinner when waiting for map location search results (#27) * display spinner when waiting for map location search results * simplify loading spinner * remove unneeded Icon file * fix government ntervention implementation status [Finishes #105550212] * update Android / iOS builds (#41) --- .gitignore | 4 +- .../app/eTrips/android/etrips-release.apk | Bin 1754221 -> 1200017 bytes EquiTrack/assets/app/eTrips/ios/etrips.ipa | Bin 1975624 -> 1456424 bytes "EquiTrack/assets/images/Icon\r" | 0 EquiTrack/partners/admin.py | 2 +- .../templatetags/intervention_tags.py | 34 +- .../templates/frontend/partner/partner.html | 1 - EquiTrack/templates/map.html | 13 +- EquiTrack/vision/tasks.py | 2 +- circle.yml | 4 +- docker-build.sh | 19 + etools-build.docker | 3 +- frontend/.gitattributes | 1 - frontend/.gitignore | 7 - frontend/.jscsrc | 7 - frontend/.jshintrc | 28 - frontend/LICENSE.md | 19 - frontend/README.md | 364 -- "frontend/app/Icon\r" | 0 frontend/app/cache-config.json | 4 - "frontend/app/elements/Icon\r" | 0 .../app/elements/behaviors/common/utils.html | 85 - .../behaviors/management/statistics.html | 55 - .../elements/behaviors/partner/partner.html | 101 - .../common/etools-ajax/etools-ajax.html | 192 - .../common/etools-alert/etools-alert.html | 62 - .../etools-datepicker/etools-datepicker.html | 95 - .../common/etools-loading/etools-loading.html | 70 - .../etools-localstorage.html | 41 - .../common/global-data/global-data.html | 129 - .../locations-autocomplete.html | 211 -- .../timeframe-picker/timeframe-picker.html | 77 - .../elements/common/user-page/user-page.html | 54 - .../uservoice-input/uservoice-input.html | 54 - .../agreements-stats/agreements-stats.html | 116 - .../interventions-stats.html | 114 - .../management-page/management-page.html | 108 - .../management/trips-stats/trips-stats.html | 167 - .../management/user-stats/user-stats.html | 154 - .../app/elements/management_elements.html | 66 - frontend/app/elements/management_routing.html | 62 - .../etools-indicator/etools-indicator.html | 150 - .../input-recursive/input-recursive.html | 159 - .../intervention-details.html | 349 -- .../interventions-data.html | 50 - .../interventions-page.html | 124 - .../elements/partner/rc-report/rc-report.html | 344 -- .../reporting-dash-indicators.html | 33 - .../reporting-dash-wizzard.html | 267 -- .../reporting-dash/reporting-dash.html | 449 --- .../value-breakdown/value-breakdown.html | 226 -- frontend/app/elements/partner_elements.html | 86 - frontend/app/elements/partner_routing.html | 73 - frontend/app/favicon.ico | Bin 370070 -> 0 bytes "frontend/app/images/Icon\r" | 0 frontend/app/images/etools.png | Bin 11335 -> 0 bytes "frontend/app/images/touch/Icon\r" | 0 .../app/images/touch/apple-touch-icon.png | Bin 1312 -> 0 bytes .../chrome-splashscreen-icon-384x384.png | Bin 8502 -> 0 bytes .../touch/chrome-touch-icon-192x192.png | Bin 1514 -> 0 bytes frontend/app/images/touch/icon-128x128.png | Bin 3079 -> 0 bytes frontend/app/images/touch/ms-icon-144x144.png | Bin 1274 -> 0 bytes frontend/app/images/unicef.png | Bin 11329 -> 0 bytes frontend/app/images/unicefetools-old.svg | 146 - frontend/app/images/unicefetools.svg | 360 -- frontend/app/index.html_bak | 246 -- frontend/app/management.html | 199 - frontend/app/manifest.json | 29 - frontend/app/partner.html | 223 -- frontend/app/robots.txt | 4 - "frontend/app/scripts/Icon\r" | 0 frontend/app/scripts/management_app.js | 114 - frontend/app/scripts/partner_app.js | 129 - frontend/app/scripts/polyfills.js | 80 - "frontend/app/styles/Icon\r" | 0 frontend/app/styles/management/app-theme.html | 170 - frontend/app/styles/management/main.css | 5 - .../app/styles/management/shared-styles.html | 19 - frontend/app/styles/partner/app-theme.html | 179 - frontend/app/styles/partner/main.css | 5 - .../app/styles/partner/partner-styles.html | 63 - .../app/styles/partner/shared-styles.html | 19 - frontend/app/sw-import.js | 10 - "frontend/app/test/Icon\r" | 0 frontend/app/test/etools-ajax/basic-test.html | 65 - frontend/app/test/etools-ajax/index.html | 17 - frontend/app/test/index.html | 28 - .../app/test/uservoice-input/basic-test.html | 86 - frontend/bower.json | 23 - frontend/build.sh | 8 - frontend/data/management/agreementsstats.json | 10 - .../data/management/interventionsstats.json | 10 - frontend/data/management/tripsstats.json | 52 - .../data/partner/intervention_details.json | 495 --- frontend/data/partner/interventions.json | 3348 ----------------- .../data/partner/locationsautocomplete.json | 1 - .../data/partner/resultchain_details.json | 48 - frontend/data/users/profile.json | 23 - frontend/data/users/usercounts.json | 130 - "frontend/docs/Icon\r" | 0 frontend/docs/README.md | 5 - frontend/docs/add-es2015-support-babel.md | 106 - frontend/docs/chrome-dev-editor.md | 52 - frontend/docs/polymer-perf.md | 100 - frontend/gulpfile.js | 522 --- frontend/package.json | 46 - frontend/wct.conf.js | 29 - 107 files changed, 61 insertions(+), 11978 deletions(-) delete mode 100644 "EquiTrack/assets/images/Icon\r" delete mode 100644 EquiTrack/templates/frontend/partner/partner.html create mode 100644 docker-build.sh delete mode 100755 frontend/.gitattributes delete mode 100755 frontend/.gitignore delete mode 100755 frontend/.jscsrc delete mode 100755 frontend/.jshintrc delete mode 100755 frontend/LICENSE.md delete mode 100755 frontend/README.md delete mode 100644 "frontend/app/Icon\r" delete mode 100755 frontend/app/cache-config.json delete mode 100644 "frontend/app/elements/Icon\r" delete mode 100644 frontend/app/elements/behaviors/common/utils.html delete mode 100644 frontend/app/elements/behaviors/management/statistics.html delete mode 100644 frontend/app/elements/behaviors/partner/partner.html delete mode 100644 frontend/app/elements/common/etools-ajax/etools-ajax.html delete mode 100644 frontend/app/elements/common/etools-alert/etools-alert.html delete mode 100644 frontend/app/elements/common/etools-datepicker/etools-datepicker.html delete mode 100644 frontend/app/elements/common/etools-loading/etools-loading.html delete mode 100644 frontend/app/elements/common/etools-localstorage/etools-localstorage.html delete mode 100644 frontend/app/elements/common/global-data/global-data.html delete mode 100644 frontend/app/elements/common/locations-autocomplete/locations-autocomplete.html delete mode 100644 frontend/app/elements/common/timeframe-picker/timeframe-picker.html delete mode 100644 frontend/app/elements/common/user-page/user-page.html delete mode 100644 frontend/app/elements/common/uservoice-input/uservoice-input.html delete mode 100644 frontend/app/elements/management/agreements-stats/agreements-stats.html delete mode 100644 frontend/app/elements/management/interventions-stats/interventions-stats.html delete mode 100644 frontend/app/elements/management/management-page/management-page.html delete mode 100644 frontend/app/elements/management/trips-stats/trips-stats.html delete mode 100644 frontend/app/elements/management/user-stats/user-stats.html delete mode 100755 frontend/app/elements/management_elements.html delete mode 100755 frontend/app/elements/management_routing.html delete mode 100644 frontend/app/elements/partner/etools-indicator/etools-indicator.html delete mode 100644 frontend/app/elements/partner/input-recursive/input-recursive.html delete mode 100644 frontend/app/elements/partner/intervention-details/intervention-details.html delete mode 100644 frontend/app/elements/partner/interventions-data/interventions-data.html delete mode 100644 frontend/app/elements/partner/interventions-page/interventions-page.html delete mode 100644 frontend/app/elements/partner/rc-report/rc-report.html delete mode 100644 frontend/app/elements/partner/reporting-dash/reporting-dash-indicators.html delete mode 100644 frontend/app/elements/partner/reporting-dash/reporting-dash-wizzard.html delete mode 100644 frontend/app/elements/partner/reporting-dash/reporting-dash.html delete mode 100644 frontend/app/elements/partner/value-breakdown/value-breakdown.html delete mode 100644 frontend/app/elements/partner_elements.html delete mode 100644 frontend/app/elements/partner_routing.html delete mode 100644 frontend/app/favicon.ico delete mode 100644 "frontend/app/images/Icon\r" delete mode 100644 frontend/app/images/etools.png delete mode 100644 "frontend/app/images/touch/Icon\r" delete mode 100644 frontend/app/images/touch/apple-touch-icon.png delete mode 100644 frontend/app/images/touch/chrome-splashscreen-icon-384x384.png delete mode 100644 frontend/app/images/touch/chrome-touch-icon-192x192.png delete mode 100644 frontend/app/images/touch/icon-128x128.png delete mode 100644 frontend/app/images/touch/ms-icon-144x144.png delete mode 100644 frontend/app/images/unicef.png delete mode 100644 frontend/app/images/unicefetools-old.svg delete mode 100644 frontend/app/images/unicefetools.svg delete mode 100644 frontend/app/index.html_bak delete mode 100755 frontend/app/management.html delete mode 100755 frontend/app/manifest.json delete mode 100644 frontend/app/partner.html delete mode 100755 frontend/app/robots.txt delete mode 100644 "frontend/app/scripts/Icon\r" delete mode 100755 frontend/app/scripts/management_app.js delete mode 100644 frontend/app/scripts/partner_app.js delete mode 100644 frontend/app/scripts/polyfills.js delete mode 100644 "frontend/app/styles/Icon\r" delete mode 100755 frontend/app/styles/management/app-theme.html delete mode 100755 frontend/app/styles/management/main.css delete mode 100755 frontend/app/styles/management/shared-styles.html delete mode 100755 frontend/app/styles/partner/app-theme.html delete mode 100755 frontend/app/styles/partner/main.css delete mode 100644 frontend/app/styles/partner/partner-styles.html delete mode 100755 frontend/app/styles/partner/shared-styles.html delete mode 100755 frontend/app/sw-import.js delete mode 100644 "frontend/app/test/Icon\r" delete mode 100644 frontend/app/test/etools-ajax/basic-test.html delete mode 100644 frontend/app/test/etools-ajax/index.html delete mode 100755 frontend/app/test/index.html delete mode 100644 frontend/app/test/uservoice-input/basic-test.html delete mode 100755 frontend/bower.json delete mode 100755 frontend/build.sh delete mode 100644 frontend/data/management/agreementsstats.json delete mode 100644 frontend/data/management/interventionsstats.json delete mode 100644 frontend/data/management/tripsstats.json delete mode 100644 frontend/data/partner/intervention_details.json delete mode 100644 frontend/data/partner/interventions.json delete mode 100644 frontend/data/partner/locationsautocomplete.json delete mode 100644 frontend/data/partner/resultchain_details.json delete mode 100644 frontend/data/users/profile.json delete mode 100644 frontend/data/users/usercounts.json delete mode 100644 "frontend/docs/Icon\r" delete mode 100755 frontend/docs/README.md delete mode 100755 frontend/docs/add-es2015-support-babel.md delete mode 100755 frontend/docs/chrome-dev-editor.md delete mode 100755 frontend/docs/polymer-perf.md delete mode 100755 frontend/gulpfile.js delete mode 100644 frontend/package.json delete mode 100755 frontend/wct.conf.js diff --git a/.gitignore b/.gitignore index 90b697b230..aa11eb4cea 100644 --- a/.gitignore +++ b/.gitignore @@ -81,9 +81,7 @@ config.json wheelhouse # Frontend -frontend/node_modules/ -frontend/dist -frontend/bower_components/ +.frontend/ .tmp .editorconfig Icon diff --git a/EquiTrack/assets/app/eTrips/android/etrips-release.apk b/EquiTrack/assets/app/eTrips/android/etrips-release.apk index 4228941e4fba647104a614745839f1d5eeb632b8..aadae0f31625b46098c8d2cf98aad08b141fce63 100644 GIT binary patch delta 676860 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