Skip to content

Commit d82932c

Browse files
committed
Removed unnecessarily files and fixed certain issues
1 parent 1f74359 commit d82932c

12 files changed

Lines changed: 176 additions & 178 deletions

File tree

.firebaserc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"projects": {
3+
"default": "ilplatform"
4+
}
5+
}

.gitignore

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,6 @@ firebase-debug.*.log*
1010
# Firebase cache
1111
.firebase/
1212

13-
# Firebase config
14-
15-
# Uncomment this if you'd like others to create their own Firebase project.
16-
# For a team working on the same Firebase project(s), it is recommended to leave
17-
# it commented so all members can deploy to the same project(s) in .firebaserc.
18-
.firebaserc
19-
2013
# Runtime data
2114
pids
2215
*.pid

README.md

Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -25,39 +25,12 @@ In order for the code to make sense, you need to generate the following files:
2525
GMAIL_USER_EMAIL=
2626
GMAIL_PASSWORD=
2727
28-
# Google Calendar IDs
29-
CALENDAR_CLASSES_ID=
30-
CALENDAR_CAMPS_ID=
31-
CALENDAR_TESTING_ID=
32-
33-
# Document Template IDs
34-
ATTESTATION_TEMPLATE_ID=
35-
PRESTATION_TEMPLATE_ID=
36-
CONVENTION_TEMPLATE_ID=
37-
PAYMENTS_TEMPLATE_ID=
38-
STUDENT_CONTRACT_TEMPLATE_ID=
39-
VOLUNTEER_CONTRACT_TEMPLATE_ID=
40-
41-
# Google Form Template IDs
42-
CLASSES_FORM_ID=
43-
CAMPS_FORM_ID=
44-
45-
# Google Drive Folder IDs
46-
DOCUMENTS_BY_BOT_ID=
47-
DRIVE_CAMPS_PHOTOS_ID=
48-
49-
# Google Sheet IDs
50-
SHEETS_PAYMENTS_ID=
51-
52-
# Salesforce Standard IDs
53-
SF_TEACHERS_ACCOUNT_ID=
54-
SF_TEACHER_CONTRACT_RECORD_TYPE_ID=
55-
5628
# WhatsApp Configuration
5729
WHATSAPP_ACCESS_TOKEN=
5830
WHATSAPP_PHONE_ID=
59-
WHATSAPP_ADMINS_TEST=
60-
WHATSAPP_ADMINS=
31+
32+
# Google Drive Folder ID (public folder to store photos)
33+
DRIVE_CAMPS_PHOTOS_ID
6134
```
6235
- `functions/venv` - Contains the Python virtual environment for the backend. Can be created by running
6336
```bash

functions/Actions/__init__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from .EventsToText import generate_confirmation_text, get_teacher_dict
22
from .CampsForm import get_camps_form
33
from .UpdatePaymentsSheet import update_payment_sheet
4-
from .CampsEvents import update_and_create_camps_per_week, update_and_create_camps
5-
from .ClassesEvents import update_and_create_classes_per_week
4+
# from .CampsEvents import update_and_create_camps_per_week
5+
from .CampsEvents import update_and_create_camps
6+
# from .ClassesEvents import update_and_create_classes_per_week

functions/Google/Connector.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import json
21
import os
32
from google.oauth2.credentials import Credentials
43
from google_auth_oauthlib.flow import InstalledAppFlow

functions/Google/Document.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from google.oauth2 import service_account
2-
from datetime import datetime
31
import os
42
from datetime import date
53

functions/Google/Events.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from google.oauth2 import service_account
2-
from googleapiclient.discovery import build
31
from datetime import datetime
42
from dateutil.relativedelta import relativedelta
53
import os

functions/Salesforce/SFConnector.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def __init__(self, SF_USERNAME, SF_PASSWORD, SF_SECURITY_TOKEN, SF_DOMAIN):
1212
username=SF_USERNAME,
1313
password=SF_PASSWORD,
1414
security_token=SF_SECURITY_TOKEN,
15-
domain="test")
15+
domain=SF_DOMAIN)
1616
else:
1717
self.sf = Salesforce(
1818
username=SF_USERNAME,
@@ -25,5 +25,5 @@ def __init__(self, SF_USERNAME, SF_PASSWORD, SF_SECURITY_TOKEN, SF_DOMAIN):
2525
def update_opportunity(self, id, data):
2626
return self.sf.Opportunity.update(id, data)
2727

28-
def update_picklist(self, id, data):
29-
return self.sf.Picklist__c.update(id, data)
28+
# def update_picklist(self, id, data):
29+
# return self.sf.Picklist__c.update(id, data)

functions/Salesforce/SFProcessor.py

Lines changed: 97 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -12,36 +12,36 @@ def __init__(self, SF_USERNAME, SF_PASSWORD, SF_SECURITY_TOKEN, SF_DOMAIN) -> No
1212
super().__init__(SF_USERNAME, SF_PASSWORD, SF_SECURITY_TOKEN, SF_DOMAIN)
1313
self.queries = SFQueries()
1414

15-
def __process_camp_details(self, data):
16-
nl = '\n\n'
17-
address = f'{data["Account"]["BillingAddress"]["street"]}, {data["Account"]["BillingAddress"]["postalCode"]} {data["Account"]["BillingAddress"]["city"]}, {data["Account"]["BillingAddress"]["country"]}'
18-
processed_data = {
19-
"id": data["Id"],
20-
"code": data["Camp_Code__c"],
21-
"name": data["Name"],
22-
"event_id": data["Google_Event__c"],
23-
"picture_grand_parent_id": data.get("Week__r").get("Holiday__r").get("Google_Drive_Pictures_ID__c"),
24-
"picture_parent_id": data.get("Week__r").get("Google_Drive_Pictures_ID__c"),
25-
"picture_parent_name": f'{data.get("Week__r").get("Name")} ({data["Week__r"]["Start_Date__c"][8:10]}/{data["Week__r"]["Start_Date__c"][5:7]}-{data["Week__r"]["End_Date__c"][8:10]}/{data["Week__r"]["End_Date__c"][5:7]})',
26-
"week_name": data.get("Week__r").get("Name"),
27-
"week_id": data.get("Week__r").get("Id"),
28-
"holiday_id": data.get("Week__r").get("Holiday__r").get("Id"),
29-
"pictures_id": data["Google_Drive_Pictures__c"],
30-
"pictures_name": f'{data.get("Account").get("Name")} ({data.get("Time_Schedule__r").get("Time_Slot__c", "")[3:]})',
31-
"summary": f'{data["Camp_Code__c"]} - Stage {data["Account"]["Name"]} [{data["Ages_Real__c"] if data["Ages_Real__c"] != "" else "???"} ans]',
32-
"teacher_text": f'{data["Time_Schedule__r"]["Name"]} {data["Account"]["Name"]} ({address}) [{data["Ages_Real__c"] if data["Ages_Real__c"] != "" else "???"} ans]',
33-
"teacher_email": data["Teacher__r"]["Email__c"] if data["Teacher__r"] else None,
34-
"start_time": data["Time_Schedule__r"]["Start_Pay_Time__c"][:-1],
35-
"start": f'{data["Week__r"]["Start_Date__c"]}T{data["Time_Schedule__r"]["Start_Pay_Time__c"][:-1]}',
36-
"end_day1": f'{data["Week__r"]["Start_Date__c"]}T{data["Time_Schedule__r"]["End_Pay_Time__c"][:-1]}',
37-
"start_day1": f'{(data["Week__r"]["Start_Date__c"] + "T" + data.get("Time_Schedule__r", {}).get("Start_Pay_Time_Day_1__c")[:-1]) if data.get("Time_Schedule__r", {}).get("Start_Pay_Time_Day_1__c") else (data["Week__r"]["Start_Date__c"] + "T" + data["Time_Schedule__r"]["Start_Pay_Time__c"][:-1])}',
38-
"address": address,
39-
"description": f'{"".join(["Notes importantes: ", data["Description"], nl]) if data["Description"] else ""}{data["Time_Schedule__r"]["Description__c"]}',
40-
"excluded_day": data.get("Week__r").get("Excluded_Day__c"),
41-
"replacements": [{"date": replacement.get("Date__c"), "email": replacement.get("Teacher__r").get("Email__c")} for replacement in (data.get("Replacements__r") or {}).get('records', [])],
42-
"overwrite_cancelled": data.get("Overwrite_Cancelled__c"),
43-
}
44-
return processed_data
15+
# def __process_camp_details(self, data):
16+
# nl = '\n\n'
17+
# address = f'{data["Account"]["BillingAddress"]["street"]}, {data["Account"]["BillingAddress"]["postalCode"]} {data["Account"]["BillingAddress"]["city"]}, {data["Account"]["BillingAddress"]["country"]}'
18+
# processed_data = {
19+
# "id": data["Id"],
20+
# "code": data["Camp_Code__c"],
21+
# "name": data["Name"],
22+
# "event_id": data["Google_Event__c"],
23+
# "picture_grand_parent_id": data.get("Week__r").get("Holiday__r").get("Google_Drive_Pictures_ID__c"),
24+
# "picture_parent_id": data.get("Week__r").get("Google_Drive_Pictures_ID__c"),
25+
# "picture_parent_name": f'{data.get("Week__r").get("Name")} ({data["Week__r"]["Start_Date__c"][8:10]}/{data["Week__r"]["Start_Date__c"][5:7]}-{data["Week__r"]["End_Date__c"][8:10]}/{data["Week__r"]["End_Date__c"][5:7]})',
26+
# "week_name": data.get("Week__r").get("Name"),
27+
# "week_id": data.get("Week__r").get("Id"),
28+
# "holiday_id": data.get("Week__r").get("Holiday__r").get("Id"),
29+
# "pictures_id": data["Google_Drive_Pictures__c"],
30+
# "pictures_name": f'{data.get("Account").get("Name")} ({data.get("Time_Schedule__r").get("Time_Slot__c", "")[3:]})',
31+
# "summary": f'{data["Camp_Code__c"]} - Stage {data["Account"]["Name"]} [{data["Ages_Real__c"] if data["Ages_Real__c"] != "" else "???"} ans]',
32+
# "teacher_text": f'{data["Time_Schedule__r"]["Name"]} {data["Account"]["Name"]} ({address}) [{data["Ages_Real__c"] if data["Ages_Real__c"] != "" else "???"} ans]',
33+
# "teacher_email": data["Teacher__r"]["Email__c"] if data["Teacher__r"] else None,
34+
# "start_time": data["Time_Schedule__r"]["Start_Pay_Time__c"][:-1],
35+
# "start": f'{data["Week__r"]["Start_Date__c"]}T{data["Time_Schedule__r"]["Start_Pay_Time__c"][:-1]}',
36+
# "end_day1": f'{data["Week__r"]["Start_Date__c"]}T{data["Time_Schedule__r"]["End_Pay_Time__c"][:-1]}',
37+
# "start_day1": f'{(data["Week__r"]["Start_Date__c"] + "T" + data.get("Time_Schedule__r", {}).get("Start_Pay_Time_Day_1__c")[:-1]) if data.get("Time_Schedule__r", {}).get("Start_Pay_Time_Day_1__c") else (data["Week__r"]["Start_Date__c"] + "T" + data["Time_Schedule__r"]["Start_Pay_Time__c"][:-1])}',
38+
# "address": address,
39+
# "description": f'{"".join(["Notes importantes: ", data["Description"], nl]) if data["Description"] else ""}{data["Time_Schedule__r"]["Description__c"]}',
40+
# "excluded_day": data.get("Week__r").get("Excluded_Day__c"),
41+
# "replacements": [{"date": replacement.get("Date__c"), "email": replacement.get("Teacher__r").get("Email__c")} for replacement in (data.get("Replacements__r") or {}).get('records', [])],
42+
# "overwrite_cancelled": data.get("Overwrite_Cancelled__c"),
43+
# }
44+
# return processed_data
4545

4646
def get_camp_details(self, code, confirmed=True):
4747
if confirmed:
@@ -60,48 +60,48 @@ def get_all_camp_details(self, week_codes):
6060
processed = [self.__process_camp_details(r) for r in results]
6161
return processed
6262

63-
def __process_class_details(self, data):
64-
nl = '\n\n'
65-
address = f'{data["Account"]["BillingAddress"]["street"]}, {data["Account"]["BillingAddress"]["postalCode"]} {data["Account"]["BillingAddress"]["city"]}, {data["Account"]["BillingAddress"]["country"]}'
66-
67-
68-
processed_data = {
69-
"id": data["Id"],
70-
"code": data["Code__c"],
71-
"name": data["Name"],
72-
"event": {
73-
"id": data["Google_Event__c"],
74-
"school": data["Account"]["Name"],
75-
"summary": f'{data["Code__c"]} - {data["Account"]["Name"]} [{data["Ages_Announced__c"] if data.get("Ages_Announced__c") and data.get("Ages_Announced__c") != "" else "???"}]',
76-
"email": data["Teacher__r"]["Email__c"] if data["Teacher__r"] else None,
77-
"start_time": data["Start_Time__c"][:-1],
78-
"end_time": data["End_Time__c"][:-1],
79-
"address": address,
80-
"start_date": data["Yearly_Schedule__r"]["Start_Date__c"],
81-
"end_date": data["Yearly_Schedule__r"]["End_Date__c"],
82-
"day": data["Day_of_Week__c"],
83-
"additional_invite": data.get("Additional_Invite__c"),
84-
"online": data.get("Account").get("Online__c"),
85-
},
86-
"holidays": {
87-
"weeks": data["Yearly_Schedule__r"]["Associated_Calendar__r"]["Holiday_Weeks__c"],
88-
"days": data["Yearly_Schedule__r"]["Associated_Calendar__r"]["Holiday_Days__c"],
89-
"overwrite_cancelled_ys": data["Yearly_Schedule__r"]["Overwrite_Cancelled__c"],
90-
"overwrite_cancelled": data["Overwrite_Cancelled__c"],
91-
},
92-
"replacements": {
93-
"one_time": [{
94-
"date": r.get("Date__c"),
95-
"email": r["Teacher__r"].get("Email__c") if r.get("Teacher__r") else None
96-
} for r in filter(lambda x: x.get("RecordTypeId") == "012P5000001QASzIAO", (data.get("Replacements__r") or {}).get('records', []))],
97-
"permanent": [{
98-
"date": r.get("Date__c"),
99-
"email": r["Teacher__r"].get("Email__c") if r.get("Teacher__r") else None
100-
} for r in filter(lambda x: x.get("RecordTypeId") == "012P5000001QAUbIAO", (data.get("Replacements__r") or {}).get('records', []))],
101-
},
102-
}
103-
print(processed_data)
104-
return processed_data
63+
# def __process_class_details(self, data):
64+
# nl = '\n\n'
65+
# address = f'{data["Account"]["BillingAddress"]["street"]}, {data["Account"]["BillingAddress"]["postalCode"]} {data["Account"]["BillingAddress"]["city"]}, {data["Account"]["BillingAddress"]["country"]}'
66+
#
67+
#
68+
# processed_data = {
69+
# "id": data["Id"],
70+
# "code": data["Code__c"],
71+
# "name": data["Name"],
72+
# "event": {
73+
# "id": data["Google_Event__c"],
74+
# "school": data["Account"]["Name"],
75+
# "summary": f'{data["Code__c"]} - {data["Account"]["Name"]} [{data["Ages_Announced__c"] if data.get("Ages_Announced__c") and data.get("Ages_Announced__c") != "" else "???"}]',
76+
# "email": data["Teacher__r"]["Email__c"] if data["Teacher__r"] else None,
77+
# "start_time": data["Start_Time__c"][:-1],
78+
# "end_time": data["End_Time__c"][:-1],
79+
# "address": address,
80+
# "start_date": data["Yearly_Schedule__r"]["Start_Date__c"],
81+
# "end_date": data["Yearly_Schedule__r"]["End_Date__c"],
82+
# "day": data["Day_of_Week__c"],
83+
# "additional_invite": data.get("Additional_Invite__c"),
84+
# "online": data.get("Account").get("Online__c"),
85+
# },
86+
# "holidays": {
87+
# "weeks": data["Yearly_Schedule__r"]["Associated_Calendar__r"]["Holiday_Weeks__c"],
88+
# "days": data["Yearly_Schedule__r"]["Associated_Calendar__r"]["Holiday_Days__c"],
89+
# "overwrite_cancelled_ys": data["Yearly_Schedule__r"]["Overwrite_Cancelled__c"],
90+
# "overwrite_cancelled": data["Overwrite_Cancelled__c"],
91+
# },
92+
# "replacements": {
93+
# "one_time": [{
94+
# "date": r.get("Date__c"),
95+
# "email": r["Teacher__r"].get("Email__c") if r.get("Teacher__r") else None
96+
# } for r in filter(lambda x: x.get("RecordTypeId") == "012P5000001QASzIAO", (data.get("Replacements__r") or {}).get('records', []))],
97+
# "permanent": [{
98+
# "date": r.get("Date__c"),
99+
# "email": r["Teacher__r"].get("Email__c") if r.get("Teacher__r") else None
100+
# } for r in filter(lambda x: x.get("RecordTypeId") == "012P5000001QAUbIAO", (data.get("Replacements__r") or {}).get('records', []))],
101+
# },
102+
# }
103+
# print(processed_data)
104+
# return processed_data
105105

106106
def get_all_class_details(self, year_code):
107107
query = self.queries.get_all_class_details(year_code)
@@ -128,36 +128,36 @@ def get_all_class_details3(self, class_id):
128128
return self.__process_class_details(results_list[0])
129129

130130

131-
def get_camp_weeks(self):
132-
query = self.queries.get_camp_weeks()
133-
data = self.sf.query_all_iter(query)
134-
135-
processed_data = [{
136-
"code": d["Week_Code__c"],
137-
"period": d["Name"],
138-
"start": d["Start_Date__c"],
139-
"end": d["End_Date__c"],
140-
"days": d["Number_of_Days__c"]
141-
} for d in data]
142-
143-
return processed_data
131+
# def get_camp_weeks(self):
132+
# query = self.queries.get_camp_weeks()
133+
# data = self.sf.query_all_iter(query)
134+
#
135+
# processed_data = [{
136+
# "code": d["Week_Code__c"],
137+
# "period": d["Name"],
138+
# "start": d["Start_Date__c"],
139+
# "end": d["End_Date__c"],
140+
# "days": d["Number_of_Days__c"]
141+
# } for d in data]
142+
#
143+
# return processed_data
144144

145145
def get_camps_per_week(self, week_code, confirmed=True):
146146
query = self.queries.get_camps_per_week(week_code, confirmed)
147147
data = self.sf.query(query)["records"]
148148
return [d["Camp_Code__c"] for d in data]
149149

150-
def get_camps_per_week_with_name(self, week_code, confirmed=True):
151-
query = self.queries.get_camps_per_week(week_code, confirmed)
152-
data = self.sf.query(query)["records"]
153-
return [{"code": d["Camp_Code__c"], "name": d["Name"]} for d in data]
150+
# def get_camps_per_week_with_name(self, week_code, confirmed=True):
151+
# query = self.queries.get_camps_per_week(week_code, confirmed)
152+
# data = self.sf.query(query)["records"]
153+
# return [{"code": d["Camp_Code__c"], "name": d["Name"]} for d in data]
154154

155-
def get_teachers_for_partners(self, partner, only_confirmed=True):
156-
query = self.queries.get_teachers_for_partners(partner, only_confirmed)
157-
data = self.sf.query_all_iter(query)
158-
159-
processed_data = [f'{d["Week__r"]["Name"]} {d["Time_Schedule__r"]["Name"]}, {d["Account"]["Name"]} -> {d["Teacher__r"]["Name"] if d["Teacher__r"] else "???"} ({d["Teacher__r"]["Phone__c"] if d["Teacher__r"] else "???"})' for d in data]
160-
return processed_data
155+
# def get_teachers_for_partners(self, partner, only_confirmed=True):
156+
# query = self.queries.get_teachers_for_partners(partner, only_confirmed)
157+
# data = self.sf.query_all_iter(query)
158+
#
159+
# processed_data = [f'{d["Week__r"]["Name"]} {d["Time_Schedule__r"]["Name"]}, {d["Account"]["Name"]} -> {d["Teacher__r"]["Name"] if d["Teacher__r"] else "???"} ({d["Teacher__r"]["Phone__c"] if d["Teacher__r"] else "???"})' for d in data]
160+
# return processed_data
161161

162162
def get_week_long_name(self, week_code):
163163
query = self.queries.get_week_name(week_code)
@@ -193,8 +193,8 @@ def get_teacher_details(self, email):
193193

194194
def create_contract(self, teacher_id, start, end, contract_type, link):
195195
contract = self.sf.Contract.create({
196-
"AccountId": os.getenv("SF_TEACHERS_ACCOUNT_ID"),
197-
"RecordTypeId": os.getenv("SF_TEACHER_CONTRACT_RECORD_TYPE_ID"),
196+
"AccountId": "0010600002Fm3UIAAZ",
197+
"RecordTypeId": "012P5000001H6wTIAS",
198198
"Teacher__c": teacher_id,
199199
"StartDate": start,
200200
"Contract_End_Date__c": end,

0 commit comments

Comments
 (0)