-
Notifications
You must be signed in to change notification settings - Fork 0
/
envia_invita_acces.md.js
236 lines (115 loc) · 7.99 KB
/
envia_invita_acces.md.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
// Script para enviar invitaciones de Google Calendar a personas inscriptas en el taller de [MODIFICAR: nombre del taller] e invitarlas a un evento en Google Calendar
// Documentación: https://developers.google.com/apps-script/reference/spreadsheet/sheet,
// https://developers.google.com/apps-script/reference/mail,
// https://developers.google.com/apps-script/reference/utilities,
// https://developers.google.com/apps-script/reference/calendar
// Función general para ejecutar todo el script
function enviaMailYAgregaCalendario() {
// ENVIAR MAIL A INSCRIPTES EN EL TALLER
// Trae correos de la spreadsheet de inscripciones
var url_validate = "[MODIFICAR: url de planilla de inscripción]";
var ActiveSpreadsheet = SpreadsheetApp.openByUrl(url_validate);
var ActiveSheet = ActiveSpreadsheet.getSheets()[0];
var data = ActiveSheet.getDataRange().getValues();
// Crea envío de mail y entrada en la planilla para confirmarlo
for(var i = 1; i < data.length; i++) {
// Indica columna para verificar si ya fue enviado un mail - o sea, no envía mails de confirmación duplicados
if (ActiveSheet.getRange(i+1, 32).isBlank()) {
// Encuentra nombre y mail
var nombre = data[i][1];
var mail = data[i][4];
// Mensaje que va en el mail a la persona inscripta
// Para usar emojis en html, ver: https://www.w3schools.com/html/html_emojis.asp, https://www.w3schools.com/charsets/ref_emoji.asp, https://emojipedia.org/
var message =
"<p style='text-align:center'><img style='max-width: 250px; height: auto;' src='https://www.metadocencia.org/img/MD_original.png' alt='Logo de MetaDocencia'></p>" +
"<p>Gracias por tu interés en participar en los cursos de MetaDocencia 🤗.</p>" +
"<p>El <b>taller [MODIFICAR: nombre del taller. Ejemplo: piloto de MetaEvaluaciones: enseñar evaluando]</b> se llevará a cabo el <b>próximo [fecha. Ejemplo: miércoles 7 de diciembre de 17 a 19 (Hora Argentina)].</b></p>" +
"<p>Te agregamos a un evento en Google Calendar en la fecha y hora correspondientes al curso. El enlace a Zoom se enviará en un mail de recordatorio un día antes del taller.</p>" +
"<p>Todos nuestros espacios siguen <a href='https://www.metadocencia.org/cdc/'>estas pautas de convivencia</a>. Tu participación en este evento asume que aceptás seguir estas pautas. Cualquier consulta, escribinos a cursos@metadocencia.org</p>" +
"<p>¡Te esperamos!</p>" +
"<p><br></p>" +
"<p style='text-align:center; color:white; background-color:#0b5394;'><br><a href='https://www.metadocencia.org/' style='color:white'>www.metadocencia.org</a><br><br><a href='https://www.linkedin.com/company/metadocencia'><img style='max-width: 2.0em; height: auto;' src='https://www.metadocencia.org/img/linkedin-brands-white.png' target='_blank' alt='LinkedIn'></a> <a href='https://www.facebook.com/metadocencia'><img style='max-width: 2.0em; height: auto;' src='https://www.metadocencia.org/img/facebook-square-brands-white.png' target='_blank' alt='Facebook'></a> <a href='https://floss.social/@MetaDocencia'><img style='max-width: 2.0em; height: auto;' src='https://www.metadocencia.org/img/mastodon-logo.PNG' target='_blank' alt='Mastodon'></a> <a href='https://www.twitter.com/metadocencia'><img style='max-width: 2.0em; height: auto;' src='https://www.metadocencia.org/img/twitter-square-brands-white.png' target='_blank' alt='Twitter'></a> <a href='https://www.youtube.com/metadocencia'><img style='max-width: 2.0em; height: auto;' src='https://www.metadocencia.org/img/youtube-brands-white.png' target='_blank' alt='YouTube'></a><br><br></p>";
// Crea asunto del mail
var Subject = "Te inscribiste al taller [MODIFICAR: nombre del taller. Ejemplo: piloto de MetaEvaluaciones: enseñar evaluando]";
var SendTo = mail;
// Arma el mail a ser enviado
MailApp.sendEmail({
to: SendTo,
from: alias[0],
name: "MetaDocencia",
subject: Subject,
htmlBody: message,
});
// Escribe en la planilla que el mail fue enviado
ActiveSheet.getRange(i+1, 32).setValue("Sí");
}
}
// AGREGAR INVITADES AL EVENTO DEL TALLER
// Encuentra mail
for(var i = 1; i < data.length; i++) {
// Indica columna para verificar si la persona ya está invitada
if (ActiveSheet.getRange(i+1, 33).isBlank()) {
var mail = data[i][4];
let attendeeEmail = mail; // Mail de la persona que se quiere invitar
// OBSERVACIONES SOBRE COMO ENCONTRAR LOS IDS DEL CALENDARIO Y DEL EVENTO
// A continuación necesitamos los IDs del calendario usado y del evento del taller. Para eso, debes ir al calendario Cursos MetaDocencia > clicar en el evento correspondiente > editar (ícono de lápiz) > Más acciones > Publicar evento > Copiar el enlace de abajo, sin HTML.
// El calendarId es lo que viene después de "&tmsrc=", hasta el final del enlace.
// El eventoIdOriginal es lo que está entre "&tmeid=" y "&tmsrc=".
let calendarId = "[MODIFICAR: ID del calendario]"; // ID del calendario que contiene el evento (Cursos MetaDocencia)
let eventoIdOriginal = "[MODIFICAR: ID del evento]";
// El ID arriba está encoded en base 64. Abajo, lo decodamos:
var eventodecoded = Utilities.base64Decode(eventoIdOriginal, Utilities.Charset.UTF_8);
var eventId = Utilities.newBlob(eventodecoded).getDataAsString().split(" ")[0];
// Verifica si el calendario y el evento fueron encontrados por el script
let calendar = CalendarApp.getCalendarById(calendarId);
if (calendar === null) {
console.log("Calendario no encontrado", calendarId);
return;
}
let event = calendar.getEventById(eventId);
if (event === null) {
console.log("Evento no encontrado", eventId);
return;
}
// Agrega invitade al evento en Google Calendar
event.addGuest(attendeeEmail);
// Escribe en la planilla que el la persona fue invitada al evento en Calendar
ActiveSheet.getRange(i+1, 33).setValue("Sí");
}
}
// ENVIAR MAIL SI HAY REQUERIMIENTO DE ACCESIBILIDAD
// Crea envío de mail y entrada en la planilla para confirmarlo
for(var i = 1; i < data.length; i++) {
// Indica columnas para verificar si hay respuesta de accesibilidad
if (!ActiveSheet.getRange(i+1, 8).isBlank() && ActiveSheet.getRange(i+1, 34).isBlank()) {
// Crea lista de preguntas y respuestas desde la planilla al mail que se envía a Accesibilidad
var datos_string = "<ul>";
for (col = 1; col < 10; col++) {
var pregunta = data[0][col];
var respuesta = data[i][col];
if (col == 7) {
datos_string += "<li>" + pregunta + ": <b>" + respuesta + "</b></li>";
} else {
datos_string += "<li>" + pregunta + ": " + respuesta + "</li>";
}
}
datos_string += "</ul>";
// Mensaje que va en el mail a Accesibilidad
var message =
"<p>Un nuevo registro en el Taller [MODIFICAR: nombre del taller. Ejemplo: MetaEvaluaciones] respondió cosas de accesibilidad.</p>" +
"<p>" + data[i][1] + " " + data[i][2] + " <" + data[i][4] + "> respondió:</p>" +
datos_string;
// Crea asunto del mail
var Subject = "[MODIFICAR: Taller [nombre del taller. Ejemplo: MetaEvaluaciones]] Requerimiento de accesibilidad de " + data[i][1] + " " + data[i][2];
// Arma el mail a ser enviado
MailApp.sendEmail({
to: "accesibilidad@metadocencia.org",
cc: "info@metadocencia.org",
subject: Subject,
htmlBody: message,
});
// Escribe en la planilla que el mail fue enviado al equipo accesibilidad
ActiveSheet.getRange(i+1, 34).setValue("Sí");
}
}
}