|
2 | 2 |
|
3 | 3 |
|
4 | 4 | def get_query(project_ids): |
| 5 | + clause = 'WHERE project_id in (select project_id from results group by project_id)' |
| 6 | + clause_import = 'WHERE import_id in (select importkey as import_id from projects)' |
5 | 7 | if project_ids is None: |
6 | | - clause = '' |
7 | | - clause_import = '' |
| 8 | + pass |
8 | 9 | elif len(project_ids) == 1: |
9 | | - clause = f'WHERE project_id = {project_ids[0]}' |
10 | | - clause_import = f'WHERE p.project_id = {project_ids[0]} AND p.importkey = i.import_id' |
| 10 | + clause = f'{clause} AND project_id = {project_ids[0]}' |
| 11 | + clause_import = f', projects p {clause_import} AND p.project_id = {project_ids[0]} AND p.importkey = i.import_id' |
11 | 12 | else: |
12 | | - clause = f'WHERE project_id = {project_ids[0]}' |
13 | | - clause_import = f'WHERE p.project_id = {project_ids[0]} AND p.importkey = i.import_id' |
| 13 | + clause = f'{clause} AND project_id = {project_ids[0]}' |
| 14 | + clause_import = f', projects p {clause_import} AND p.project_id = {project_ids[0]} AND p.importkey = i.import_id' |
14 | 15 | for project_id in project_ids[1:]: |
15 | 16 | clause = clause + f' OR project_id = {project_id}' |
16 | 17 | clause_import = clause + f' OR p.project_id = {project_id} AND p.importkey = i.import_id' |
17 | 18 |
|
18 | 19 | query = f'-- Export v1 MapSwipe data to csv.\n' \ |
19 | 20 | f'-- Rename attributes to conform to v2.\n' \ |
20 | 21 | 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' \ |
21 | | - f'\copy (SELECT i.import_id, i.info FROM imports i, projects p {clause_import}) TO imports.csv WITH (FORMAT CSV, DELIMITER ",", HEADER TRUE);\n' \ |
22 | | - f'\copy (SELECT project_id, 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' \ |
| 22 | + 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' \ |
23 | 24 | f'\copy (SELECT project_id, group_id, task_id, info as "project_type_specifics" FROM tasks {clause}) TO tasks.csv WITH (FORMAT CSV, DELIMITER ",", HEADER TRUE);\n' |
24 | 25 | return query |
25 | 26 |
|
26 | 27 |
|
27 | 28 | def get_result_query(project_ids): |
| 29 | + clause = 'WHERE project_id in (SELECT project_id FROM projects GROUP BY project_id)' |
28 | 30 | if project_ids is None: |
29 | | - clause = '' |
| 31 | + pass |
30 | 32 | elif len(project_ids) == 1: |
31 | | - clause = f'WHERE project_id = {project_ids[0]}' |
| 33 | + clause = f'{clause} AND project_id = {project_ids[0]}' |
32 | 34 | else: |
33 | | - clause = f'WHERE project_id = {project_ids[0]}' |
| 35 | + clause = f'{clause} AND project_id = {project_ids[0]}' |
34 | 36 | for project_id in project_ids[1:]: |
35 | 37 | clause = clause + f' OR project_id = {project_id}' |
36 | 38 |
|
|
0 commit comments