|
4 | 4 | def get_query(project_ids): |
5 | 5 | clause = 'WHERE project_id in (select project_id from results group by project_id)' |
6 | 6 | clause_import = 'WHERE import_id in (select importkey as import_id from projects)' |
| 7 | + clause_group = 'WHERE project_id in (select project_id from projects group by project_id) and project_id in (select project_id from results group by project_id)' |
7 | 8 | if project_ids is None: |
8 | 9 | pass |
9 | 10 | elif len(project_ids) == 1: |
10 | 11 | clause = f'{clause} AND project_id = {project_ids[0]}' |
11 | 12 | clause_import = f', projects p {clause_import} AND p.project_id = {project_ids[0]} AND p.importkey = i.import_id' |
| 13 | + clause_group = f'{clause_group} AND project_id = {project_ids[0]}' |
12 | 14 | else: |
13 | 15 | clause = f'{clause} AND project_id = {project_ids[0]}' |
| 16 | + clause_group = f'{clause_group} AND project_id = {project_ids[0]}' |
14 | 17 | clause_import = f', projects p {clause_import} AND p.project_id = {project_ids[0]} AND p.importkey = i.import_id' |
15 | 18 | for project_id in project_ids[1:]: |
16 | 19 | clause = clause + f' OR project_id = {project_id}' |
| 20 | + clause_group = clause_group + f' OR project_id = {project_id}' |
17 | 21 | clause_import = clause + f' OR p.project_id = {project_id} AND p.importkey = i.import_id' |
18 | 22 |
|
19 | 23 | query = f'-- Export v1 MapSwipe data to csv.\n' \ |
20 | 24 | f'-- Rename attributes to conform to v2.\n' \ |
21 | 25 | f'\copy (SELECT archive, image, importkey as "import_id", isfeatured AS "is_featured", lookfor AS "look_for", name, progress, projectdetails AS "project_details", project_id, project_type, state AS "status", info AS "project_type_specifics" FROM projects {clause}) TO projects.csv WITH (FORMAT CSV, DELIMITER ",", HEADER TRUE);\n' \ |
22 | 26 | f'\copy (SELECT i.import_id, i.info FROM imports i {clause_import}) TO imports.csv WITH (FORMAT CSV, DELIMITER ",", HEADER TRUE);\n' \ |
23 | | - f'\copy (SELECT project_id, group_id as "v1_group_id", count as "number_of_tasks", completedcount as "finished_count", verificationcount as "required_count", info as "project_type_specifics" FROM groups {clause} ) TO groups.csv WITH (FORMAT CSV, DELIMITER ",", HEADER TRUE);\n' \ |
24 | | - f'\copy (SELECT project_id, group_id as "v1_group_id", task_id, info as "project_type_specifics" FROM tasks {clause}) TO tasks.csv WITH (FORMAT CSV, DELIMITER ",", HEADER TRUE);\n' |
| 27 | + f'\copy (SELECT project_id, group_id as "v1_group_id", count as "number_of_tasks", completedcount as "finished_count", verificationcount as "required_count", info as "project_type_specifics" FROM groups {clause_group} ) TO groups.csv WITH (FORMAT CSV, DELIMITER ",", HEADER TRUE);\n' \ |
| 28 | + f'\copy (SELECT project_id, group_id as "v1_group_id", task_id, info as "project_type_specifics" FROM tasks {clause_group}) TO tasks.csv WITH (FORMAT CSV, DELIMITER ",", HEADER TRUE);\n' |
25 | 29 | return query |
26 | 30 |
|
27 | 31 |
|
|
0 commit comments