nouamanetazi HF staff commited on
Commit
c1f3539
1 Parent(s): c713636

update wtsp number

Browse files
locales/ar/LC_MESSAGES/messages.po CHANGED
@@ -123,7 +123,7 @@ msgid ""
123
  "assistance for everyone affected. How do we achieve this? We assist those in "
124
  "need by allowing them to communicate their location and the specific aid "
125
  "they require, either by completing a form or sending a voice message via "
126
- "WhatsApp to the number <b>0652573987</b>. Once we receive and process this "
127
  "information, it can be viewed in our dashboard, which allows NGOs to "
128
  "organize and precisely target their interventions, ensuring swift assistance "
129
  "reaches those in need. Any organization that has taken initiative in a "
@@ -160,7 +160,7 @@ msgid ""
160
  "الأخير في المغرب. مهمتنا هي تسهيل تقديم المساعدة في الوقت المناسب و بفاعلية "
161
  "و تنظيم لجميع المتضررين. كيفاش؟ كنعاونو الناس لي محتاجين للمساعدة إعلمونا "
162
  "بمكانهم و نوع المساعدة لي محتاجين ليها سواء عن طريق ملأ الاستمارة أو عن طريق "
163
- "إرسال تسجيل صوتي عبر واتساب إلى رقم مخصص<b>0652573987</b>. بعد معالجة هاد "
164
  "المعلومات، كنجمعوهم فخريطة كتمكن الجمعيات من تنظيم و استهداف تدخلاتهم بدقة "
165
  "باش توصل المساعدة للناس لي محتاجين في وقت أسرع. و كل جمعية قامت باللازم في "
166
  "منطقة معينة تقدر تعلمنا عن طريق ملأ استمارة مخصصة لهاد الأمر. هاد المعلومات "
@@ -198,7 +198,7 @@ msgid ""
198
  "nous ? Nous aidons les personnes dans le besoin en leur permettant de "
199
  "communiquer leur localisation et l'aide spécifique dont elles ont besoin, "
200
  "soit en remplissant un formulaire, soit en envoyant un message vocal via "
201
- "WhatsApp à un numéro <b>0652573987</b>. Une fois reçues et traitées, ces "
202
  "informations peuvent être consultées dans notre tableau de bord, qui permet "
203
  "aux associations d'organiser et de cibler précisément leurs interventions, "
204
  "afin que l'aide parvienne rapidement à ceux qui en ont besoin. Toute "
 
123
  "assistance for everyone affected. How do we achieve this? We assist those in "
124
  "need by allowing them to communicate their location and the specific aid "
125
  "they require, either by completing a form or sending a voice message via "
126
+ "WhatsApp to the number <b>0602838166</b>. Once we receive and process this "
127
  "information, it can be viewed in our dashboard, which allows NGOs to "
128
  "organize and precisely target their interventions, ensuring swift assistance "
129
  "reaches those in need. Any organization that has taken initiative in a "
 
160
  "الأخير في المغرب. مهمتنا هي تسهيل تقديم المساعدة في الوقت المناسب و بفاعلية "
161
  "و تنظيم لجميع المتضررين. كيفاش؟ كنعاونو الناس لي محتاجين للمساعدة إعلمونا "
162
  "بمكانهم و نوع المساعدة لي محتاجين ليها سواء عن طريق ملأ الاستمارة أو عن طريق "
163
+ "إرسال تسجيل صوتي عبر واتساب إلى رقم مخصص<b>0602838166</b>. بعد معالجة هاد "
164
  "المعلومات، كنجمعوهم فخريطة كتمكن الجمعيات من تنظيم و استهداف تدخلاتهم بدقة "
165
  "باش توصل المساعدة للناس لي محتاجين في وقت أسرع. و كل جمعية قامت باللازم في "
166
  "منطقة معينة تقدر تعلمنا عن طريق ملأ استمارة مخصصة لهاد الأمر. هاد المعلومات "
 
198
  "nous ? Nous aidons les personnes dans le besoin en leur permettant de "
199
  "communiquer leur localisation et l'aide spécifique dont elles ont besoin, "
200
  "soit en remplissant un formulaire, soit en envoyant un message vocal via "
201
+ "WhatsApp à un numéro <b>0602838166</b>. Une fois reçues et traitées, ces "
202
  "informations peuvent être consultées dans notre tableau de bord, qui permet "
203
  "aux associations d'organiser et de cibler précisément leurs interventions, "
204
  "afin que l'aide parvienne rapidement à ceux qui en ont besoin. Toute "
locales/fr/LC_MESSAGES/messages.po CHANGED
@@ -123,7 +123,7 @@ msgid ""
123
  "assistance for everyone affected. How do we achieve this? We assist those in "
124
  "need by allowing them to communicate their location and the specific aid "
125
  "they require, either by completing a form or sending a voice message via "
126
- "WhatsApp to the number <b>0652573987</b>. Once we receive and process this "
127
  "information, it can be viewed in our dashboard, which allows NGOs to "
128
  "organize and precisely target their interventions, ensuring swift assistance "
129
  "reaches those in need. Any organization that has taken initiative in a "
@@ -160,7 +160,7 @@ msgid ""
160
  "الأخير في المغرب. مهمتنا هي تسهيل تقديم المساعدة في الوقت المناسب و بفاعلية "
161
  "و تنظيم لجميع المتضررين. كيفاش؟ كنعاونو الناس لي محتاجين للمساعدة إعلمونا "
162
  "بمكانهم و نوع المساعدة لي محتاجين ليها سواء عن طريق ملأ الاستمارة أو عن طريق "
163
- "إرسال تسجيل صوتي عبر واتساب إلى رقم مخصص<b>0652573987</b>. بعد معالجة هاد "
164
  "المعلومات، كنجمعوهم فخريطة كتمكن الجمعيات من تنظيم و استهداف تدخلاتهم بدقة "
165
  "باش توصل المساعدة للناس لي محتاجين في وقت أسرع. و كل جمعية قامت باللازم في "
166
  "منطقة معينة تقدر تعلمنا عن طريق ملأ استمارة مخصصة لهاد الأمر. هاد المعلومات "
@@ -198,7 +198,7 @@ msgid ""
198
  "nous ? Nous aidons les personnes dans le besoin en leur permettant de "
199
  "communiquer leur localisation et l'aide spécifique dont elles ont besoin, "
200
  "soit en remplissant un formulaire, soit en envoyant un message vocal via "
201
- "WhatsApp à un numéro <b>0652573987</b>. Une fois reçues et traitées, ces "
202
  "informations peuvent être consultées dans notre tableau de bord, qui permet "
203
  "aux associations d'organiser et de cibler précisément leurs interventions, "
204
  "afin que l'aide parvienne rapidement à ceux qui en ont besoin. Toute "
 
123
  "assistance for everyone affected. How do we achieve this? We assist those in "
124
  "need by allowing them to communicate their location and the specific aid "
125
  "they require, either by completing a form or sending a voice message via "
126
+ "WhatsApp to the number <b>0602838166</b>. Once we receive and process this "
127
  "information, it can be viewed in our dashboard, which allows NGOs to "
128
  "organize and precisely target their interventions, ensuring swift assistance "
129
  "reaches those in need. Any organization that has taken initiative in a "
 
160
  "الأخير في المغرب. مهمتنا هي تسهيل تقديم المساعدة في الوقت المناسب و بفاعلية "
161
  "و تنظيم لجميع المتضررين. كيفاش؟ كنعاونو الناس لي محتاجين للمساعدة إعلمونا "
162
  "بمكانهم و نوع المساعدة لي محتاجين ليها سواء عن طريق ملأ الاستمارة أو عن طريق "
163
+ "إرسال تسجيل صوتي عبر واتساب إلى رقم مخصص<b>0602838166</b>. بعد معالجة هاد "
164
  "المعلومات، كنجمعوهم فخريطة كتمكن الجمعيات من تنظيم و استهداف تدخلاتهم بدقة "
165
  "باش توصل المساعدة للناس لي محتاجين في وقت أسرع. و كل جمعية قامت باللازم في "
166
  "منطقة معينة تقدر تعلمنا عن طريق ملأ استمارة مخصصة لهاد الأمر. هاد المعلومات "
 
198
  "nous ? Nous aidons les personnes dans le besoin en leur permettant de "
199
  "communiquer leur localisation et l'aide spécifique dont elles ont besoin, "
200
  "soit en remplissant un formulaire, soit en envoyant un message vocal via "
201
+ "WhatsApp à un numéro <b>0602838166</b>. Une fois reçues et traitées, ces "
202
  "informations peuvent être consultées dans notre tableau de bord, qui permet "
203
  "aux associations d'organiser et de cibler précisément leurs interventions, "
204
  "afin que l'aide parvienne rapidement à ceux qui en ont besoin. Toute "
messages.pot CHANGED
@@ -123,7 +123,7 @@ msgid ""
123
  "assistance for everyone affected. How do we achieve this? We assist those in "
124
  "need by allowing them to communicate their location and the specific aid "
125
  "they require, either by completing a form or sending a voice message via "
126
- "WhatsApp to the number <b>0652573987</b>. Once we receive and process this "
127
  "information, it can be viewed in our dashboard, which allows NGOs to "
128
  "organize and precisely target their interventions, ensuring swift assistance "
129
  "reaches those in need. Any organization that has taken initiative in a "
@@ -160,7 +160,7 @@ msgid ""
160
  "الأخير في المغرب. مهمتنا هي تسهيل تقديم المساعدة في الوقت المناسب و بفاعلية "
161
  "و تنظيم لجميع المتضررين. كيفاش؟ كنعاونو الناس لي محتاجين للمساعدة إعلمونا "
162
  "بمكانهم و نوع المساعدة لي محتاجين ليها سواء عن طريق ملأ الاستمارة أو عن طريق "
163
- "إرسال تسجيل صوتي عبر واتساب إلى رقم مخصص<b>0652573987</b>. بعد معالجة هاد "
164
  "المعلومات، كنجمعوهم فخريطة كتمكن الجمعيات من تنظيم و استهداف تدخلاتهم بدقة "
165
  "باش توصل المساعدة للناس لي محتاجين في وقت أسرع. و كل جمعية قامت باللازم في "
166
  "منطقة معينة تقدر تعلمنا عن طريق ملأ استمارة مخصصة لهاد الأمر. هاد المعلومات "
@@ -198,7 +198,7 @@ msgid ""
198
  "nous ? Nous aidons les personnes dans le besoin en leur permettant de "
199
  "communiquer leur localisation et l'aide spécifique dont elles ont besoin, "
200
  "soit en remplissant un formulaire, soit en envoyant un message vocal via "
201
- "WhatsApp à un numéro <b>0652573987</b>. Une fois reçues et traitées, ces "
202
  "informations peuvent être consultées dans notre tableau de bord, qui permet "
203
  "aux associations d'organiser et de cibler précisément leurs interventions, "
204
  "afin que l'aide parvienne rapidement à ceux qui en ont besoin. Toute "
 
123
  "assistance for everyone affected. How do we achieve this? We assist those in "
124
  "need by allowing them to communicate their location and the specific aid "
125
  "they require, either by completing a form or sending a voice message via "
126
+ "WhatsApp to the number <b>0602838166</b>. Once we receive and process this "
127
  "information, it can be viewed in our dashboard, which allows NGOs to "
128
  "organize and precisely target their interventions, ensuring swift assistance "
129
  "reaches those in need. Any organization that has taken initiative in a "
 
160
  "الأخير في المغرب. مهمتنا هي تسهيل تقديم المساعدة في الوقت المناسب و بفاعلية "
161
  "و تنظيم لجميع المتضررين. كيفاش؟ كنعاونو الناس لي محتاجين للمساعدة إعلمونا "
162
  "بمكانهم و نوع المساعدة لي محتاجين ليها سواء عن طريق ملأ الاستمارة أو عن طريق "
163
+ "إرسال تسجيل صوتي عبر واتساب إلى رقم مخصص<b>0602838166</b>. بعد معالجة هاد "
164
  "المعلومات، كنجمعوهم فخريطة كتمكن الجمعيات من تنظيم و استهداف تدخلاتهم بدقة "
165
  "باش توصل المساعدة للناس لي محتاجين في وقت أسرع. و كل جمعية قامت باللازم في "
166
  "منطقة معينة تقدر تعلمنا عن طريق ملأ استمارة مخصصة لهاد الأمر. هاد المعلومات "
 
198
  "nous ? Nous aidons les personnes dans le besoin en leur permettant de "
199
  "communiquer leur localisation et l'aide spécifique dont elles ont besoin, "
200
  "soit en remplissant un formulaire, soit en envoyant un message vocal via "
201
+ "WhatsApp à un numéro <b>0602838166</b>. Une fois reçues et traitées, ces "
202
  "informations peuvent être consultées dans notre tableau de bord, qui permet "
203
  "aux associations d'organiser et de cibler précisément leurs interventions, "
204
  "afin que l'aide parvienne rapidement à ceux qui en ont besoin. Toute "
src/components.py CHANGED
@@ -7,6 +7,7 @@ from src.utils import parse_gg_sheet
7
 
8
  import plotly.express as px
9
 
 
10
  def id_review_submission(api: HfApi):
11
  """Id review submission form"""
12
  # collapse the text
@@ -121,64 +122,77 @@ def show_dataframes_metrics(len_requests, len_interventions, len_solved_verified
121
  "# Nombre de demandes résolues",
122
  len_solved_verified_requests,
123
  )
124
- @st.cache_data(ttl=60*60*24)
 
 
125
  def cached_parse_gg_sheet(url):
126
  return parse_gg_sheet(url)
127
 
 
128
  def show_charts():
129
  st.subheader(_("📊 **Charts**"))
130
  col1, col2 = st.columns([1, 1])
131
 
132
  # interventions_categories
133
  interventions_processed_df = cached_parse_gg_sheet(INTERVENTIONS_PROCESSED_URL)
134
- supply_data = interventions_processed_df["supplies_category"].str.split(",").explode().str.strip('[] \'').dropna().astype("category")
135
- interv_fig = px.pie(supply_data, names='supplies_category')
 
 
 
 
 
 
 
136
  interv_fig.update_layout(
137
  autosize=True,
138
  legend=dict(
139
- orientation="h",
140
- # entrywidth=40,
141
- yanchor="bottom",
142
- y=1.02,
143
- xanchor="right",
144
- x=1,
145
- font=dict(
146
- # family="Courier",
147
- # size=10,
148
- # color="black"
 
 
149
  ),
150
- itemwidth=100
151
- ))
152
  with col1:
153
  st.subheader(_("Supplies Categories"))
154
  st.plotly_chart(interv_fig, use_container_width=True)
155
 
156
  # requests_categories
157
  requests_processed_df = cached_parse_gg_sheet(VERIFIED_REQUESTS_PROCESSED_URL)
158
- need_data = requests_processed_df["need_category"].str.split(",").explode().str.strip('[] \'').dropna().astype("category")
159
- req_fig = px.pie(need_data, names='need_category')
 
 
160
  req_fig.update_layout(
161
  autosize=True,
162
  legend=dict(
163
- orientation="h",
164
- # entrywidth=40,
165
- yanchor="bottom",
166
- y=1.02,
167
- xanchor="right",
168
- x=1,
169
- font=dict(
170
- # family="Courier",
171
- # size=10,
172
- # color="black"
 
 
173
  ),
174
- itemwidth=100
175
- ))
176
  with col2:
177
  st.subheader(_("Needs Categories"))
178
  st.plotly_chart(req_fig, use_container_width=True)
179
 
180
 
181
-
182
  def show_donations(lang):
183
  st.subheader(_("📝 **Donations**"))
184
  if lang == "en":
@@ -229,4 +243,4 @@ def show_donations(lang):
229
  <br>
230
  """,
231
  unsafe_allow_html=True,
232
- )
 
7
 
8
  import plotly.express as px
9
 
10
+
11
  def id_review_submission(api: HfApi):
12
  """Id review submission form"""
13
  # collapse the text
 
122
  "# Nombre de demandes résolues",
123
  len_solved_verified_requests,
124
  )
125
+
126
+
127
+ @st.cache_data(ttl=60 * 60 * 24)
128
  def cached_parse_gg_sheet(url):
129
  return parse_gg_sheet(url)
130
 
131
+
132
  def show_charts():
133
  st.subheader(_("📊 **Charts**"))
134
  col1, col2 = st.columns([1, 1])
135
 
136
  # interventions_categories
137
  interventions_processed_df = cached_parse_gg_sheet(INTERVENTIONS_PROCESSED_URL)
138
+ supply_data = (
139
+ interventions_processed_df["supplies_category"]
140
+ .str.split(",")
141
+ .explode()
142
+ .str.strip("[] '")
143
+ .dropna()
144
+ .astype("category")
145
+ )
146
+ interv_fig = px.pie(supply_data, names="supplies_category")
147
  interv_fig.update_layout(
148
  autosize=True,
149
  legend=dict(
150
+ orientation="h",
151
+ # entrywidth=40,
152
+ yanchor="bottom",
153
+ y=1.02,
154
+ xanchor="right",
155
+ x=1,
156
+ font=dict(
157
+ # family="Courier",
158
+ # size=10,
159
+ # color="black"
160
+ ),
161
+ itemwidth=100,
162
  ),
163
+ )
 
164
  with col1:
165
  st.subheader(_("Supplies Categories"))
166
  st.plotly_chart(interv_fig, use_container_width=True)
167
 
168
  # requests_categories
169
  requests_processed_df = cached_parse_gg_sheet(VERIFIED_REQUESTS_PROCESSED_URL)
170
+ need_data = (
171
+ requests_processed_df["need_category"].str.split(",").explode().str.strip("[] '").dropna().astype("category")
172
+ )
173
+ req_fig = px.pie(need_data, names="need_category")
174
  req_fig.update_layout(
175
  autosize=True,
176
  legend=dict(
177
+ orientation="h",
178
+ # entrywidth=40,
179
+ yanchor="bottom",
180
+ y=1.02,
181
+ xanchor="right",
182
+ x=1,
183
+ font=dict(
184
+ # family="Courier",
185
+ # size=10,
186
+ # color="black"
187
+ ),
188
+ itemwidth=100,
189
  ),
190
+ )
 
191
  with col2:
192
  st.subheader(_("Needs Categories"))
193
  st.plotly_chart(req_fig, use_container_width=True)
194
 
195
 
 
196
  def show_donations(lang):
197
  st.subheader(_("📝 **Donations**"))
198
  if lang == "en":
 
243
  <br>
244
  """,
245
  unsafe_allow_html=True,
246
+ )
src/dataframes.py CHANGED
@@ -1,4 +1,3 @@
1
-
2
  import streamlit as st
3
  from src.utils import add_latlng_col, parse_gg_sheet, parse_json_file, is_request_in_list
4
  import pandas as pd
@@ -10,6 +9,7 @@ INTERVENTIONS_PROCESSED_URL = st.secrets["INTERVENTIONS_PROCESSED_URL"]
10
  VERIFIED_REQUESTS_PROCESSED_URL = st.secrets["VERIFIED_REQUESTS_PROCESSED_URL"]
11
  DOUARS_URL = "data/regions.json"
12
 
 
13
  def load_data(show_unverified, selected_options, options):
14
  df = parse_gg_sheet(REQUESTS_URL)
15
  if show_unverified:
@@ -32,7 +32,9 @@ def load_data(show_unverified, selected_options, options):
32
  verified_df["id"] = verified_df.index # Needed to display request id
33
  # keep rows with at least one request in selected_options
34
  filtered_df = df[
35
- df["ما هي احتياجاتك؟ (أضفها إذا لم يتم ذكرها)"].apply(lambda x: is_request_in_list(x, selected_options, options))
 
 
36
  ]
37
  filtered_verified_df = verified_df[
38
  verified_df["Help Details"].apply(lambda x: is_request_in_list(x, selected_options, options))
@@ -51,7 +53,6 @@ def load_data(show_unverified, selected_options, options):
51
  )
52
 
53
 
54
-
55
  def display_dataframe(df, drop_cols, data_url, search_id=True, status=False, for_help_requests=False, show_link=True):
56
  """Display the dataframe in a table"""
57
  col_1, col_2 = st.columns([1, 1])
@@ -115,4 +116,3 @@ def display_dataframe(df, drop_cols, data_url, search_id=True, status=False, for
115
  """,
116
  unsafe_allow_html=True,
117
  )
118
-
 
 
1
  import streamlit as st
2
  from src.utils import add_latlng_col, parse_gg_sheet, parse_json_file, is_request_in_list
3
  import pandas as pd
 
9
  VERIFIED_REQUESTS_PROCESSED_URL = st.secrets["VERIFIED_REQUESTS_PROCESSED_URL"]
10
  DOUARS_URL = "data/regions.json"
11
 
12
+
13
  def load_data(show_unverified, selected_options, options):
14
  df = parse_gg_sheet(REQUESTS_URL)
15
  if show_unverified:
 
32
  verified_df["id"] = verified_df.index # Needed to display request id
33
  # keep rows with at least one request in selected_options
34
  filtered_df = df[
35
+ df["ما هي احتياجاتك؟ (أضفها إذا لم يتم ذكرها)"].apply(
36
+ lambda x: is_request_in_list(x, selected_options, options)
37
+ )
38
  ]
39
  filtered_verified_df = verified_df[
40
  verified_df["Help Details"].apply(lambda x: is_request_in_list(x, selected_options, options))
 
53
  )
54
 
55
 
 
56
  def display_dataframe(df, drop_cols, data_url, search_id=True, status=False, for_help_requests=False, show_link=True):
57
  """Display the dataframe in a table"""
58
  col_1, col_2 = st.columns([1, 1])
 
116
  """,
117
  unsafe_allow_html=True,
118
  )
 
src/filters.py CHANGED
@@ -1,9 +1,9 @@
1
-
2
  import streamlit as st
3
 
 
4
  def show_requests_filters():
5
  HEADERS_MAPPING = {
6
- "إغاثة" : _("Rescue"),
7
  "مساعدة طبية": _("Medical Assistance"),
8
  "مأوى": _("Shelter"),
9
  "طعام وماء": _("Food & Water"),
@@ -39,9 +39,10 @@ def show_requests_filters():
39
  format_func=lambda x: HEADERS_MAPPING[x],
40
  label_visibility="collapsed",
41
  )
42
-
43
  return selected_options, options, show_unverified, show_interventions
44
 
 
45
  def show_interventions_filters():
46
  st.markdown(
47
  _("👉 **State of villages visited by NGOs**"),
 
 
1
  import streamlit as st
2
 
3
+
4
  def show_requests_filters():
5
  HEADERS_MAPPING = {
6
+ "إغاثة": _("Rescue"),
7
  "مساعدة طبية": _("Medical Assistance"),
8
  "مأوى": _("Shelter"),
9
  "طعام وماء": _("Food & Water"),
 
39
  format_func=lambda x: HEADERS_MAPPING[x],
40
  label_visibility="collapsed",
41
  )
42
+
43
  return selected_options, options, show_unverified, show_interventions
44
 
45
+
46
  def show_interventions_filters():
47
  st.markdown(
48
  _("👉 **State of villages visited by NGOs**"),
src/map_utils.py CHANGED
@@ -2,7 +2,8 @@ from branca.element import Template, MacroElement
2
 
3
 
4
  def get_legend_macro(show_unverified):
5
- labels_unverified_requests=_("""
 
6
  <li><span style='background:#CE3C28;opacity:0.7;'></span>Rescue</li>
7
  <li><span style='background:#ED922E;opacity:0.7;'></span>Medical Assistance</li>
8
  <li><span style='background:#FFCA92;opacity:0.7;'></span>Shelter</li>
@@ -11,17 +12,20 @@ def get_legend_macro(show_unverified):
11
  <li><span style='background:#6EAA25;opacity:0.7;'></span>Done</li>
12
  <li><span style='background:#023020;opacity:0.7;'></span>Partial</li>
13
  <li><span style='background:#FF91E8;opacity:0.7;'></span>Planned</li>
14
- """)
15
- labels_verified=_("""
 
 
16
  <li><span style='background:#CE3C28;opacity:0.7;'></span>High Emergency</li>
17
  <li><span style='background:#ED922E;opacity:0.7;'></span>Medium Emergency</li>
18
  <li><span style='background:#FFCA92;opacity:0.7;'></span>Low Emergency</li>
19
  <li><span style='background:#6EAA25;opacity:0.7;'></span>Done</li>
20
  <li><span style='background:#023020;opacity:0.7;'></span>Partial</li>
21
  <li><span style='background:#FF91E8;opacity:0.7;'></span>Planned</li>
22
- """)
 
23
 
24
- template_1 = """
25
  {% macro html(this, kwargs) %}
26
 
27
  <!doctype html>
@@ -62,7 +66,7 @@ def get_legend_macro(show_unverified):
62
  <ul class='legend-labels'>
63
 
64
  """
65
- template_2 = """
66
  </ul>
67
  </div>
68
  </div>
@@ -118,8 +122,11 @@ def get_legend_macro(show_unverified):
118
  </style>
119
  {% endmacro %}"""
120
 
121
- legend_macro = MacroElement()
122
- legend_macro._template = Template(template_1 + (labels_unverified_requests if show_unverified else labels_verified) + template_2)
123
- return legend_macro
 
 
 
124
 
125
- __all__ = ["get_legend_macro"]
 
2
 
3
 
4
  def get_legend_macro(show_unverified):
5
+ labels_unverified_requests = _(
6
+ """
7
  <li><span style='background:#CE3C28;opacity:0.7;'></span>Rescue</li>
8
  <li><span style='background:#ED922E;opacity:0.7;'></span>Medical Assistance</li>
9
  <li><span style='background:#FFCA92;opacity:0.7;'></span>Shelter</li>
 
12
  <li><span style='background:#6EAA25;opacity:0.7;'></span>Done</li>
13
  <li><span style='background:#023020;opacity:0.7;'></span>Partial</li>
14
  <li><span style='background:#FF91E8;opacity:0.7;'></span>Planned</li>
15
+ """
16
+ )
17
+ labels_verified = _(
18
+ """
19
  <li><span style='background:#CE3C28;opacity:0.7;'></span>High Emergency</li>
20
  <li><span style='background:#ED922E;opacity:0.7;'></span>Medium Emergency</li>
21
  <li><span style='background:#FFCA92;opacity:0.7;'></span>Low Emergency</li>
22
  <li><span style='background:#6EAA25;opacity:0.7;'></span>Done</li>
23
  <li><span style='background:#023020;opacity:0.7;'></span>Partial</li>
24
  <li><span style='background:#FF91E8;opacity:0.7;'></span>Planned</li>
25
+ """
26
+ )
27
 
28
+ template_1 = """
29
  {% macro html(this, kwargs) %}
30
 
31
  <!doctype html>
 
66
  <ul class='legend-labels'>
67
 
68
  """
69
+ template_2 = """
70
  </ul>
71
  </div>
72
  </div>
 
122
  </style>
123
  {% endmacro %}"""
124
 
125
+ legend_macro = MacroElement()
126
+ legend_macro._template = Template(
127
+ template_1 + (labels_unverified_requests if show_unverified else labels_verified) + template_2
128
+ )
129
+ return legend_macro
130
+
131
 
132
+ __all__ = ["get_legend_macro"]
src/markers.py CHANGED
@@ -18,7 +18,8 @@ ICON_MAPPING = {
18
  "طعام وماء": "cutlery", # cutlery (fork and knife) for food & water
19
  "مخاطر (تسرب الغاز، تلف في الخدمات العامة...)": "Warning" # warning triangle for dangers
20
  }
21
- numcol = lambda x: ord(x) - ord("A")
 
22
 
23
  def marker_request(request):
24
  # in case of multiple requests we use the first one for the marker's icon
@@ -82,7 +83,7 @@ def display_interventions(interventions_df, selected_statuses, map_obj, interven
82
  douar_name = row[interventions_df.columns[numcol("M")]]
83
  commune = row[interventions_df.columns[numcol("N")]]
84
  caidat = row[interventions_df.columns[numcol("O")]]
85
- google_maps_link = row[interventions_df.columns[numcol("P")]]
86
  accessibility_to_douar = row[interventions_df.columns[numcol("Q")]]
87
  type_of_accessibility = row[interventions_df.columns[numcol("R")]]
88
  population = row[interventions_df.columns[numcol("S")]]
 
18
  "طعام وماء": "cutlery", # cutlery (fork and knife) for food & water
19
  "مخاطر (تسرب الغاز، تلف في الخدمات العامة...)": "Warning" # warning triangle for dangers
20
  }
21
+ def numcol(x):
22
+ return ord(x) - ord("A")
23
 
24
  def marker_request(request):
25
  # in case of multiple requests we use the first one for the marker's icon
 
83
  douar_name = row[interventions_df.columns[numcol("M")]]
84
  commune = row[interventions_df.columns[numcol("N")]]
85
  caidat = row[interventions_df.columns[numcol("O")]]
86
+ row[interventions_df.columns[numcol("P")]]
87
  accessibility_to_douar = row[interventions_df.columns[numcol("Q")]]
88
  type_of_accessibility = row[interventions_df.columns[numcol("R")]]
89
  population = row[interventions_df.columns[numcol("S")]]
src/text_content.py CHANGED
@@ -1,7 +1,6 @@
1
-
2
  INTRO_TEXT_EN = """
3
  <div style="text-align: left;">
4
- Nt3awnou نتعاونو is a non-profit organization and a collaborative platform dedicated to aiding individuals impacted by the recent earthquake in Morocco. Our core mission is to streamline and coordinate timely assistance for everyone affected. How do we achieve this? We assist those in need by allowing them to communicate their location and the specific aid they require, either by completing a form or sending a voice message via WhatsApp to the number <b>0652573987</b>. Once we receive and process this information, it can be viewed in our dashboard, which allows NGOs to organize and precisely target their interventions, ensuring swift assistance reaches those in need. Any organization that has taken initiative in a particular area can notify us by completing a dedicated form. This data is also incorporated into the dashboard so that other NGOs can help affected areas that still haven't received help.
5
  <br>⚠️ Warning : There are still rocks falling down the mountains, making the roads to the affected areas very dangerous. We advise volunteers to donate directly to specialized NGOs.<br>
6
  <br>
7
  <b>✉️ You can contact us via email at </b><a href="mailto:nt3awnoumorocco@gmail.com">nt3awnoumorocco@gmail.com</a> or via Instagram <a href="https://www.instagram.com/nt3awnou_morocco/">@nt3awnou_morocco</a> <br>
@@ -15,7 +14,7 @@ INTRO_TEXT_EN = """
15
  INTRO_TEXT_AR = """
16
  <div style="text-align: right;-webkit-rtl-ordering: logical;">
17
 
18
- نتعاونو هي منصة تعاونية غير ربحية لمساعدة الأفراد المتضررين من الزلزال الأخير في المغرب. مهمتنا هي تسهيل تقديم المساعدة في الوقت المناسب و بفاعلية و تنظيم لجميع المتضررين. كيفاش؟ كنعاونو الناس لي محتاجين للمساعدة إعلمونا بمكانهم و نوع المساعدة لي محتاجين ليها سواء عن طريق ملأ الاستمارة أو عن طريق إرسال تسجيل صوتي عبر واتساب إلى رقم مخصص<b>0652573987</b>. بعد معالجة هاد المعلومات، كنجمعوهم فخريطة كتمكن الجمعيات من تنظيم و استهداف تدخلاتهم بدقة باش توصل المساعدة للناس لي محتاجين في وقت أسرع. و كل جمعية قامت باللازم في منطقة معينة تقدر تعلمنا عن طريق ملأ استمارة مخصصة لهاد الأمر. هاد المعلومات كذلك كتضاف للخريطة باش باقي الجمعيات يتاجهو لمناطق أخرى مازال ماوصلاتهم مساعدة.
19
  <br> تحذير : نظرا لخطورة الطرقان بسبب الحجر اللي كيطيح من الجبال، ننصح المتطوعين اللي بغاو ي��اعدو المناطق المتضررة يتبرعو عن طريق الجمعيات المختصة⚠️
20
  <br>
21
  <br>
@@ -28,10 +27,10 @@ INTRO_TEXT_AR = """
28
  </div>
29
  <br>
30
  """
31
-
32
  INTRO_TEXT_FR = """
33
  <div style="text-align: left;">
34
- Nt3awnou نتعاونو est une plateforme collaborative à but non-lucratif dédiée à l'aide aux personnes touchées par le récent tremblement de terre au Maroc. Notre mission principale est de rationaliser et de coordonner une assistance rapide pour toutes les personnes touchées. Comment y parvenons-nous ? Nous aidons les personnes dans le besoin en leur permettant de communiquer leur localisation et l'aide spécifique dont elles ont besoin, soit en remplissant un formulaire, soit en envoyant un message vocal via WhatsApp à un numéro <b>0652573987</b>. Une fois reçues et traitées, ces informations peuvent être consultées dans notre tableau de bord, qui permet aux associations d'organiser et de cibler précisément leurs interventions, afin que l'aide parvienne rapidement à ceux qui en ont besoin. Toute organisation ayant pris une initiative dans une zone particulière peut nous en informer en remplissant un formulaire prévu à cet effet. Ces données sont également intégrées au tableau de bord afin que d'autres associations puissent aider les zones touchées qui n'ont pas encore reçu d'aide.
35
  <br> ⚠️ Avertissement : Il y a encore des chutes de pierres dans les montagnes, ce qui rend les routes vers les zones touchées très dangereuses. Nous conseillons aux volontaires de faire des dons directement aux associations spécialisées.
36
  <br>
37
  <br>
 
 
1
  INTRO_TEXT_EN = """
2
  <div style="text-align: left;">
3
+ Nt3awnou نتعاونو is a non-profit organization and a collaborative platform dedicated to aiding individuals impacted by the recent earthquake in Morocco. Our core mission is to streamline and coordinate timely assistance for everyone affected. How do we achieve this? We assist those in need by allowing them to communicate their location and the specific aid they require, either by completing a form or sending a voice message via WhatsApp to the number <b>0602838166</b>. Once we receive and process this information, it can be viewed in our dashboard, which allows NGOs to organize and precisely target their interventions, ensuring swift assistance reaches those in need. Any organization that has taken initiative in a particular area can notify us by completing a dedicated form. This data is also incorporated into the dashboard so that other NGOs can help affected areas that still haven't received help.
4
  <br>⚠️ Warning : There are still rocks falling down the mountains, making the roads to the affected areas very dangerous. We advise volunteers to donate directly to specialized NGOs.<br>
5
  <br>
6
  <b>✉️ You can contact us via email at </b><a href="mailto:nt3awnoumorocco@gmail.com">nt3awnoumorocco@gmail.com</a> or via Instagram <a href="https://www.instagram.com/nt3awnou_morocco/">@nt3awnou_morocco</a> <br>
 
14
  INTRO_TEXT_AR = """
15
  <div style="text-align: right;-webkit-rtl-ordering: logical;">
16
 
17
+ نتعاونو هي منصة تعاونية غير ربحية لمساعدة الأفراد المتضررين من الزلزال الأخير في المغرب. مهمتنا هي تسهيل تقديم المساعدة في الوقت المناسب و بفاعلية و تنظيم لجميع المتضررين. كيفاش؟ كنعاونو الناس لي محتاجين للمساعدة إعلمونا بمكانهم و نوع المساعدة لي محتاجين ليها سواء عن طريق ملأ الاستمارة أو عن طريق إرسال تسجيل صوتي عبر واتساب إلى رقم مخصص<b>0602838166</b>. بعد معالجة هاد المعلومات، كنجمعوهم فخريطة كتمكن الجمعيات من تنظيم و استهداف تدخلاتهم بدقة باش توصل المساعدة للناس لي محتاجين في وقت أسرع. و كل جمعية قامت باللازم في منطقة معينة تقدر تعلمنا عن طريق ملأ استمارة مخصصة لهاد الأمر. هاد المعلومات كذلك كتضاف للخريطة باش باقي الجمعيات يتاجهو لمناطق أخرى مازال ماوصلاتهم مساعدة.
18
  <br> تحذير : نظرا لخطورة الطرقان بسبب الحجر اللي كيطيح من الجبال، ننصح المتطوعين اللي بغاو ي��اعدو المناطق المتضررة يتبرعو عن طريق الجمعيات المختصة⚠️
19
  <br>
20
  <br>
 
27
  </div>
28
  <br>
29
  """
30
+
31
  INTRO_TEXT_FR = """
32
  <div style="text-align: left;">
33
+ Nt3awnou نتعاونو est une plateforme collaborative à but non-lucratif dédiée à l'aide aux personnes touchées par le récent tremblement de terre au Maroc. Notre mission principale est de rationaliser et de coordonner une assistance rapide pour toutes les personnes touchées. Comment y parvenons-nous ? Nous aidons les personnes dans le besoin en leur permettant de communiquer leur localisation et l'aide spécifique dont elles ont besoin, soit en remplissant un formulaire, soit en envoyant un message vocal via WhatsApp à un numéro <b>0602838166</b>. Une fois reçues et traitées, ces informations peuvent être consultées dans notre tableau de bord, qui permet aux associations d'organiser et de cibler précisément leurs interventions, afin que l'aide parvienne rapidement à ceux qui en ont besoin. Toute organisation ayant pris une initiative dans une zone particulière peut nous en informer en remplissant un formulaire prévu à cet effet. Ces données sont également intégrées au tableau de bord afin que d'autres associations puissent aider les zones touchées qui n'ont pas encore reçu d'aide.
34
  <br> ⚠️ Avertissement : Il y a encore des chutes de pierres dans les montagnes, ce qui rend les routes vers les zones touchées très dangereuses. Nous conseillons aux volontaires de faire des dons directement aux associations spécialisées.
35
  <br>
36
  <br>