From 8db78799bafe8942e78f8c40b33101173493e07c Mon Sep 17 00:00:00 2001 From: saravanpa-aot Date: Mon, 23 Oct 2023 10:33:24 -0700 Subject: [PATCH 1/2] Made slug url case insensitive , Fixed bug with wrong query join for submission (#2321) * Made slug url case insensitive , Fixed bug with wrong query join for submission * removed a couple of if statements --- met-api/src/met_api/models/comment.py | 5 ++--- met-api/src/met_api/models/engagement_slug.py | 2 +- met-api/src/met_api/schemas/engagement.py | 3 --- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/met-api/src/met_api/models/comment.py b/met-api/src/met_api/models/comment.py index 71ed17de9..a3d0339eb 100644 --- a/met-api/src/met_api/models/comment.py +++ b/met-api/src/met_api/models/comment.py @@ -134,13 +134,12 @@ def get_by_survey_id_paginated( """Get submissions by survey id paginated.""" null_value = None query = db.session.query(Submission)\ - .join(Comment, Submission.id == Comment.submission_id)\ .filter(and_(Submission.survey_id == survey_id, - or_(Submission.reviewed_by != 'System', Submission.reviewed_by == null_value)))\ + or_(Submission.reviewed_by != 'System', Submission.reviewed_by == null_value))) if search_text: # Remove all non-digit characters from search text - query = query.filter(Comment.text.ilike('%' + search_text + '%')) + query = query.filter(Submission.comments.any(Comment.text.ilike('%' + search_text + '%'))) if advanced_search_filters: query = cls._filter_by_advanced_filters(query, advanced_search_filters) diff --git a/met-api/src/met_api/models/engagement_slug.py b/met-api/src/met_api/models/engagement_slug.py index ca32e5332..24ae897a1 100644 --- a/met-api/src/met_api/models/engagement_slug.py +++ b/met-api/src/met_api/models/engagement_slug.py @@ -26,7 +26,7 @@ class EngagementSlug(BaseModel): @classmethod def find_by_slug(cls, slug): """Return engagement slug by slug.""" - return cls.query.filter_by(slug=slug).first() + return cls.query.filter(cls.slug.ilike(slug)).first() @classmethod def find_by_engagement_id(cls, engagement_id): diff --git a/met-api/src/met_api/schemas/engagement.py b/met-api/src/met_api/schemas/engagement.py index 5957fe672..b1961b29e 100644 --- a/met-api/src/met_api/schemas/engagement.py +++ b/met-api/src/met_api/schemas/engagement.py @@ -82,9 +82,6 @@ def get_submission_status(self, obj): # Strip time off datetime object date_due = datetime(now.year, now.month, now.day) - print('--date_due-:',date_due) - print('-start_date -:', obj.start_date ) - print('--end_date -:', obj.end_date) if obj.start_date <= date_due <= obj.end_date: return SubmissionStatus.Open.value From 51f4a22cc2ef23bb974b8270c2cfef232efa9ca9 Mon Sep 17 00:00:00 2001 From: saravanpa-aot Date: Mon, 23 Oct 2023 14:55:16 -0700 Subject: [PATCH 2/2] CSV export made working for multipage wizard surveys (#2322) --- met-api/src/met_api/services/comment_service.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/met-api/src/met_api/services/comment_service.py b/met-api/src/met_api/services/comment_service.py index 59aa0f440..def06df7b 100644 --- a/met-api/src/met_api/services/comment_service.py +++ b/met-api/src/met_api/services/comment_service.py @@ -177,7 +177,10 @@ def get_titles(cls, survey: SurveySchema): # Title could be dynamic based on the number of comment type questions on the survey survey_form = survey.form_json labels = [] - for component in survey_form.get('components', []): + components = cls.extract_components(survey_form) + if len(components) == 0: + return [] + for component in components: if component.get('inputType', None) == 'text': if 'label' in component: labels.append(component['label'])