Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Hackfest UK 2014/Email Logging: Difference between revisions

From MoodleDocs
No edit summary
No edit summary
 
(24 intermediate revisions by 4 users not shown)
Line 1: Line 1:
'''Message Logging and Reporting'''
'''Message Logging and Reporting'''


*Contact Names: (please add name if interested)
*Larry Zoumas (larry(dot)zoumas@xtractor.se)
*Martin Sandberg (martin(dot)sandberg@xtractor.se)
*David Aylmer (david(d)aylmer(a)floream(d)com)
*Rob Hardy (r(dot)hardy(at)yorksj(dot)ac(dot)uk)
*Marcus Green (m(dot)green(at)yorksj(dot)ac(dot)uk)


*Contact Name: Larry Zoumas (larry.zoumas@xtractor.se) Martin Sandberg (martin.sandberg@xtractor.se)
'''Description'''
*please add name if interested
*This plugin will allow admins and teachers to search through messages sent to users. The purpose is to easily answer the question of whether or not a user was notified of an important event, such as a face-to-face session, quiz deadline, etc.


Changing the focus to messaging instead of only emails
'''Notes:'''
*Not all emails go through the messaging system. This needs to be investigated and fixed.
*We might want to allow a place for developers to add hooks or decorate this functionality.
*We are not sure how this will work with email digests. We should probably log when the digest email goes out.


Notes:
'''Email functions not using the messaging system'''
*Not all emails go through the messaging scary.
*Self Enrolment Enrolment plugin (core)
*We might want to make a place to hook into this or decorate it
*moodle account being locked out after multiple invalid login attempts. (lockoutemailbody) (core)
*When a badge has been awarded (core)
*Emailing admins about failed login attempts (core)
*To alert support email if log table can not be written into (core)
*Welcome emails (core)
*Password reset (core)
*Confirmation email activation link (core)
*Confirmation two (emailpasswordconfirmation) (core)
*Password change is disabled email (core)
*When using the email message output plugin (core)
*When sending forum digests (forum cron - core)
*Journal mod (journal cron -core)
*When oublogs are moderated and require confirmation by the author (core)
*If user changes email address confirmation is required (core)
NOTE: Many third party (moodle partner) add-ons will use direct calls to email_to_user. This function should be better encapsulated in regards to information hiding design principles.


'''Capability''':
 
*Can View own messages
'''Capabilities''':
*Can View other messages
*Can view own messages
*Can View courses you own
*Can view other messages
*Can view messages in your courses (teacher)
*Can view message body information


'''Options''':
'''Options''':


*Optionally log body
*Optionally log body of message


'''Proposed Table Schema'''
'''Proposed Table Schema'''
Line 25: Line 50:
*id
*id
*from (user_id)
*from (user_id)
*from_address (email address or identifier when the message was sent)
*message_type (FK mdl_message_provider)
*message_type (FK mdl_message_provider)
*moduleid
*moduleid
Line 37: Line 63:
*userid
*userid
*to_address (email address or identifier when the message was sent)
*to_address (email address or identifier when the message was sent)
*from_address (email address or identifier when the message was sent)
*time
*time
*status
*status
Line 44: Line 69:
*id
*id
*body_text
*body_text
*file_id (FK to mdl_files to see attachment size, etc)
*email_headers (if any)
*message_format (html or text)


[[Image:moodle_message_log.png|ER diagram of tables]]


'''Reporting'''
'''Reporting'''
*Search system-wide
Output headings suggested order (left to right)
*Search by course and activity
*Message type
*Search by user
*Course category (with link to category)
*Search by message_type
*Course (with link to course)
*Search by sent datetime
*Component/module (with link to mod e.g. forum post/discussion etc)
*Search by subject
*Peview body link (html/text)
*Sender Fullname (link to profile)
*Recipient Fullname (with link to profile)
*Recipient email/jabberid/mobile phoine number/etc sent to
*subject
*time sent
*status (success)
 
'''filters'''
*Download as spreadsheet
*Paging number of users
*Filter by course
*Filter by activity
*Filter by user
*Filter by message_type
*Filter by sent datetime
*Filter by subject
 
'''Tracker issue'''
 
[https://tracker.moodle.org/browse/MDL-45160 Extend messaging system to log messages sent...]

Latest revision as of 11:54, 29 April 2014

Message Logging and Reporting

  • Contact Names: (please add name if interested)
  • Larry Zoumas (larry(dot)zoumas@xtractor.se)
  • Martin Sandberg (martin(dot)sandberg@xtractor.se)
  • David Aylmer (david(d)aylmer(a)floream(d)com)
  • Rob Hardy (r(dot)hardy(at)yorksj(dot)ac(dot)uk)
  • Marcus Green (m(dot)green(at)yorksj(dot)ac(dot)uk)

Description

  • This plugin will allow admins and teachers to search through messages sent to users. The purpose is to easily answer the question of whether or not a user was notified of an important event, such as a face-to-face session, quiz deadline, etc.

Notes:

  • Not all emails go through the messaging system. This needs to be investigated and fixed.
  • We might want to allow a place for developers to add hooks or decorate this functionality.
  • We are not sure how this will work with email digests. We should probably log when the digest email goes out.

Email functions not using the messaging system

  • Self Enrolment Enrolment plugin (core)
  • moodle account being locked out after multiple invalid login attempts. (lockoutemailbody) (core)
  • When a badge has been awarded (core)
  • Emailing admins about failed login attempts (core)
  • To alert support email if log table can not be written into (core)
  • Welcome emails (core)
  • Password reset (core)
  • Confirmation email activation link (core)
  • Confirmation two (emailpasswordconfirmation) (core)
  • Password change is disabled email (core)
  • When using the email message output plugin (core)
  • When sending forum digests (forum cron - core)
  • Journal mod (journal cron -core)
  • When oublogs are moderated and require confirmation by the author (core)
  • If user changes email address confirmation is required (core)

NOTE: Many third party (moodle partner) add-ons will use direct calls to email_to_user. This function should be better encapsulated in regards to information hiding design principles.


Capabilities:

  • Can view own messages
  • Can view other messages
  • Can view messages in your courses (teacher)
  • Can view message body information

Options:

  • Optionally log body of message

Proposed Table Schema

messaging_log

  • id
  • from (user_id)
  • from_address (email address or identifier when the message was sent)
  • message_type (FK mdl_message_provider)
  • moduleid
  • courseid
  • subject
  • body_id
  • time

messaging_log_user

  • id
  • message_log_id (FK to messaging log)
  • userid
  • to_address (email address or identifier when the message was sent)
  • time
  • status

messaging_log_body

  • id
  • body_text
  • file_id (FK to mdl_files to see attachment size, etc)
  • email_headers (if any)
  • message_format (html or text)

ER diagram of tables

Reporting Output headings suggested order (left to right)

  • Message type
  • Course category (with link to category)
  • Course (with link to course)
  • Component/module (with link to mod e.g. forum post/discussion etc)
  • Peview body link (html/text)
  • Sender Fullname (link to profile)
  • Recipient Fullname (with link to profile)
  • Recipient email/jabberid/mobile phoine number/etc sent to
  • subject
  • time sent
  • status (success)

filters

  • Download as spreadsheet
  • Paging number of users
  • Filter by course
  • Filter by activity
  • Filter by user
  • Filter by message_type
  • Filter by sent datetime
  • Filter by subject

Tracker issue

Extend messaging system to log messages sent...