Skip to content

Commit fc8f17f

Browse files
committed
IRONN-264 visit_month was being cached in translated form.
looking up visit_month now always returns english version, which may be cached. `translate_visit_month()` used by front end where needed.
1 parent f269a29 commit fc8f17f

File tree

4 files changed

+25
-9
lines changed

4 files changed

+25
-9
lines changed

portal/models/qb_timeline.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1316,8 +1316,8 @@ def qb_status_visit_name(user_id, research_study_id, as_of_date):
13161316
13171317
:returns: dictionary with key/values for:
13181318
status: string like 'expired'
1319-
visit_name: for the period, i.e. '3 months'
1320-
action_state: 'not applicable', or status of follow up action
1319+
visit_name: for the period, i.e. '3 months'. ALWAYS in english, clients must translate
1320+
action_state: 'not applicable', or status of follow-up action
13211321
13221322
"""
13231323
from .research_study import EMPRO_RS_ID

portal/models/questionnaire_bank.py

+18-4
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,10 @@ def qbs_by_rp(rp_id, classification):
592592

593593

594594
def visit_name(qbd):
595+
"""returns string repr of visit, i.e. 'Month 3' or 'Baseline'
596+
597+
NB - only returns english version. See `translate_visit_name()`
598+
"""
595599
from .research_study import (
596600
EMPRO_RS_ID,
597601
research_study_id_from_questionnaire,
@@ -617,12 +621,22 @@ def visit_name(qbd):
617621
clm += (clrd.years * 12) if clrd.years else 0
618622
total = clm * qbd.iteration + sm
619623
if rs_id == EMPRO_RS_ID:
620-
return _('Month %(month_total)d', month_total=total+1)
621-
return _('Month %(month_total)d', month_total=total)
624+
return f'Month {total+1}'
625+
return f'Month {total}'
622626

623627
if rs_id == EMPRO_RS_ID:
624-
return _('Month %(month_total)d', month_total=1)
625-
return _(qbd.questionnaire_bank.classification.title())
628+
return 'Month 1'
629+
return qbd.questionnaire_bank.classification.title()
630+
631+
632+
def translate_visit_name(visit_name):
633+
"""parse the english version of visit name for front end translation needs"""
634+
if not visit_name:
635+
return visit_name
636+
if visit_name.startswith('Month '):
637+
number = int(visit_name[6:])
638+
return _('Month %(month_total)d', month_total=number)
639+
return _(visit_name)
626640

627641

628642
def add_static_questionnaire_bank():

portal/models/questionnaire_response.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
QuestionnaireBank,
2929
QuestionnaireBankQuestionnaire,
3030
trigger_date,
31+
translate_visit_name,
3132
visit_name,
3233
)
3334
from .research_data import ResearchData
@@ -401,7 +402,7 @@ def extensions(self):
401402
relative_start=None, iteration=self.qb_iteration,
402403
recur_id=recur_id, qb_id=self.questionnaire_bank_id)
403404
results.append({
404-
'visit_name': visit_name(qbd),
405+
'visit_name': translate_visit_name(visit_name(qbd)),
405406
'url': TRUENTH_VISIT_NAME_EXTENSION})
406407

407408
expires_at = expires(self.subject_id, qbd)

portal/views/patients.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from ..models.intervention import Intervention
1818
from ..models.organization import Organization, OrgTree
1919
from ..models.patient_list import PatientList
20+
from ..models.questionnaire_bank import translate_visit_name
2021
from ..models.qb_status import patient_research_study_status
2122
from ..models.role import ROLE
2223
from ..models.research_study import EMPRO_RS_ID, ResearchStudy
@@ -222,8 +223,8 @@ def requested_orgs(user, research_study_id):
222223
"questionnaire_status": _(row.questionnaire_status),
223224
"empro_status": _(row.empro_status),
224225
"action_state": _(row.action_state),
225-
"visit": row.visit,
226-
"empro_visit": row.empro_visit,
226+
"visit": translate_visit_name(row.visit),
227+
"empro_visit": translate_visit_name(row.empro_visit),
227228
"study_id": row.study_id,
228229
"consentdate": row.consentdate,
229230
"empro_consentdate": row.empro_consentdate,

0 commit comments

Comments
 (0)