Skip to content
Snippets Groups Projects
Commit 88c7a3a7 authored by Sabine Schröder's avatar Sabine Schröder
Browse files

work with a dictionary for a job to facilitate the reading of the code

parent 12e2344f
No related branches found
No related tags found
No related merge requests found
...@@ -850,7 +850,8 @@ def get_my_jobs_from_db(user_id=None, language_id=0): ...@@ -850,7 +850,8 @@ def get_my_jobs_from_db(user_id=None, language_id=0):
if user_id: if user_id:
conn = sqlite3.connect(DATA_PATH.joinpath('destine_de370c_users.db')) conn = sqlite3.connect(DATA_PATH.joinpath('destine_de370c_users.db'))
cur = conn.cursor() cur = conn.cursor()
cur.execute(f"SELECT application, status, start_date, forecast_length, region, species, metric, emis_scen, creation_date, id FROM jobs WHERE user_id={user_id}") cmd = f"SELECT {', '.join(guiconst.job_fields)} FROM jobs WHERE user_id={user_id}"
cur.execute(cmd)
data_rows_from_db = cur.fetchall() data_rows_from_db = cur.fetchall()
cur.execute("SELECT job_status, id FROM convoc_status") cur.execute("SELECT job_status, id FROM convoc_status")
convoc_status_from_db = cur.fetchall() convoc_status_from_db = cur.fetchall()
...@@ -864,25 +865,28 @@ def get_my_jobs_from_db(user_id=None, language_id=0): ...@@ -864,25 +865,28 @@ def get_my_jobs_from_db(user_id=None, language_id=0):
# ==> there should be a refresh, whenever this tab is reloaded! # ==> there should be a refresh, whenever this tab is reloaded!
for job in data_rows_from_db: for job in data_rows_from_db:
job_status = job[1] job_dict = {}
for i, field in enumerate(guiconst.job_fields):
job_dict[field] = job[i]
job_status = job_dict['status']
if (job_status == convoc_status_dict['active']) or (job_status == convoc_status_dict['waiting']): if (job_status == convoc_status_dict['active']) or (job_status == convoc_status_dict['waiting']):
new_status = get_job_status(job[9].upper(), job[0], convoc_status_dict) new_status = get_job_status(job_dict['id'].upper(), job_dict['application'], convoc_status_dict)
if job_status != new_status: if job_status != new_status:
change_status_of_job(job[9], new_status) change_status_of_job(job_dict['id'], new_status)
job_status = new_status job_status = new_status
data_from_db.append({guitr.jobs_columns[language_id][0]: guitr.application_text[language_id][job[0]], data_from_db.append({guitr.jobs_columns[language_id][0]: guitr.application_text[language_id][job_dict['application']],
guitr.jobs_columns[language_id][1]: guitr.status_text[language_id][job_status], guitr.jobs_columns[language_id][1]: guitr.status_text[language_id][job_status],
guitr.jobs_columns[language_id][2]: dt.datetime.strptime(job[2],'%Y-%m-%d %H:%M').strftime(guitr.date_format2[language_id]), guitr.jobs_columns[language_id][2]: dt.datetime.strptime(job_dict['start_date'],'%Y-%m-%d %H:%M').strftime(guitr.date_format2[language_id]),
guitr.jobs_columns[language_id][3]: "{} {}{}".format(job[3], guitr.day_label[language_id], guitr.day_plural_label[language_id] if job[3] > 1 else ""), guitr.jobs_columns[language_id][3]: "{} {}{}".format(job_dict['forecast_length'], guitr.day_label[language_id], guitr.day_plural_label[language_id] if job_dict['forecast_length'] > 1 else ""),
guitr.jobs_columns[language_id][4]: guitr.region_text[language_id][job[4]], guitr.jobs_columns[language_id][4]: guitr.region_text[language_id][job_dict['region']],
guitr.jobs_columns[language_id][5]: "{}".format(guitr.species_options[language_id][job[5]] if job[5] is not None \ guitr.jobs_columns[language_id][5]: "{}".format(guitr.species_options[language_id][job_dict['species']] if job_dict['species'] is not None \
else ",".join(guitr.species_options[language_id])), else ",".join(guitr.species_options[language_id])),
guitr.jobs_columns[language_id][6]: "{}".format(guitr.metrics_options[language_id][job[6]] if job[6] is not None else ""), guitr.jobs_columns[language_id][6]: "{}".format(guitr.metrics_options[language_id][job_dict['metric']] if job_dict['metric'] is not None else ""),
guitr.jobs_columns[language_id][7]: "{}".format(emis_info[language_id][" Name"][job[7]] if job[7] is not None \ guitr.jobs_columns[language_id][7]: "{}".format(emis_info[language_id][" Name"][job_dict['emis_scen']] if job_dict['emis_scen'] is not None \
else (guitr.default_text[language_id] if job[0] == 0 else "")), else (guitr.default_text[language_id] if job_dict['application'] == 0 else "")),
guitr.jobs_columns[language_id][8]: dt.datetime.strptime(job[8],'%Y-%m-%d %H:%M').strftime(guitr.date_format2[language_id]), guitr.jobs_columns[language_id][8]: dt.datetime.strptime(job_dict['creation_date'],'%Y-%m-%d %H:%M').strftime(guitr.date_format2[language_id]),
guitr.jobs_columns[language_id][9]: job[9]}) guitr.jobs_columns[language_id][9]: job_dict['id']})
return data_from_db return data_from_db
......
...@@ -26,3 +26,4 @@ conversion_factor = { "NO2": 0.52297, ...@@ -26,3 +26,4 @@ conversion_factor = { "NO2": 0.52297,
ml_names = { "NO2": "NO2", ml_names = { "NO2": "NO2",
"ozone": "O3", "ozone": "O3",
"PM2.5": "PM2P5" } "PM2.5": "PM2P5" }
job_fields = ['application', 'status', 'start_date', 'forecast_length', 'region', 'species', 'metric', 'emis_scen', 'creation_date', 'id']
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment