Comment consolider la liste de présence de MS Teams ?
Source : Stack Overflow [microsoft-teams]
Définition de la présence
Je pense que le principal problème ici est une définition pertinente de la présence. Pour le cas d’utilisation spécifique enseignant (= organisateur) et étudiants, c’est simple :
« La présence est la période pendant laquelle l’enseignant/organisateur et les étudiants sont tous présents. »
Justification :
Si les étudiants se connectent tôt, le cours n’a pas encore commencé. Ils n’assistent à rien.
Si les étudiants se déconnectent alors que l’enseignant est toujours connecté, ils manqueront quelque chose.
Peu importe si les étudiants se déconnectent/reconnectent pendant l’absence de l’enseignant, ils ne manquent rien. (Note : c’est une différence majeure entre la salle de classe virtuelle et réelle.)
C’est exactement la façon dont MS Teams conçoit la présence. Depuis le site MS Office :
Gardez à l’esprit que vous ne pourrez télécharger le rapport de présence que pendant que la réunion est en cours et que les participants sont encore présents. […] Si les participants rejoignent une réunion avant l’organisateur, leur heure d’arrivée correspondra à l’heure à laquelle l’organisateur a rejoint la réunion.
Les données ont un gros problème : l’heure de fin de la réunion est manquante. L’organisateur ne peut pas partir, car alors le rapport ne peut pas être téléchargé. Mais l’organisateur téléchargera toujours après la fin du cours. Vous devrez fournir la date de fin manuellement ou utiliser une
Réponse
Avec cette définition, nous pouvons centrer toutes les périodes de temps sur l’organisateur. Il se passe beaucoup de choses dans le code. J’ai commenté du mieux que j’ai pu.
` # neccessary inputs (not in original data)
end_timestamp = pd.Timestamp(‘2020-03-08 17:40’)
organizer_name = ‘Organiser Name’
# Pivot User Action values to columns; we don't need 'Join before'
df['Timestamp'] = pd.to_datetime(df['Timestamp'])
df['User Action'] = df['User Action'].str.replace('Joined before', 'Joined')
df = df.set_index(['Full Name', 'User Action'], append=True).unstack()
df.columns = df.columns.get_level_
(Réponse tronquée)