From 8bcdc58f8a2ef10d4b85b2345c37281facd246f1 Mon Sep 17 00:00:00 2001 From: Maxim Belov Date: Thu, 15 Aug 2019 15:56:55 +0300 Subject: [PATCH 1/2] try backend --- src/ggrc/views/__init__.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/ggrc/views/__init__.py b/src/ggrc/views/__init__.py index 0755044b12ab..d675d6126365 100644 --- a/src/ggrc/views/__init__.py +++ b/src/ggrc/views/__init__.py @@ -1174,6 +1174,38 @@ def generate_wf_tasks_notifs(): [('Content-Type', 'text/html')]))) + +@app.route( + "/_background_tasks/run_issues_update", methods=["POST"] +) +@background_task.queued_task +def test_staff(task): + flask.session['credentials'] = task.parameters["cred"] + + from ggrc.gdrive.file_actions import process_gdrive_file + response = process_gdrive_file("1zjOApUXO5MkIiPPydkZ-BNVILjwBygcBeh_5259Syhg", + "1jDsATaOSVIUIEUqChNk3wJnWAN1vsC73", + is_uploaded=False) + + +@app.route("/api/testendpoint", methods=["POST"]) +@login.login_required +def make_test_bg_task(): + """testbgtask""" + from ggrc.gdrive import get_http_auth + get_http_auth() + + bg_task = background_task.create_task( + name="generate_wf_tasks_notifications", + url=flask.url_for(test_staff.__name__), + queued_callback=lambda _: None, + parameters={"cred": flask.session['credentials'], "state": flask.session['state']} + ) + return bg_task.make_response( + app.make_response(("scheduled %s" % bg_task.name, 200, + [('Content-Type', 'text/html')]))) + + class UnmapObjectsView(flask.views.MethodView): """View for unmaping objects by deletion of relationships.""" From e12730e00ed5f256aca127d7a2e9c689be34cc6d Mon Sep 17 00:00:00 2001 From: Maxim Belov Date: Thu, 15 Aug 2019 23:30:59 +0300 Subject: [PATCH 2/2] changes --- .../info-pane/assessment-info-pane.js | 13 +++++++++++- .../info-pane/assessment-info-pane.stache | 1 + src/ggrc/converters/handlers/acl.py | 1 + src/ggrc/converters/handlers/handlers.py | 2 ++ src/ggrc/views/__init__.py | 21 +++++++++++++++---- 5 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/ggrc-client/js/components/assessment/info-pane/assessment-info-pane.js b/src/ggrc-client/js/components/assessment/info-pane/assessment-info-pane.js index 9ff95cc19be7..1a514d17837d 100644 --- a/src/ggrc-client/js/components/assessment/info-pane/assessment-info-pane.js +++ b/src/ggrc-client/js/components/assessment/info-pane/assessment-info-pane.js @@ -78,7 +78,8 @@ import {notifier, notifierXHR} from '../../../plugins/utils/notifiers-utils'; import Evidence from '../../../models/business-models/evidence'; import * as businessModels from '../../../models/business-models'; import {getAjaxErrorInfo} from '../../../plugins/utils/errors-utils'; - +import {backendGdriveClient} from '../../../plugins/ggrc-gapi-client'; +import {ggrcAjax} from '../../../plugins/ajax_extensions'; /** * Assessment Specific Info Pane View Component */ @@ -366,6 +367,16 @@ export default canComponent.extend({ assessment.attr(path, [related]); } }, + onClick() { + backendGdriveClient.withAuth(() => ggrcAjax({ + type: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + url: '/api/testendpoint', + data: '{data: "HELLO MAXIM. I AM GGRC!"}', + })); + }, addRelatedItem: function (event, type) { let self = this; let assessment = this.attr('instance'); diff --git a/src/ggrc-client/js/components/assessment/info-pane/assessment-info-pane.stache b/src/ggrc-client/js/components/assessment/info-pane/assessment-info-pane.stache index 704e7e86f5ac..9b0d46af0fab 100644 --- a/src/ggrc-client/js/components/assessment/info-pane/assessment-info-pane.stache +++ b/src/ggrc-client/js/components/assessment/info-pane/assessment-info-pane.stache @@ -29,6 +29,7 @@ instance:from="instance">
Assessment Procedure
+ {{/if}} {{#if instance.issueCreated}} diff --git a/src/ggrc/converters/handlers/acl.py b/src/ggrc/converters/handlers/acl.py index d0a95be104f4..9d1e61709be5 100644 --- a/src/ggrc/converters/handlers/acl.py +++ b/src/ggrc/converters/handlers/acl.py @@ -29,6 +29,7 @@ def set_obj_attr(self): is_status_changing = self.row_converter.obj.status in \ Statusable.DONE_STATES if is_updated and is_status_changing and not self.row_converter.is_new: + self.obj.status = "In Progress" self.add_warning(errors.STATE_WILL_BE_IGNORED, column_name=self.display_name) diff --git a/src/ggrc/converters/handlers/handlers.py b/src/ggrc/converters/handlers/handlers.py index 64323c7329a1..b822eba458ca 100644 --- a/src/ggrc/converters/handlers/handlers.py +++ b/src/ggrc/converters/handlers/handlers.py @@ -348,6 +348,8 @@ def parse_item(self): if self.value_explicitly_empty(self.raw_value): if not self.mandatory: self.set_empty = True + statusch = self.row_converter.attrs.get("Status") + statusch.ignore = True return None return self._missed_mandatory_person() diff --git a/src/ggrc/views/__init__.py b/src/ggrc/views/__init__.py index d675d6126365..10d1b7200c85 100644 --- a/src/ggrc/views/__init__.py +++ b/src/ggrc/views/__init__.py @@ -10,7 +10,7 @@ import datetime import json import logging - +import time import sqlalchemy import flask from werkzeug import exceptions @@ -1176,16 +1176,22 @@ def generate_wf_tasks_notifs(): @app.route( - "/_background_tasks/run_issues_update", methods=["POST"] + "/_background_tasks/_testep", methods=["POST"] ) @background_task.queued_task def test_staff(task): + logger.warning("111") + time.sleep(20) flask.session['credentials'] = task.parameters["cred"] from ggrc.gdrive.file_actions import process_gdrive_file + logger.warning("inside") + response = process_gdrive_file("1zjOApUXO5MkIiPPydkZ-BNVILjwBygcBeh_5259Syhg", "1jDsATaOSVIUIEUqChNk3wJnWAN1vsC73", is_uploaded=False) + logger.warning(response) + time.sleep(1000) @app.route("/api/testendpoint", methods=["POST"]) @@ -1193,14 +1199,21 @@ def test_staff(task): def make_test_bg_task(): """testbgtask""" from ggrc.gdrive import get_http_auth - get_http_auth() + from ggrc import gdrive + + try: + get_http_auth() + except gdrive.GdriveUnauthorized: + res = app.make_response(("auth", 401, [("Content-Type", "text/html")])) + return res bg_task = background_task.create_task( - name="generate_wf_tasks_notifications", + name="test_staff", url=flask.url_for(test_staff.__name__), queued_callback=lambda _: None, parameters={"cred": flask.session['credentials'], "state": flask.session['state']} ) + db.session.commit() return bg_task.make_response( app.make_response(("scheduled %s" % bg_task.name, 200, [('Content-Type', 'text/html')])))