Cada membre de la comunitat escolar disposa del seu usuari @cfaclot.cat. Aquest usuari és personal i intransferible.
A continuació s'enllacen els documents per a la gestió d'aquests usuaris.
Estructura jeràrquica dels Grups Workspace CFACLOT:
ALUMNES ( ACGS, ANGLÈS, COMPETIC, GES )
ACGS ( ACGSA, ACGSB )
ANGLÈS ( ANGLES1, ANGLES2, ANGLES3 )
ANGLES1 ( ANGLES1A, ANGLES1B )
ANGLES2 ( ANGLES2A, ANGLES2B )
ANGLES3 ( ANGLES3A, ANGLES3B, ANGLES3C )
COMPETIC ( COMPETIC1, COMPETIC2, COMPETIC3 )
COMPETIC1 ( COMPETIC1A, COMPETIC1B )
COMPETIC2 ( COMPETIC2A, COMPETIC2B )
COMPETIC3 ( COMPETIC3A, COMPETIC3B )
GES ( GES1, GES2 )
GES1 ( GES1A, GES1B )
GES2 ( GES2A, GES2B )
Com que la matricula del nostre centre és viva, cada tutor s'encarrega de mantenir l'estructura de cada grup base actualitzada -altes i baixes. D'aquesta manera els grups superiors sempre es mantenen actualitzats.
Vista de la pantalla d'administració de grups del Goglle Worspace CFACLOT
Cada inici de curs cal donar d'alta els nous alumnes en les seves unitats organitzatives corresponents.
A partir de les llistes d'alumnes matriculats es genera, mitjançant eines desenvolupades a l'escola, els arxius .csv que permeten la carrega massiva dels nous correus.
Actualment aquest procés s'implementa amb l'ajuda d'un full de càlcul desenvolupat a l'escola.
No obstant, i donada la complexitat del procés, s'ha experimentat amb un programa Python per agilitzar i millorar les altes massives. Aquest programa també està essent desenvolupat pels professors de l'escola.
Generar_Emails.ipynb
# -*- coding: utf-8 -*-
"""Generar_Emails.ipynb
Original file is located at
https://colab.research.google.com/drive/1-P-iueZJ7L8gZfrUonsZkuEitvKG4GM5
"""
#Imports
import pandas as pd
import csv
import random
import string
from datetime import datetime
#Muntar la unitat ADMIN del Google Drive
from google.colab import drive
drive.mount('/content/drive')
"""Funcions per generar un password.
Utilitzem la segona **generar_random_password**
"""
def password():
random.seed(datetime.now())
p = ( random.random() * 10.000 )
return p
## llista de caràcters admesos al password
cars = list(string.ascii_letters + string.digits + "!@#$%^&*()")
def generar_random_password():
## longitud del password
length = 8
## shuffling els caràcters
random.shuffle(cars)
## agafar caràcters de la llista aleatòriament
password = []
for i in range(length):
password.append(random.choice(cars))
## shuffling el password resultant
random.shuffle(password)
## convertir la llista a string i retornar
p = "".join(password)
return p
"""
Funció per substituir els caràcters no permesos a una adreça de correu.
"""
def replace_esp_car( s ):
s = s.replace("á","a")
s = s.replace("à","a")
s = s.replace("ä","a")
s = s.replace("é","e")
s = s.replace("è","e")
s = s.replace("ë","e")
s = s.replace("í","i")
s = s.replace("ì","i")
s = s.replace("ï","i")
s = s.replace("ó","o")
s = s.replace("ò","o")
s = s.replace("ö","o")
s = s.replace("ú","u")
s = s.replace("ù","u")
s = s.replace("ü","u")
s = s.replace("ñ","n")
s = s.replace("ª","")
return s
#A la variable f_alumnes indicar el fitxer a tractar.
#El fitxer f_csv_output serà l'importable a Google Workspace
#Nom del fitxer amb la llista dels alumnes
f_alumnes = "Llista_Alumnes_TEST.txt"
#Path al Drive del fitxer
path = "/content/drive/Shareddrives/ADMIN/colab/"
#Unitat organitzativa corresponent a Google Workspace
UO = "/Alumnes/GES/GES1"
#Carregem el fitxer a la variables alumnes
fitxer = path + f_alumnes
id_fitxer = open(fitxer,"r")
alumnes = id_fitxer.readlines()
#Obrim l'arxiu .csv per anar escrivint en ell
#El fitxer f_csv_output serà l'importable més tard a Google Workspace
f_csv_output = path + "output.csv"
#Capçalera del .csv
cap_csv = {"First Name": [],
"Last Name": [],
"Email Address": [],
"Password": [],
"Org Unit Path": []}
#Definim un dataframe amb la capçalera del .csv. A aquest dataframe anirem afegint alumnes i després ho exportarem a output.csv
df = pd.DataFrame(cap_csv)
#Procesem línia a línia la llista alumnes
i = 0
for alumne in alumnes:
i += 1
#Converteix la cadena a minúscules i elimina blancs sobrants
s = alumne.lower()
s = " ".join(s.split())
#Elimina caràcters no permesos a un email
s = replace_esp_car(s)
#Extreu nom i cognoms des de s
pos_coma = s.find(",")
cgs = s[0:pos_coma].strip()
nom = s[pos_coma + 1:len(s)].strip()
#Deixem sense més tractament nom i cgs per inserir-ho al dataframe
nom_df = nom.upper()
cgs_df = cgs.upper()
#Extreu cognom 1 i cognom 2 des de cgs
pos_blanc = cgs.find(" ")
cg_1 = cgs[0:pos_blanc].strip()
cg_2 = cgs[pos_blanc + 1:len(cgs)].strip()
#Eliminem blancs de nom, cg_1 i cg_2
nom = nom.replace(" ", "")
cg_1 = cg_1.replace(" ", "")
cg_2 = cg_2.replace(" ", "")
#cg_2 només els dos primers caràcters
cg_2 = cg_2[0:2]
#print(s)
email = nom + "." + cg_1 + "." + cg_2 + "@cfaclot.cat"
p = generar_random_password()
nou_alumne = {'First Name':nom_df, 'Last Name':cgs_df, 'Email Address':email, 'Password':p, 'Org Unit Path':UO}
#afegir nou alumne al dataframe
df = df.append(nou_alumne, ignore_index=True)
print(email)
#print(" ")
#print(df)
df.to_csv(f_csv_output)
"""# New Section
# New Section
"""
El centre disposa d'un protocol de restauració de contrasenyes i de gestió integral de la problemàtica d'un ús massiu dels correus.
Especificar el protocol