|
1 | 1 | /* eslint no-underscore-dangle: ["error", { "allow": ["_id"] }] */
|
| 2 | + |
| 3 | +const availableStates = { |
| 4 | + PREPARATION: [ |
| 5 | + 'Dem Bundesrat zugeleitet - Noch nicht beraten', |
| 6 | + 'Dem Bundestag zugeleitet - Noch nicht beraten', |
| 7 | + 'Den Ausschüssen zugewiesen', |
| 8 | + 'Einbringung abgelehnt', |
| 9 | + '1. Durchgang im Bundesrat abgeschlossen', |
| 10 | + 'Überwiesen', |
| 11 | + 'Noch nicht beraten', |
| 12 | + 'Keine parlamentarische Behandlung', |
| 13 | + 'Nicht abgeschlossen - Einzelheiten siehe Vorgangsablauf', |
| 14 | + ], |
| 15 | + VOTING: [ |
| 16 | + 'Beschlussempfehlung liegt vor', |
| 17 | + // Unterhalb keys für Vergangen |
| 18 | + 'Erledigt durch Ablauf der Wahlperiode', |
| 19 | + 'Zurückgezogen', |
| 20 | + 'Abgeschlossen - Ergebnis siehe Vorgangsablauf', |
| 21 | + 'Für nichtig erklärt', |
| 22 | + 'Verkündet', |
| 23 | + 'Zusammengeführt mit... (siehe Vorgangsablauf)', |
| 24 | + 'Für erledigt erklärt', |
| 25 | + 'Verabschiedet', |
| 26 | + 'Bundesrat hat zugestimmt', |
| 27 | + 'Bundesrat hat Einspruch eingelegt', |
| 28 | + 'Bundesrat hat Zustimmung versagt', |
| 29 | + 'Bundesrat hat Vermittlungsausschuss nicht angerufen', |
| 30 | + 'Im Vermittlungsverfahren', |
| 31 | + 'Vermittlungsvorschlag liegt vor', |
| 32 | + 'Für mit dem Grundgesetz unvereinbar erklärt', |
| 33 | + 'Nicht ausgefertigt wegen Zustimmungsverweigerung des Bundespräsidenten', |
| 34 | + 'Zustimmung versagt', |
| 35 | + 'Teile des Gesetzes für nichtig erklärt', |
| 36 | + 'Für gegenstandslos erklärt', |
| 37 | + ], |
| 38 | +}; |
| 39 | + |
2 | 40 | export default {
|
3 | 41 | Query: {
|
4 | 42 | procedures: async (parent, { type, offset, pageSize }, { ProcedureModel }) => {
|
5 | 43 | let currentStates = [];
|
6 | 44 | switch (type) {
|
7 | 45 | case 'PREPARATION':
|
8 |
| - currentStates = [ |
9 |
| - 'Dem Bundesrat zugeleitet - Noch nicht beraten', |
10 |
| - 'Dem Bundestag zugeleitet - Noch nicht beraten', |
11 |
| - 'Den Ausschüssen zugewiesen', |
12 |
| - 'Einbringung abgelehnt', |
13 |
| - '1. Durchgang im Bundesrat abgeschlossen', |
14 |
| - 'Überwiesen', |
15 |
| - 'Noch nicht beraten', |
16 |
| - 'Keine parlamentarische Behandlung', |
17 |
| - 'Nicht abgeschlossen - Einzelheiten siehe Vorgangsablauf', |
18 |
| - ]; |
| 46 | + currentStates = availableStates.PREPARATION; |
19 | 47 | break;
|
20 | 48 | case 'VOTING':
|
21 |
| - currentStates = [ |
22 |
| - 'Beschlussempfehlung liegt vor', |
23 |
| - // Unterhalb keys für Vergangen |
24 |
| - 'Erledigt durch Ablauf der Wahlperiode', |
25 |
| - 'Zurückgezogen', |
26 |
| - 'Abgeschlossen - Ergebnis siehe Vorgangsablauf', |
27 |
| - 'Für nichtig erklärt', |
28 |
| - 'Verkündet', |
29 |
| - 'Zusammengeführt mit... (siehe Vorgangsablauf)', |
30 |
| - 'Für erledigt erklärt', |
31 |
| - 'Verabschiedet', |
32 |
| - 'Bundesrat hat zugestimmt', |
33 |
| - 'Bundesrat hat Einspruch eingelegt', |
34 |
| - 'Bundesrat hat Zustimmung versagt', |
35 |
| - 'Bundesrat hat Vermittlungsausschuss nicht angerufen', |
36 |
| - 'Im Vermittlungsverfahren', |
37 |
| - 'Vermittlungsvorschlag liegt vor', |
38 |
| - 'Für mit dem Grundgesetz unvereinbar erklärt', |
39 |
| - 'Nicht ausgefertigt wegen Zustimmungsverweigerung des Bundespräsidenten', |
40 |
| - 'Zustimmung versagt', |
41 |
| - 'Teile des Gesetzes für nichtig erklärt', |
42 |
| - 'Für gegenstandslos erklärt', |
43 |
| - ]; |
| 49 | + currentStates = availableStates.VOTING; |
44 | 50 | break;
|
45 | 51 | case 'HOT':
|
46 | 52 | currentStates = [];
|
@@ -95,6 +101,17 @@ export default {
|
95 | 101 | },
|
96 | 102 | },
|
97 | 103 | { $sort: { activities: -1 } },
|
| 104 | + { |
| 105 | + $addFields: { |
| 106 | + listType: { |
| 107 | + $cond: { |
| 108 | + if: { $in: ['$currentStatus', availableStates.VOTING] }, |
| 109 | + then: 'VOTING', |
| 110 | + else: 'PREPARATION', |
| 111 | + }, |
| 112 | + }, |
| 113 | + }, |
| 114 | + }, |
98 | 115 |
|
99 | 116 | { $skip: offset },
|
100 | 117 | { $limit: pageSize },
|
@@ -125,8 +142,12 @@ export default {
|
125 | 142 |
|
126 | 143 | procedure: async (parent, { id }, { user, ProcedureModel }) => {
|
127 | 144 | const procedure = await ProcedureModel.findOne({ procedureId: id });
|
| 145 | + const listType = availableStates.VOTING.some(status => procedure.currentStatus === status) |
| 146 | + ? 'VOTING' |
| 147 | + : 'PREPARATION'; |
128 | 148 | return {
|
129 | 149 | ...procedure.toObject(),
|
| 150 | + listType, |
130 | 151 | notify: !!(user && user.notificationSettings.procedures.indexOf(procedure._id) > -1),
|
131 | 152 | };
|
132 | 153 | },
|
|
0 commit comments