Details

    • Type: Sub-task
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.5, 2.3.3, 2.6
    • Fix Version/s: 2.8
    • Component/s: Forum
    • Labels:
    • Environment:
      All
    • Story Points (Obsolete):
      100

      Description

      How about the ability to post to the forums via email?

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

              Hide
              dougiamas Martin Dougiamas added a comment -

              Assigning to me temporarily because Vy-Shane no longer works for Moodle HQ.

              Show
              dougiamas Martin Dougiamas added a comment - Assigning to me temporarily because Vy-Shane no longer works for Moodle HQ.
              Hide
              profboy profboy added a comment -

              One of the most challenging aspects of online instruction is creating a natural conversation in the forums. This is especially hard with small class sizes. By allowing replies to forum posts by email, it would help speed up the response time which would make the forum feel more interactive and more like a natural conversation.

              There has been some discussion of this functionality:

              <a href="http://moodle.org/mod/forum/discuss.php?d=14027">Reply to forum by email</a>
              <a href="http://moodle.org/mod/forum/discuss.php?d=109517">Post to forum via email</a>

              Someone has done some technical planning for this feature using a session ID in the email.
              <a href="http://docs.moodle.org/en/Student_projects/Email_interface">Email interface</a>

              Show
              profboy profboy added a comment - One of the most challenging aspects of online instruction is creating a natural conversation in the forums. This is especially hard with small class sizes. By allowing replies to forum posts by email, it would help speed up the response time which would make the forum feel more interactive and more like a natural conversation. There has been some discussion of this functionality: <a href="http://moodle.org/mod/forum/discuss.php?d=14027">Reply to forum by email</a> <a href="http://moodle.org/mod/forum/discuss.php?d=109517">Post to forum via email</a> Someone has done some technical planning for this feature using a session ID in the email. <a href="http://docs.moodle.org/en/Student_projects/Email_interface">Email interface</a>
              Hide
              vrrandall Vernellia Randall added a comment -

              This is an important management tool for teachers. It would allow me to post materials and news items without having to enter moodle. I manage 3-4 courses a semester on moodle having to cut and paste items into forums is time consuming.

              Show
              vrrandall Vernellia Randall added a comment - This is an important management tool for teachers. It would allow me to post materials and news items without having to enter moodle. I manage 3-4 courses a semester on moodle having to cut and paste items into forums is time consuming.
              Hide
              salvetore Michael de Raadt added a comment -

              I just stumbled across this issue while I was looking for another.

              Certainly adding this potential would certainly be very useful. I monitor forum posts in my courses using my email client and it would be good to be able to respond quickly this way.

              Another thought I had was that this could leave the forums a target for spoofed messages. It is possible to forge an email sender in an email. To work around this, the header could be checked, but an additional peice of hidden secret information, relevant to the thread, could be included in messages.

              Michael;

              Show
              salvetore Michael de Raadt added a comment - I just stumbled across this issue while I was looking for another. Certainly adding this potential would certainly be very useful. I monitor forum posts in my courses using my email client and it would be good to be able to respond quickly this way. Another thought I had was that this could leave the forums a target for spoofed messages. It is possible to forge an email sender in an email. To work around this, the header could be checked, but an additional peice of hidden secret information, relevant to the thread, could be included in messages. Michael;
              Hide
              ktuley Ken Tuley added a comment -

              i think this feature will increasingly become "necessary". While it is possible to call up the browser and thus the forum to post, the ability to post via email should certainly be considered. I also understand it's not an easy fix, as we don't want anyone not associated with the forum to be able to post. (ie spammers) I think there could be some notification on the post, that it was sent via email. (kind of like the "edited by" line that is added when you edit a post.

              and obviously it should be a "feature" that can be controlled via roles.

              Thanks for considering this!

              Show
              ktuley Ken Tuley added a comment - i think this feature will increasingly become "necessary". While it is possible to call up the browser and thus the forum to post, the ability to post via email should certainly be considered. I also understand it's not an easy fix, as we don't want anyone not associated with the forum to be able to post. (ie spammers) I think there could be some notification on the post, that it was sent via email. (kind of like the "edited by" line that is added when you edit a post. and obviously it should be a "feature" that can be controlled via roles. Thanks for considering this!
              Hide
              jlynch John Lynch added a comment -

              I further vote that this should be implemented. One of my faculty wrote to me last week, asking me why Sakai could do this but we couldn't:

              https://www.indiana.edu/~sakaikb/display.cgi?docid=ardh

              Because we are a research-focused university, rather than a teaching-focused university, we have very little leverage with regard to how our faculty use Moodle in their instruction. We get much better long-term results when we can initially fit Moodle into their existing workflow, sort of a "first one's free" model. And right now (as this professor's email indicated), our faculty don't want to have to log into Moodle, find the announcements forum, and then compose their message; they want to continue using their existing email workflow to connect with students, but have an email address for the forum that they can CC every time they send an email, so that their emails are archived along with any other course material.

              Show
              jlynch John Lynch added a comment - I further vote that this should be implemented. One of my faculty wrote to me last week, asking me why Sakai could do this but we couldn't: https://www.indiana.edu/~sakaikb/display.cgi?docid=ardh Because we are a research-focused university, rather than a teaching-focused university, we have very little leverage with regard to how our faculty use Moodle in their instruction. We get much better long-term results when we can initially fit Moodle into their existing workflow, sort of a "first one's free" model. And right now (as this professor's email indicated), our faculty don't want to have to log into Moodle, find the announcements forum, and then compose their message; they want to continue using their existing email workflow to connect with students, but have an email address for the forum that they can CC every time they send an email, so that their emails are archived along with any other course material.
              Hide
              danilot Imbu Danilot added a comment -

              Any news on this?
              please advise, this is now a fundamental functionality, keep in mind most work is done through smarthphones nowadays and replying to forum via email is the obvious things users do....

              Thanks in advance
              Imbu

              Show
              danilot Imbu Danilot added a comment - Any news on this? please advise, this is now a fundamental functionality, keep in mind most work is done through smarthphones nowadays and replying to forum via email is the obvious things users do.... Thanks in advance Imbu
              Hide
              antoniojmv Antonio Javier Martínez added a comment - - edited

              Hello everybody,

              I've tried to get a solution for this issue in a project that I did as Final Project of my Bachelor Thesis.

              http://repositorio.bib.upct.es:8080/dspace/bitstream/10317/2795/1/pfc4377.pdf

              Show
              antoniojmv Antonio Javier Martínez added a comment - - edited Hello everybody, I've tried to get a solution for this issue in a project that I did as Final Project of my Bachelor Thesis. http://repositorio.bib.upct.es:8080/dspace/bitstream/10317/2795/1/pfc4377.pdf
              Hide
              dobedobedoh Andrew Nicols added a comment -

              It was suggested that this would be possible using the VERP support that Moodle has, but this was never implemented. In fact, so few people are using VERP in Moodle 2 that no-one had realised that it was broken until last week and as a result, we plan to remove the support for module bounce handling.

              Additionally, the SMTP sending of e-mail has been removed in Moodle 2 - PHPmailer is used instead so the method suggested would need alteration for a supported version of Moodle.

              It should still be possible to modify the forum module to support fetching of e-mail in some fashion, but there are a number of potential caveats with this kind of approach:

              • security - what's to stop someone from forging the sender e-mail address to post as another user
              • polling mechanism - standard cron or other?

              Additionally, there are plans afoot (MDL-21538) to move to a new forum system - Forum-NG. I think it would be wise to wait until a decision has been made on this before any decisions on a development direction are reached.

              Show
              dobedobedoh Andrew Nicols added a comment - It was suggested that this would be possible using the VERP support that Moodle has, but this was never implemented. In fact, so few people are using VERP in Moodle 2 that no-one had realised that it was broken until last week and as a result, we plan to remove the support for module bounce handling. Additionally, the SMTP sending of e-mail has been removed in Moodle 2 - PHPmailer is used instead so the method suggested would need alteration for a supported version of Moodle. It should still be possible to modify the forum module to support fetching of e-mail in some fashion, but there are a number of potential caveats with this kind of approach: security - what's to stop someone from forging the sender e-mail address to post as another user polling mechanism - standard cron or other? Additionally, there are plans afoot ( MDL-21538 ) to move to a new forum system - Forum-NG. I think it would be wise to wait until a decision has been made on this before any decisions on a development direction are reached.
              Hide
              jgramp Jessica Gramp added a comment -

              The way Yammer seems to get around people forging sender e-mail addresses, is by sending another email to the user with a unique link they must click on in order to confirm it originated from that email address and that they would like to post their comment to the forum.

              Show
              jgramp Jessica Gramp added a comment - The way Yammer seems to get around people forging sender e-mail addresses, is by sending another email to the user with a unique link they must click on in order to confirm it originated from that email address and that they would like to post their comment to the forum.
              Hide
              stevelee Steve Lee added a comment -

              I see this as essential. My inbox is critical for my workflow. If I get a notification I want to reply from there, not login and search and then reply.

              Like Google groups being, able to drive by either web UI or email meets everyone's preferences.

              Show
              stevelee Steve Lee added a comment - I see this as essential. My inbox is critical for my workflow. If I get a notification I want to reply from there, not login and search and then reply. Like Google groups being, able to drive by either web UI or email meets everyone's preferences.
              Hide
              stuartlamour Stuart Lamour added a comment -

              The primary issue i have with this is one of flow.
              http://en.wikipedia.org/wiki/Flow_(psychology)

              Forums are often used by tutors get students to engage in learning.

              Just like with other websites notifications received by email help drive users to the actually website and increase engagement with the other materials available on the site.

              Reducing forums to a mailinglist isn't something i can see as advantageous to teaching with moodle - personally i'd disable it for all the reasons above.

              I understand why other commenters would like this feature, but perhaps it should be a plugin (i imagine it'll take a lot of resources to support and maintain which moodle hq might not have at them moment) rather than part of core?

              Show
              stuartlamour Stuart Lamour added a comment - The primary issue i have with this is one of flow. http://en.wikipedia.org/wiki/Flow_(psychology ) Forums are often used by tutors get students to engage in learning. Just like with other websites notifications received by email help drive users to the actually website and increase engagement with the other materials available on the site. Reducing forums to a mailinglist isn't something i can see as advantageous to teaching with moodle - personally i'd disable it for all the reasons above. I understand why other commenters would like this feature, but perhaps it should be a plugin (i imagine it'll take a lot of resources to support and maintain which moodle hq might not have at them moment) rather than part of core?
              Hide
              Neil Neil added a comment -

              I would be very keen to see this feature implemented.

              Show
              Neil Neil added a comment - I would be very keen to see this feature implemented.
              Hide
              damyon Damyon Wiese added a comment -

              We just discussed this issue in scrum and I wanted to write down my opinion on the security of this feature.

              Each mailed post will need some metadata attached to it in a way that is preserved when replying so that the author and original post can be determined by reading the reply. This information could be a hash of several fields that is verified by the server and the post is bounced if there is a mismatch of information.

              One key point we are discussing is whether this should include the email address the reply is sent from.

              My view is that this should be optional. From my experience, a students "receiving" email address is often different to their sending email address (e.g. they forward all "jo@uni.edu" to "jo3442@gmail.com"). It would be a bad user experience to reject a post saying they need to reply from a different email address, and the increased security is dubious given that the sender can be easily spoofed. A better way just might be to always send a notification when a reply by email is posted so that the poster can see that someone has spoofed them. At this point they could delete the offending post themselves - or contact someone with permissions to do this for them.

              Show
              damyon Damyon Wiese added a comment - We just discussed this issue in scrum and I wanted to write down my opinion on the security of this feature. Each mailed post will need some metadata attached to it in a way that is preserved when replying so that the author and original post can be determined by reading the reply. This information could be a hash of several fields that is verified by the server and the post is bounced if there is a mismatch of information. One key point we are discussing is whether this should include the email address the reply is sent from. My view is that this should be optional. From my experience, a students "receiving" email address is often different to their sending email address (e.g. they forward all "jo@uni.edu" to "jo3442@gmail.com"). It would be a bad user experience to reject a post saying they need to reply from a different email address, and the increased security is dubious given that the sender can be easily spoofed. A better way just might be to always send a notification when a reply by email is posted so that the poster can see that someone has spoofed them. At this point they could delete the offending post themselves - or contact someone with permissions to do this for them.
              Hide
              derekcx Derek Chirnside added a comment -

              What is the HQ view on this? Is it a priority? If so, why?

              @Steve, you say: "If I get a notification I want to reply from there, not login and search and then reply" What's the 'search' step? If you need to do this, there is something wrong. At present it's click, click, type click done.

              Is this is getting too complex. Damien: "A better way just might be to always send a notification when a reply by email is posted so that the poster can see that someone has spoofed them" Jessica: "The way Yammer seems to get around people forging sender e-mail addresses, is by sending another email to the user with a unique link they must click on in order to confirm it originated from that email address and that they would like to post their comment to the forum" EXTRA EMAILS?????? Security and simplicity of the email option. Pick one.

              Neil Why??

              -Derek, my 2c on a Friday afternoon.

              Show
              derekcx Derek Chirnside added a comment - What is the HQ view on this? Is it a priority? If so, why? @Steve, you say: "If I get a notification I want to reply from there, not login and search and then reply" What's the 'search' step? If you need to do this, there is something wrong. At present it's click, click, type click done. Is this is getting too complex. Damien: "A better way just might be to always send a notification when a reply by email is posted so that the poster can see that someone has spoofed them" Jessica: "The way Yammer seems to get around people forging sender e-mail addresses, is by sending another email to the user with a unique link they must click on in order to confirm it originated from that email address and that they would like to post their comment to the forum" EXTRA EMAILS?????? Security and simplicity of the email option. Pick one. Neil Why?? -Derek, my 2c on a Friday afternoon.
              Hide
              dobedobedoh Andrew Nicols added a comment -

              Just to clarify, I disagree with Damyon's assessment.

              I think that the initial implementation should require that the e-mail be sent from the same address as the user has on record. Although we cannot entirely prevent the spoofing of e-mail (e-mail is an inherently insecure system and should not be entirely trusted), we should make it as hard as possible to spoof out of the box.

              Sure, we could add an option to reduce the `security`, but I think that this should be an option (and not the default), and it should be completed as a separate issue, or at least a separate commit within this issue.

              The way that I am looking at implementing this means that there are only two places we would need to amend things (though possibly 4):

              • forum address generator;
              • forum address processor;
              • global address generator; and
              • global address processor.

              The method I am proposing at the moment is similar to the existing VERP processing that we do:

              LOCAL-PART: ADDRESS PLUS SUBADDRESS
              PLUS: +
              SUBADDRESS: MODULEID MODULEDATA
              MODULEID: BASE64 Encoded ( ID of the Module ) (not the coursemodule)
              MODULEDATA: BASE64 ( MODULEDATARAW )
              MODULEDATARAW: TYPE POSTID VERIFICATIONHASH
              TYPE: Type of message (R = Reply)
              POSTID: The ID of the post being replied to
              VERIFICATIONHASH: MD5 ( POSTHASH USERID )[0-16]
              POSTHASH: A randomly generated hash unique to each post in Moodle
              USERID: The User ID
              

              An example:

              Post Hash: c5109993615308b9faa8b9b5123f688f90862468
              Generated Address: moodle+Cg==UjQ0NTk0MDM0NS1kOWU5MDEzNThhOTUyYTNi@moodle.com
              Length of address: 47
              stdClass Object
              (
                  [address] => moodle+Cg==UjQ0NTk0MDM0NS1kOWU5MDEzNThhOTUyYTNi
                  [mailbox] => moodle
                  [modid] => 10
                  [data] => R445940345-d9e901358a952a3b
                  [type] => R
                  [postid] => 445940345
                  [hash] => d9e901358a952a3b
                  [verified] => 1
              )
              

              When receiving an e-mail, it would be processed as follows:

              1. mail received
              2. retrieve subaddress, and throw away primary address component
              3. extract module id from first section of subaddress (CG== >> 10)
              4. Unpack the data (UjQ0NTk0MDM0NS1kOWU5MDEzNThhOTUyYTNi) and pass to the identified module along with the sender
              5. Unpack the data further and handle the specific type (R => Reply)
              6. Retrieve the userid belonging to the sender
                1. If no record found for this address, reply to inform the user that their details could not be found
              7. retrieve the mdl_forum_posts record fr the postid specified in the hash
              8. verify the hash against the forum_posts->hash + userid
              9. process e-mail

              Another option would be to require verification of all posts.

              I wrote a specification on a similar post-by-email proposal for Mahara 2 years ago and listed some of these security concerns https://wiki.mahara.org/index.php/Developer_Area/Specifications_in_Development/Email_to_Journal#Security_Concerns

              Show
              dobedobedoh Andrew Nicols added a comment - Just to clarify, I disagree with Damyon's assessment. I think that the initial implementation should require that the e-mail be sent from the same address as the user has on record. Although we cannot entirely prevent the spoofing of e-mail (e-mail is an inherently insecure system and should not be entirely trusted), we should make it as hard as possible to spoof out of the box. Sure, we could add an option to reduce the `security`, but I think that this should be an option (and not the default), and it should be completed as a separate issue, or at least a separate commit within this issue. The way that I am looking at implementing this means that there are only two places we would need to amend things (though possibly 4): forum address generator; forum address processor; global address generator; and global address processor. The method I am proposing at the moment is similar to the existing VERP processing that we do: LOCAL-PART: ADDRESS PLUS SUBADDRESS PLUS: + SUBADDRESS: MODULEID MODULEDATA MODULEID: BASE64 Encoded ( ID of the Module ) (not the coursemodule) MODULEDATA: BASE64 ( MODULEDATARAW ) MODULEDATARAW: TYPE POSTID VERIFICATIONHASH TYPE: Type of message (R = Reply) POSTID: The ID of the post being replied to VERIFICATIONHASH: MD5 ( POSTHASH USERID )[0-16] POSTHASH: A randomly generated hash unique to each post in Moodle USERID: The User ID An example: Post Hash: c5109993615308b9faa8b9b5123f688f90862468 Generated Address: moodle+Cg==UjQ0NTk0MDM0NS1kOWU5MDEzNThhOTUyYTNi@moodle.com Length of address: 47 stdClass Object ( [address] => moodle+Cg==UjQ0NTk0MDM0NS1kOWU5MDEzNThhOTUyYTNi [mailbox] => moodle [modid] => 10 [data] => R445940345-d9e901358a952a3b [type] => R [postid] => 445940345 [hash] => d9e901358a952a3b [verified] => 1 ) When receiving an e-mail, it would be processed as follows: mail received retrieve subaddress, and throw away primary address component extract module id from first section of subaddress (CG== >> 10) Unpack the data (UjQ0NTk0MDM0NS1kOWU5MDEzNThhOTUyYTNi) and pass to the identified module along with the sender Unpack the data further and handle the specific type (R => Reply) Retrieve the userid belonging to the sender If no record found for this address, reply to inform the user that their details could not be found retrieve the mdl_forum_posts record fr the postid specified in the hash verify the hash against the forum_posts->hash + userid process e-mail Another option would be to require verification of all posts. I wrote a specification on a similar post-by-email proposal for Mahara 2 years ago and listed some of these security concerns https://wiki.mahara.org/index.php/Developer_Area/Specifications_in_Development/Email_to_Journal#Security_Concerns
              Hide
              dobedobedoh Andrew Nicols added a comment -

              Bah, I meant to also note that the maximum length of the LOCALPART is 64 characters so we are very restricted in how much information we can place in the address.

              I should also point out that the e-mail address is the only thing that we can actually rely on being present. Headers are not included (though most clients do include the `References` and `In-Reply-To` headers which we use for threading in the client).

              Andrew

              Show
              dobedobedoh Andrew Nicols added a comment - Bah, I meant to also note that the maximum length of the LOCALPART is 64 characters so we are very restricted in how much information we can place in the address. I should also point out that the e-mail address is the only thing that we can actually rely on being present. Headers are not included (though most clients do include the `References` and `In-Reply-To` headers which we use for threading in the client). Andrew
              Hide
              dobedobedoh Andrew Nicols added a comment -

              After discussion with Damyon, I've adjusted the hash slightly:

              SUBADDRESS: MODULEID MODULEDATA
              MODULEID: BASE64 Encoded ( ID of the Module ) (not the coursemodule)
              MODULEDATA: BASE64 ( MODULEDATARAW )
              MODULEDATARAW: TYPE USERID HYPHEN POSTID HYPHEN VERIFICATIONHASH
              HYPHEN: -
              USERID: The ID of the user to reply as
              TYPE: Type of message (R = Reply)
              POSTID: The ID of the post being replied to
              VERIFICATIONHASH: MD5 ( POSTHASH USERHASH )[0-16]
              POSTHASH: A randomly generated hash unique to each post in Moodle
              USERHASH: A randomly generated hash unique to each user
              

              User Hash: a40961ed62ce8b2e358a7bc8baee8505aa336f1f
              Post Hash: c5109993615308b9faa8b9b5123f688f90862468
              Generated Address: moodle+Cg==UjQyMi00NDU5NDAzNDUtMjFkZWJjZGM4Y2NlMTJjMQ==
              Length of address: 55
              stdClass Object
              (
                  [address] => moodle+Cg==UjQyMi00NDU5NDAzNDUtMjFkZWJjZGM4Y2NlMTJjMQ==
                  [mailbox] => moodle
                  [modid] => 10
                  [data] => R422-445940345-21debcdc8cce12c1
                  [type] => R
                  [userid] => 422
                  [postid] => 445940345
                  [hash] => 21debcdc8cce12c1
                  [verified] => 1
              )
              

              Show
              dobedobedoh Andrew Nicols added a comment - After discussion with Damyon, I've adjusted the hash slightly: SUBADDRESS: MODULEID MODULEDATA MODULEID: BASE64 Encoded ( ID of the Module ) (not the coursemodule) MODULEDATA: BASE64 ( MODULEDATARAW ) MODULEDATARAW: TYPE USERID HYPHEN POSTID HYPHEN VERIFICATIONHASH HYPHEN: - USERID: The ID of the user to reply as TYPE: Type of message (R = Reply) POSTID: The ID of the post being replied to VERIFICATIONHASH: MD5 ( POSTHASH USERHASH )[0-16] POSTHASH: A randomly generated hash unique to each post in Moodle USERHASH: A randomly generated hash unique to each user User Hash: a40961ed62ce8b2e358a7bc8baee8505aa336f1f Post Hash: c5109993615308b9faa8b9b5123f688f90862468 Generated Address: moodle+Cg==UjQyMi00NDU5NDAzNDUtMjFkZWJjZGM4Y2NlMTJjMQ== Length of address: 55 stdClass Object ( [address] => moodle+Cg==UjQyMi00NDU5NDAzNDUtMjFkZWJjZGM4Y2NlMTJjMQ== [mailbox] => moodle [modid] => 10 [data] => R422-445940345-21debcdc8cce12c1 [type] => R [userid] => 422 [postid] => 445940345 [hash] => 21debcdc8cce12c1 [verified] => 1 )
              Hide
              rex Rex Lorenzo added a comment -

              In the Developer Meeting on July 2014 it was mentioned that any libraries that help in email parsing is needed. This just came up from Mailgun:

              The library is written in python, but maybe some ideas from it can be useful?

              Show
              rex Rex Lorenzo added a comment - In the Developer Meeting on July 2014 it was mentioned that any libraries that help in email parsing is needed. This just came up from Mailgun: http://blog.mailgun.com/open-sourcing-our-email-signature-parsing-library/ https://github.com/mailgun/talon The library is written in python, but maybe some ideas from it can be useful?
              Hide
              derekcx Derek Chirnside added a comment -

              @Dan. Gee, those pesky little spammers pop up everywhere eh??

              Show
              derekcx Derek Chirnside added a comment - @Dan. Gee, those pesky little spammers pop up everywhere eh??
              Hide
              derekcx Derek Chirnside added a comment -

              I know it is very difficult to carry on on a conversation here with no threads.

              Why are we wanting this? Is it GOOD to reduce Moodle to a mailing list?

              We have comments from John:
              'Because we are a research-focused university, rather than a teaching-focused university, we have very little leverage with regard to how our faculty use Moodle in their instruction. We get much better long-term results when we can initially fit Moodle into their existing workflow, sort of a "first one's free" model. And right now (as this professor's email indicated), our faculty don't want to have to log into Moodle, find the announcements forum, and then compose their message; they want to continue using their existing email workflow to connect with students, but have an email address for the forum that they can CC every time they send an email, so that their emails are archived along with any other course material'

              1) your leverage is to set it up well and train staff well.
              2) you describe "1-Log into Moodle, 2-Find the forum" - this is not the optimal way - it is a click in the email to get straight to the forum and if your password is stored you are in the forum.
              [However I do understand what you mean by Research-focused. But it is an interesting question why these guys, usually males, have such a nice research oriented life in their microbiology, but refuse to apply the same thinking to their teaching. But that is another matter]

              Archiving is a separate issue. Point taken. But It just makes me tired to think of some lecturer saving scores of emails in their Outlook or Gmail.

              I'm finding it very difficult to engage with HQ at the moment over some of these Forum issues. Discussions are spread over many places. It's very hard to determine priorities with the new abbreviated form of the roadmap, and with the deletion of discussions in the wiki page. Many many of posts with basic questions just remain unresponsed. And it is difficult to know what problems we are trying to solve with this specific issue. Other issues just seem to remain stagnant. The hope with first forum NG and then the other forum seems to have evaporated a little.

              a) "Edit in place" without loosing the thread (like ForumNG)
              b) Click and drag Images
              c) one click archive of forums . . . . would go a long way to alleviating the worry of John's clients.

              There are the functions we have in Gmail which make it so quick and easy to use, this is partly why lecturers are tied to an email workflow - who wants to go to a forum and loose functionality?? Improve the forums at least in the little bit of a) and b) above and you will not have the same demands to revert to email.

              Further more it WILL increase the ability to engage at a higher level. Just by virtue of having the whole thread visible when you are typing as the findings are from ForumNG use all over the place. This is the reason I think edit in place is important.
              And better image handling would be the icing on the cake. [I'd even say this is better bang for buck than subscription at the thread level, because at least there is a good work around for this issue]

              Ramble over.

              Show
              derekcx Derek Chirnside added a comment - I know it is very difficult to carry on on a conversation here with no threads. Why are we wanting this? Is it GOOD to reduce Moodle to a mailing list? We have comments from John: 'Because we are a research-focused university, rather than a teaching-focused university, we have very little leverage with regard to how our faculty use Moodle in their instruction. We get much better long-term results when we can initially fit Moodle into their existing workflow, sort of a "first one's free" model. And right now (as this professor's email indicated), our faculty don't want to have to log into Moodle, find the announcements forum, and then compose their message; they want to continue using their existing email workflow to connect with students, but have an email address for the forum that they can CC every time they send an email, so that their emails are archived along with any other course material' 1) your leverage is to set it up well and train staff well. 2) you describe "1-Log into Moodle, 2-Find the forum" - this is not the optimal way - it is a click in the email to get straight to the forum and if your password is stored you are in the forum. [However I do understand what you mean by Research-focused. But it is an interesting question why these guys, usually males, have such a nice research oriented life in their microbiology, but refuse to apply the same thinking to their teaching. But that is another matter] Archiving is a separate issue. Point taken. But It just makes me tired to think of some lecturer saving scores of emails in their Outlook or Gmail. I'm finding it very difficult to engage with HQ at the moment over some of these Forum issues. Discussions are spread over many places. It's very hard to determine priorities with the new abbreviated form of the roadmap, and with the deletion of discussions in the wiki page. Many many of posts with basic questions just remain unresponsed. And it is difficult to know what problems we are trying to solve with this specific issue. Other issues just seem to remain stagnant. The hope with first forum NG and then the other forum seems to have evaporated a little. a) "Edit in place" without loosing the thread (like ForumNG) b) Click and drag Images c) one click archive of forums . . . . would go a long way to alleviating the worry of John's clients. There are the functions we have in Gmail which make it so quick and easy to use, this is partly why lecturers are tied to an email workflow - who wants to go to a forum and loose functionality?? Improve the forums at least in the little bit of a) and b) above and you will not have the same demands to revert to email. Further more it WILL increase the ability to engage at a higher level . Just by virtue of having the whole thread visible when you are typing as the findings are from ForumNG use all over the place. This is the reason I think edit in place is important. And better image handling would be the icing on the cake. [I'd even say this is better bang for buck than subscription at the thread level, because at least there is a good work around for this issue] Ramble over.
              Hide
              dobedobedoh Andrew Nicols added a comment -

              Hi Derek,

              I'm sorry that you feel this way. We're more than happy to discuss things with you - on a personal note, this is my first day in the office for 10 days so I have a lot to catch up on.

              I'm also sorry if it's not entirely clear what's going on - we do try to make things clear when we post and when we interact with the community, and much of the time when specifying a solution we do try and propose the spec. for further feedback. I'm not aware of any discussions being deliberately deleted and when I have tried to start discussions on the forums, I've had little response to my questions which has been very frustrating on my part.
              I am aware that Martin Dougiamas has changed the way in which we present the roadmap - this is something out of my control, but perhaps Martin can comment in the forums on these changes to the roadmap.

              With the current forum work that I've been doing, we've been working through MDL-39707 trying to specify the different components. In doing so, some parts have been prioritised (i.e. by Martin, or as a result of discussion within HQ, or groups such as the Accessibility group). Sometimes as a part of the investigation into an issue, it becomes necessary to try different approaches to fully consider the ramifications of that solution, and in doing so we actually solve the problem. That was certainly the case with per-discussion subscription. Because of the nature and variety of the issues in MDL-39707, and the fact that some of the issues are poorly defined or incomplete, it's quite a daunting task and difficult to get right.

              In the case of this specific issue, it has been prioritised as an alternative way of interacting with forums for users with certain visual disabilities. We also intend to improve the UI for those users, so please don't think that we've forgotten about that.
              It was felt that e-mail would provide a good alternative though and many people use e-mail all the time and are familiar with it. Personally, I agree - I don't think that e-mail should be used to replace the forums for a majority of users, but it can make a good complementary solution for many users.
              The changes to the User Interface are much harder to get right as there are so many different views on how it could and should work. It is a much more subjective area which is fraught with challenges and difficulties. I feel that this is already demonstrated by the fact that we already have two solutions in Advanced Forums, and ForumNG. There has already been anecdotal suggestion that these don't quite meet the mark still even if they are an improvement.
              Conversely, reply-by-mail is something which is far less subjective in terms of design and will bring a usable change to the same subset of users. I realise that this is a strange way of looking at this change, but if we can provide additional and complementary options, we can be more inclusive.

              Although it sometimes looks like we aren't actually dealing with the challenges of the forum, there is a lot of ongoing background work.
              One of the challenges we've faced is that the forum code has not been updated much for some time and many parts of it are very complex and steeped in long history. Part of the process has been that of deprecation of old code (I think I've deprecated over 700 lines of PHP code which was previously unused but not fully deprecated). We've also moved a lot of code to use the new class loading architecture to both improve performance, and to make the existing code much more manageable. With these changes it's gradually becoming easier to work with the forum code, and we're also getting a great number of people people more familiar with the code and it's various quirks. This knowledge sharing has been invaluable, both in term of idea generation, and in terms of preserving my sanity - With this it becomes easier to implement in the other features that have been requested and proposed.

              With regards the other components from ForumNG and Advanced Forums, we're keen to bring as many of those over as possible but some of them conflict with one another, or are incomplete in their descriptions. There is also some concern that some are not pedagogically sound (e.g. sticky posting) - these are features of standard forums, but not necessarily appropriate within an educational setting.
              As an example, both of those solutions provide a feature for anonymity but neither solves the problem well in my opinion. They're good solutions which are implemented entirely differently and serve entirely different purposes. They are both targetted at Higher Education, and are fairly mutually exclusive and do not solve things for other user groups. That's something I would like to solve more widely within Moodle. Rather than implementing the same system in five modules which all require some form of anonymity, it would be better to solve them in one place and make it reusable.

              I do agree that archival is a priority, and it's one I'd like to see happen. I also agree that an inline editor will be a great addition and I don't believe it's a great deal of work but it does require some work in the background first if we're to achieve it in the best way. Again, I feel that we should be able to insert a true editor rather than show a textarea - This requires us to have an editor manager so that we can insert an editor whenever we require (I've begun work on the Atto version of this in MDL-45787 but I need to change my approach). This will also require us to work out the best route for inserting files, and again I'm not convinced that the approach by Advanced Forums is ideal here - we can do better but it's new ground for Moodle and it requires preparation and thought.

              I'm not sure what the issue with image handling is - perhaps you can detail further?

              Best wishes,

              Andrew

              Show
              dobedobedoh Andrew Nicols added a comment - Hi Derek, I'm sorry that you feel this way. We're more than happy to discuss things with you - on a personal note, this is my first day in the office for 10 days so I have a lot to catch up on. I'm also sorry if it's not entirely clear what's going on - we do try to make things clear when we post and when we interact with the community, and much of the time when specifying a solution we do try and propose the spec. for further feedback. I'm not aware of any discussions being deliberately deleted and when I have tried to start discussions on the forums, I've had little response to my questions which has been very frustrating on my part. I am aware that Martin Dougiamas has changed the way in which we present the roadmap - this is something out of my control, but perhaps Martin can comment in the forums on these changes to the roadmap. With the current forum work that I've been doing, we've been working through MDL-39707 trying to specify the different components. In doing so, some parts have been prioritised (i.e. by Martin, or as a result of discussion within HQ, or groups such as the Accessibility group). Sometimes as a part of the investigation into an issue, it becomes necessary to try different approaches to fully consider the ramifications of that solution, and in doing so we actually solve the problem. That was certainly the case with per-discussion subscription. Because of the nature and variety of the issues in MDL-39707 , and the fact that some of the issues are poorly defined or incomplete, it's quite a daunting task and difficult to get right. In the case of this specific issue, it has been prioritised as an alternative way of interacting with forums for users with certain visual disabilities. We also intend to improve the UI for those users, so please don't think that we've forgotten about that. It was felt that e-mail would provide a good alternative though and many people use e-mail all the time and are familiar with it. Personally, I agree - I don't think that e-mail should be used to replace the forums for a majority of users, but it can make a good complementary solution for many users. The changes to the User Interface are much harder to get right as there are so many different views on how it could and should work. It is a much more subjective area which is fraught with challenges and difficulties. I feel that this is already demonstrated by the fact that we already have two solutions in Advanced Forums, and ForumNG. There has already been anecdotal suggestion that these don't quite meet the mark still even if they are an improvement. Conversely, reply-by-mail is something which is far less subjective in terms of design and will bring a usable change to the same subset of users. I realise that this is a strange way of looking at this change, but if we can provide additional and complementary options, we can be more inclusive. Although it sometimes looks like we aren't actually dealing with the challenges of the forum, there is a lot of ongoing background work. One of the challenges we've faced is that the forum code has not been updated much for some time and many parts of it are very complex and steeped in long history. Part of the process has been that of deprecation of old code (I think I've deprecated over 700 lines of PHP code which was previously unused but not fully deprecated). We've also moved a lot of code to use the new class loading architecture to both improve performance, and to make the existing code much more manageable. With these changes it's gradually becoming easier to work with the forum code, and we're also getting a great number of people people more familiar with the code and it's various quirks. This knowledge sharing has been invaluable, both in term of idea generation, and in terms of preserving my sanity - With this it becomes easier to implement in the other features that have been requested and proposed. With regards the other components from ForumNG and Advanced Forums, we're keen to bring as many of those over as possible but some of them conflict with one another, or are incomplete in their descriptions. There is also some concern that some are not pedagogically sound (e.g. sticky posting) - these are features of standard forums, but not necessarily appropriate within an educational setting. As an example, both of those solutions provide a feature for anonymity but neither solves the problem well in my opinion. They're good solutions which are implemented entirely differently and serve entirely different purposes. They are both targetted at Higher Education, and are fairly mutually exclusive and do not solve things for other user groups. That's something I would like to solve more widely within Moodle. Rather than implementing the same system in five modules which all require some form of anonymity, it would be better to solve them in one place and make it reusable. I do agree that archival is a priority, and it's one I'd like to see happen. I also agree that an inline editor will be a great addition and I don't believe it's a great deal of work but it does require some work in the background first if we're to achieve it in the best way. Again, I feel that we should be able to insert a true editor rather than show a textarea - This requires us to have an editor manager so that we can insert an editor whenever we require (I've begun work on the Atto version of this in MDL-45787 but I need to change my approach). This will also require us to work out the best route for inserting files, and again I'm not convinced that the approach by Advanced Forums is ideal here - we can do better but it's new ground for Moodle and it requires preparation and thought. I'm not sure what the issue with image handling is - perhaps you can detail further? Best wishes, Andrew
              Hide
              derekcx Derek Chirnside added a comment -

              Ah, interesting, and thanks. I have a few questions (Sticky posts educationally unsound??) that can wait, and may evaporate in the passing of time. A side issue: I will ask Martin about the roadmap.

              Image management: this is MDL-43996, which Paul is already working on. Too many clicks to add images when using an editor, but this is an ATTO thing really, and like I said, bang for buck it is huge. And I am aware of the epic work for MDL-39707, per thread subscription.

              Appreciate the response, and good luck with your backlog of emails after your break.

              -Derek

              Show
              derekcx Derek Chirnside added a comment - Ah, interesting, and thanks. I have a few questions (Sticky posts educationally unsound??) that can wait, and may evaporate in the passing of time. A side issue: I will ask Martin about the roadmap. Image management: this is MDL-43996 , which Paul is already working on. Too many clicks to add images when using an editor, but this is an ATTO thing really, and like I said, bang for buck it is huge. And I am aware of the epic work for MDL-39707 , per thread subscription. Appreciate the response, and good luck with your backlog of emails after your break. -Derek
              Hide
              dobedobedoh Andrew Nicols added a comment -

              Thanks Derek,

              Perhaps consider this... what is the educational rationale for sticky posts? Forums are intended to be per-topic or per-week within a course and as such are likely to be oriented towards a specific goal. The 'sticky' post is traditionally used to highlight a piece of information within a single forum and keep it at the top of the forum thread list. This information could instead be placed in the forum description. I'm not saying that sticky posts won't happen, just that the design of forums should be that they shouldn't be necessary and therefore they'll be placed with a lower priority than other forum requests.

              We'll be working with Paul on the drag/drop of images into Atto. Damyon and I spoke with him at the Australian Moot the other week so hopefully we'll get that in really soon now.

              Cheers,

              Andrew

              Show
              dobedobedoh Andrew Nicols added a comment - Thanks Derek, Perhaps consider this... what is the educational rationale for sticky posts? Forums are intended to be per-topic or per-week within a course and as such are likely to be oriented towards a specific goal. The 'sticky' post is traditionally used to highlight a piece of information within a single forum and keep it at the top of the forum thread list. This information could instead be placed in the forum description. I'm not saying that sticky posts won't happen, just that the design of forums should be that they shouldn't be necessary and therefore they'll be placed with a lower priority than other forum requests. We'll be working with Paul on the drag/drop of images into Atto. Damyon and I spoke with him at the Australian Moot the other week so hopefully we'll get that in really soon now. Cheers, Andrew
              Hide
              mattingly Christy Mattingly added a comment -

              To address Derek Chirnside's question of "Why are we doing this?" there are a couple of benefits for users.

              A. For students or faculty who are commuters, they can use a smartphone to easily respond to a forum post via email. To this from a computer would require Internet connectivity and navigating Moodle from a SmartPhone is not as easy as sending email (which also happens to be the one software interface nearly all computer technology users are familiar with).

              B. Using email is easier to navigate than Moodle for those requiring screen readers due to sight impairments.

              C. When composing email messages, the post is automatically saved as a draft if connectivity is lost or the user gets distracted. In Moodle, the timeout setting can cause a post to be lost (although users can compose their post in a locally stored text processing program to avoid this issue, it is an extra insurance step many of them do not think to do plus it is less convenient).

              Show
              mattingly Christy Mattingly added a comment - To address Derek Chirnside's question of "Why are we doing this?" there are a couple of benefits for users. A. For students or faculty who are commuters, they can use a smartphone to easily respond to a forum post via email. To this from a computer would require Internet connectivity and navigating Moodle from a SmartPhone is not as easy as sending email (which also happens to be the one software interface nearly all computer technology users are familiar with). B. Using email is easier to navigate than Moodle for those requiring screen readers due to sight impairments. C. When composing email messages, the post is automatically saved as a draft if connectivity is lost or the user gets distracted. In Moodle, the timeout setting can cause a post to be lost (although users can compose their post in a locally stored text processing program to avoid this issue, it is an extra insurance step many of them do not think to do plus it is less convenient).
              Hide
              derekcx Derek Chirnside added a comment -

              @Andrew. You commented in July - "We'll be working with Paul on the drag/drop of images into Atto. Damyon and I spoke with him at the Australian Moot the other week so hopefully we'll get that in really soon now"

              Just one last little tiny discrete 'bump' on this issue (If such a thing is possible)

              -Derek

              Show
              derekcx Derek Chirnside added a comment - @Andrew. You commented in July - "We'll be working with Paul on the drag/drop of images into Atto. Damyon and I spoke with him at the Australian Moot the other week so hopefully we'll get that in really soon now" Just one last little tiny discrete 'bump' on this issue (If such a thing is possible) -Derek
              Hide
              dobedobedoh Andrew Nicols added a comment -

              Hi Derek,

              Sorry - I've been working on other items for the past few months and not had a chance to look at the atto drag/drop. This issue in question is MDL-43996.

              Andrew

              Show
              dobedobedoh Andrew Nicols added a comment - Hi Derek, Sorry - I've been working on other items for the past few months and not had a chance to look at the atto drag/drop. This issue in question is MDL-43996 . Andrew
              Hide
              cibot CiBoT added a comment -

              Fails against automated checks.

              Checked MDL-3714 using repository: git://github.com/andrewnicols/moodle.git

              More information about this report

              Show
              cibot CiBoT added a comment - Fails against automated checks. Checked MDL-3714 using repository: git://github.com/andrewnicols/moodle.git master (branch: MDL-3714-master | CI Job ) Coding style problems found More information about this report
              Hide
              derekcx Derek Chirnside added a comment -

              Christy Mattingly Just to report back: you have convinced me. Looking forward to this. Darn it. I'll have to work on the bus.

              -Derek

              Show
              derekcx Derek Chirnside added a comment - Christy Mattingly Just to report back: you have convinced me. Looking forward to this. Darn it. I'll have to work on the bus. -Derek
              Hide
              dobedobedoh Andrew Nicols added a comment -

              I'm putting this up for peer review following a series of changes in the parent commits.

              Show
              dobedobedoh Andrew Nicols added a comment - I'm putting this up for peer review following a series of changes in the parent commits.
              Hide
              cibot CiBoT added a comment -

              Fails against automated checks.

              Checked MDL-3714 using repository: git://github.com/andrewnicols/moodle.git

              More information about this report

              Show
              cibot CiBoT added a comment - Fails against automated checks. Checked MDL-3714 using repository: git://github.com/andrewnicols/moodle.git master (branch: MDL-3714-master | CI Job ) Coding style problems found More information about this report
              Hide
              cibot CiBoT added a comment -

              Fails against automated checks.

              Checked MDL-3714 using repository: git://github.com/andrewnicols/moodle.git

              More information about this report

              Show
              cibot CiBoT added a comment - Fails against automated checks. Checked MDL-3714 using repository: git://github.com/andrewnicols/moodle.git master (branch: MDL-3714-master | CI Job ) Coding style problems found More information about this report
              Hide
              damyon Damyon Wiese added a comment -

              Thanks Andrew,

              This is great - nice work.

              Only a couple of minor points here:

              • I think Helen Foster should review the new lang strings
              • I don't think you need to create a "upload" repository instance just to create a file - it's better not to rely on any particular repository.

              [Y] Syntax
              [Y] Whitespace
              [-] Output
              [Y] Language (With a review from Helen)
              [Y] Databases
              [Y] Testing (instructions and automated tests)
              [Y] Security
              [-] Documentation (needs some - added docs_required)
              [Y] Git
              [-] Third party code
              [Y] Sanity check (with the upload repository removed)

              Show
              damyon Damyon Wiese added a comment - Thanks Andrew, This is great - nice work. Only a couple of minor points here: I think Helen Foster should review the new lang strings I don't think you need to create a "upload" repository instance just to create a file - it's better not to rely on any particular repository. [Y] Syntax [Y] Whitespace [-] Output [Y] Language (With a review from Helen) [Y] Databases [Y] Testing (instructions and automated tests) [Y] Security [-] Documentation (needs some - added docs_required) [Y] Git [-] Third party code [Y] Sanity check (with the upload repository removed)
              Hide
              dobedobedoh Andrew Nicols added a comment -

              Thanks Damyon,

              I've removed the repositories. It was there for the 'source', but that isn't actually required.

              I'm grabbing all of the strings together and I'll ask Helen Foster and Mary Cooch to take a look.

              Thanks!

              Andrew

              Show
              dobedobedoh Andrew Nicols added a comment - Thanks Damyon, I've removed the repositories. It was there for the 'source', but that isn't actually required. I'm grabbing all of the strings together and I'll ask Helen Foster and Mary Cooch to take a look. Thanks! Andrew
              Hide
              tsala Helen Foster added a comment -

              Thanks Damyon and Andrew for asking me to take a look at the new language strings. They look generally fine, though I have some tiny suggestions for improvement, such as using 'email' without the hyphen for consistency with elsewhere in Moodle. Please feel free to question, disagree with or ignore any of my suggestions - I don't mind as some things are simply a matter of style, and it is your super-cool new feature Andrew!

              $string['replytoforumpost'] = 'Reply via email to {$a}';
              $string['replytoforumpost_html'] = '<a href="mailto:{$a}">Reply via email</a>';
              

              (I'm thinking a short phrase here, similar to what we have already - 'Show parent', 'Reply', 'See this post in context'.)

              $string['reply_handler'] = 'Reply to forum posts via email';
              $string['messageinboundattachmentdisallowed'] = 'Unable to post your reply, since it includes an attachment and the forum doesn't allow attachments.';
              $string['messageinboundfilecountexceeded'] = 'Unable to post your reply, since it includes more than the maximum number of attachments allowed for the forum ({$a->forum->maxattachments}).';
              

              (I have simplified these strings for the benefit of translators; also in English "1 attachments" doesn't look good.)

              $string['messageinboundfilesizeexceeded'] = 'Unable to post your reply, since the total attachment size ({$a->filesize}) is greater than the maximum size allowed for the forum ({$a->maxbytes}).';
              $string['messageinboundforumhidden'] = 'Unable to post your reply, since the forum is currently unavailable.';
              $string['messageinboundnopostforum'] = 'Unable to post your reply, since you do not have permission to post in the {$a->forum->name} forum.';
              

              (I'm removing the word 'messages' since all the different terms - post, reply, email, message - can be confusing, so let's stick to as few as possible!)

               $string['messageinboundthresholdhit'] = 'Unable to post your reply, since you have exceeded the posting threshold set for the forum.';
              $string['postbymailsuccess'] = 'Congratulations! Your reply "{$a->subject}" {$a->discussionurl} has been successfully posted in the forum.';
              $string['postbymailsuccess_html'] = 'Congratulations! Your reply <a href="{$a->discussionurl}">{$a->subject}</a> has been successfully posted in the forum.';
              

              Show
              tsala Helen Foster added a comment - Thanks Damyon and Andrew for asking me to take a look at the new language strings. They look generally fine, though I have some tiny suggestions for improvement, such as using 'email' without the hyphen for consistency with elsewhere in Moodle. Please feel free to question, disagree with or ignore any of my suggestions - I don't mind as some things are simply a matter of style, and it is your super-cool new feature Andrew! $string['replytoforumpost'] = 'Reply via email to {$a}'; $string['replytoforumpost_html'] = '<a href="mailto:{$a}">Reply via email</a>'; (I'm thinking a short phrase here, similar to what we have already - 'Show parent', 'Reply', 'See this post in context'.) $string['reply_handler'] = 'Reply to forum posts via email'; $string['messageinboundattachmentdisallowed'] = 'Unable to post your reply, since it includes an attachment and the forum doesn't allow attachments.'; $string['messageinboundfilecountexceeded'] = 'Unable to post your reply, since it includes more than the maximum number of attachments allowed for the forum ({$a->forum->maxattachments}).'; (I have simplified these strings for the benefit of translators; also in English "1 attachments" doesn't look good.) $string['messageinboundfilesizeexceeded'] = 'Unable to post your reply, since the total attachment size ({$a->filesize}) is greater than the maximum size allowed for the forum ({$a->maxbytes}).'; $string['messageinboundforumhidden'] = 'Unable to post your reply, since the forum is currently unavailable.'; $string['messageinboundnopostforum'] = 'Unable to post your reply, since you do not have permission to post in the {$a->forum->name} forum.'; (I'm removing the word 'messages' since all the different terms - post, reply, email, message - can be confusing, so let's stick to as few as possible!) $string['messageinboundthresholdhit'] = 'Unable to post your reply, since you have exceeded the posting threshold set for the forum.'; $string['postbymailsuccess'] = 'Congratulations! Your reply "{$a->subject}" {$a->discussionurl} has been successfully posted in the forum.'; $string['postbymailsuccess_html'] = 'Congratulations! Your reply <a href="{$a->discussionurl}">{$a->subject}</a> has been successfully posted in the forum.';
              Hide
              dobedobedoh Andrew Nicols added a comment -

              Thanks Helen Foster, I've pulled in those changes now. All make good sense

              Andrew

              Show
              dobedobedoh Andrew Nicols added a comment - Thanks Helen Foster , I've pulled in those changes now. All make good sense Andrew
              Hide
              dobedobedoh Andrew Nicols added a comment -

              All requested changes have been made. Submitting for integration

              Show
              dobedobedoh Andrew Nicols added a comment - All requested changes have been made. Submitting for integration
              Hide
              poltawski Dan Poltawski added a comment -

              The main moodle.git repository has just been updated with latest weekly modifications. You may wish to rebase your PULL branches to simplify history and avoid any possible merge conflicts. This would also make integrator's life easier next week.

              TIA and ciao

              Show
              poltawski Dan Poltawski added a comment - The main moodle.git repository has just been updated with latest weekly modifications. You may wish to rebase your PULL branches to simplify history and avoid any possible merge conflicts. This would also make integrator's life easier next week. TIA and ciao
              Hide
              poltawski Dan Poltawski added a comment -

              Hi,

              This issue does not appear to be applying cleanly to master, please rebase it ASAP

              Show
              poltawski Dan Poltawski added a comment - Hi, This issue does not appear to be applying cleanly to master, please rebase it ASAP
              Hide
              poltawski Dan Poltawski added a comment -

              This issue breaks phpunit, please fix it ASAP and resbumit for integration:

              PHP Fatal error:  Class core\test\handler_base contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (core\message\inbound\handler::get_name) in /Users/danp/moodles/pm/moodle/message/tests/fixtures/inbound_fixtures.php on line 34
              PHP Stack trace:
              PHP   1. {main}() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/composer/bin/phpunit:0
              PHP   2. PHPUnit_TextUI_Command::main() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/composer/bin/phpunit:63
              PHP   3. PHPUnit_TextUI_Command->run() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:129
              PHP   4. PHPUnit_TextUI_Command->handleArguments() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:138
              PHP   5. PHPUnit_Util_Configuration->getTestSuiteConfiguration() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:657
              PHP   6. PHPUnit_Util_Configuration->getTestSuite() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Configuration.php:797
              PHP   7. PHPUnit_Framework_TestSuite->addTestFiles() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Configuration.php:873
              PHP   8. PHPUnit_Framework_TestSuite->addTestFile() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:416
              PHP   9. PHPUnit_Util_Fileloader::checkAndLoad() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:355
              PHP  10. PHPUnit_Util_Fileloader::load() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Fileloader.php:76
              PHP  11. include_once() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Fileloader.php:92
              PHP  12. require_once() /Users/danp/moodles/pm/moodle/message/tests/inbound_test.php:26
               
              Fatal error: Class core\test\handler_base contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (core\message\inbound\handler::get_name) in /Users/danp/moodles/pm/moodle/message/tests/fixtures/inbound_fixtures.php on line 34
               
              Call Stack:
                  0.0002     229448   1. {main}() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/composer/bin/phpunit:0
                  0.0027     574248   2. PHPUnit_TextUI_Command::main() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/composer/bin/phpunit:63
                  0.0027     574480   3. PHPUnit_TextUI_Command->run() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:129
                  0.0027     574912   4. PHPUnit_TextUI_Command->handleArguments() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:138
                  1.0710   53994248   5. PHPUnit_Util_Configuration->getTestSuiteConfiguration() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:657
                  2.9437  146163600   6. PHPUnit_Util_Configuration->getTestSuite() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Configuration.php:797
                  2.9446  146165976   7. PHPUnit_Framework_TestSuite->addTestFiles() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Configuration.php:873
                  2.9603  146725392   8. PHPUnit_Framework_TestSuite->addTestFile() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:416
                  2.9607  146723760   9. PHPUnit_Util_Fileloader::checkAndLoad() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:355
                  2.9608  146723888  10. PHPUnit_Util_Fileloader::load() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Fileloader.php:76
                  2.9620  146990256  11. include_once('/Users/danp/moodles/pm/moodle/message/tests/inbound_test.php') /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Fileloader.php:92
                  2.9624  147000728  12. require_once('/Users/danp/moodles/pm/moodle/message/tests/fixtures/inbound_fixtures.php') /Users/danp/moodles/pm/moodle/message/tests/inbound_test.php:26
              

              Show
              poltawski Dan Poltawski added a comment - This issue breaks phpunit, please fix it ASAP and resbumit for integration: PHP Fatal error: Class core\test\handler_base contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (core\message\inbound\handler::get_name) in /Users/danp/moodles/pm/moodle/message/tests/fixtures/inbound_fixtures.php on line 34 PHP Stack trace: PHP 1. {main}() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/composer/bin/phpunit:0 PHP 2. PHPUnit_TextUI_Command::main() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/composer/bin/phpunit:63 PHP 3. PHPUnit_TextUI_Command->run() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:129 PHP 4. PHPUnit_TextUI_Command->handleArguments() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:138 PHP 5. PHPUnit_Util_Configuration->getTestSuiteConfiguration() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:657 PHP 6. PHPUnit_Util_Configuration->getTestSuite() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Configuration.php:797 PHP 7. PHPUnit_Framework_TestSuite->addTestFiles() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Configuration.php:873 PHP 8. PHPUnit_Framework_TestSuite->addTestFile() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:416 PHP 9. PHPUnit_Util_Fileloader::checkAndLoad() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:355 PHP 10. PHPUnit_Util_Fileloader::load() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Fileloader.php:76 PHP 11. include_once() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Fileloader.php:92 PHP 12. require_once() /Users/danp/moodles/pm/moodle/message/tests/inbound_test.php:26   Fatal error: Class core\test\handler_base contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (core\message\inbound\handler::get_name) in /Users/danp/moodles/pm/moodle/message/tests/fixtures/inbound_fixtures.php on line 34   Call Stack: 0.0002 229448 1. {main}() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/composer/bin/phpunit:0 0.0027 574248 2. PHPUnit_TextUI_Command::main() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/composer/bin/phpunit:63 0.0027 574480 3. PHPUnit_TextUI_Command->run() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:129 0.0027 574912 4. PHPUnit_TextUI_Command->handleArguments() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:138 1.0710 53994248 5. PHPUnit_Util_Configuration->getTestSuiteConfiguration() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:657 2.9437 146163600 6. PHPUnit_Util_Configuration->getTestSuite() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Configuration.php:797 2.9446 146165976 7. PHPUnit_Framework_TestSuite->addTestFiles() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Configuration.php:873 2.9603 146725392 8. PHPUnit_Framework_TestSuite->addTestFile() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:416 2.9607 146723760 9. PHPUnit_Util_Fileloader::checkAndLoad() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:355 2.9608 146723888 10. PHPUnit_Util_Fileloader::load() /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Fileloader.php:76 2.9620 146990256 11. include_once('/Users/danp/moodles/pm/moodle/message/tests/inbound_test.php') /Users/danp/moodles/pm/moodle/vendor/phpunit/phpunit/PHPUnit/Util/Fileloader.php:92 2.9624 147000728 12. require_once('/Users/danp/moodles/pm/moodle/message/tests/fixtures/inbound_fixtures.php') /Users/danp/moodles/pm/moodle/message/tests/inbound_test.php:26
              Hide
              dobedobedoh Andrew Nicols added a comment -

              Fixed. The rebase was jhust version number, and the phpunit issues were another issue.

              Show
              dobedobedoh Andrew Nicols added a comment - Fixed. The rebase was jhust version number, and the phpunit issues were another issue.
              Hide
              cibot CiBoT added a comment -

              Moving this issue to current integration cycle, will be reviewed soon. Thanks for the hard work!

              Show
              cibot CiBoT added a comment - Moving this issue to current integration cycle, will be reviewed soon. Thanks for the hard work!
              Hide
              samhemelryk Sam Hemelryk added a comment -

              Andrew - is this issue blocked by MDL-46284?

              Show
              samhemelryk Sam Hemelryk added a comment - Andrew - is this issue blocked by MDL-46284 ?
              Hide
              samhemelryk Sam Hemelryk added a comment -

              Alrighty this has been integrated now!

              I've made one additional commit on top of this to clean up some coding style issues present in the patch. The rest looks good.
              I did note that there were some performance improvements to be made, Andrew I'll ping you about these at some point.

              Cheers
              Sam

              Show
              samhemelryk Sam Hemelryk added a comment - Alrighty this has been integrated now! I've made one additional commit on top of this to clean up some coding style issues present in the patch. The rest looks good. I did note that there were some performance improvements to be made, Andrew I'll ping you about these at some point. Cheers Sam
              Hide
              davecooper Dave Cooper added a comment -

              A few comments that probably need to be discussed before marking this as passed:

              1. Would it be beneficial to add a "test mail settings" button somewhere in the settings so that the admin can see if the mail settings they have inputted are correct? The motivation behind this is that I see a lot of other applications with mail settings offer the ability to test them.
              2. It appears that users that don't have a profile picture have broken image links in the emails sent to users. We should probably do something about this.
              3. The pickup task indicated that for a given execution it ran 38 queries - is this acceptable? (honestly no idea if this is too many) Or is this a case of having to make that many queries?
              4. I have discussed with Andrew the possibility of mail notifications being lost due to the MTA being down and the cron job executing. I believe he has a patch coming for this.
              Show
              davecooper Dave Cooper added a comment - A few comments that probably need to be discussed before marking this as passed: Would it be beneficial to add a "test mail settings" button somewhere in the settings so that the admin can see if the mail settings they have inputted are correct? The motivation behind this is that I see a lot of other applications with mail settings offer the ability to test them. It appears that users that don't have a profile picture have broken image links in the emails sent to users. We should probably do something about this. The pickup task indicated that for a given execution it ran 38 queries - is this acceptable? (honestly no idea if this is too many) Or is this a case of having to make that many queries? I have discussed with Andrew the possibility of mail notifications being lost due to the MTA being down and the cron job executing. I believe he has a patch coming for this.
              Hide
              dobedobedoh Andrew Nicols added a comment -

              Hi Dave,

              1) Yes - it possible would be, but we use mtrace throughout the functions at the moment and there is no way of capturing that state information intended for the cron and doing something useful with it at the moment short of ob_start(). I don't think it's a deal-breaker but it would be nice to have;
              2) Unrelated issue I think. I think that's a forum thing related to Google not being able to view your Moodle site or something? Not really sure but we shoudl check and report/update an issue for that separately.
              3) Yup - that's pretty standard. It's not just doing stuff in the pickup, but also fetching information about the pickup task itself. When I use the standard postgres lock factory, I see 18/1 (read/write); when I'm using file locks it's 10/1. Actually turning on DB debugging, all ten of those queries relate to the scheduled task and a blank pickup runs zero DB calls.
              4) Yup - patch incoming to reset the state of a message (unread + unflagged) so that it will be picked up by a subsequent pickup task if the MTA is down.

              Show
              dobedobedoh Andrew Nicols added a comment - Hi Dave, 1) Yes - it possible would be, but we use mtrace throughout the functions at the moment and there is no way of capturing that state information intended for the cron and doing something useful with it at the moment short of ob_start(). I don't think it's a deal-breaker but it would be nice to have; 2) Unrelated issue I think. I think that's a forum thing related to Google not being able to view your Moodle site or something? Not really sure but we shoudl check and report/update an issue for that separately. 3) Yup - that's pretty standard. It's not just doing stuff in the pickup, but also fetching information about the pickup task itself. When I use the standard postgres lock factory, I see 18/1 (read/write); when I'm using file locks it's 10/1. Actually turning on DB debugging, all ten of those queries relate to the scheduled task and a blank pickup runs zero DB calls. 4) Yup - patch incoming to reset the state of a message (unread + unflagged) so that it will be picked up by a subsequent pickup task if the MTA is down.
              Hide
              dobedobedoh Andrew Nicols added a comment -

              Actually 4: Not possible.
              As I mentioned last night, message_send does not support this. It always returns a truthy value unless there is a problem with the input data.

              If the MTA failed, it retains the message, marking it unread and it is listed in the user's message list.

              Unfortunately, that's all we can do with the current API. The message_send() mechanism does not store enough information about the event to attempt a resend at a later date (grr), and a user can choose to have those notifications sent to their private messages (though doing so would be strange as they cannot reply).

              Andrew

              Show
              dobedobedoh Andrew Nicols added a comment - Actually 4: Not possible. As I mentioned last night, message_send does not support this. It always returns a truthy value unless there is a problem with the input data. If the MTA failed, it retains the message, marking it unread and it is listed in the user's message list. Unfortunately, that's all we can do with the current API. The message_send() mechanism does not store enough information about the event to attempt a resend at a later date (grr), and a user can choose to have those notifications sent to their private messages (though doing so would be strange as they cannot reply). Andrew
              Hide
              davecooper Dave Cooper added a comment -

              Cool - happy with all that!

              Show
              davecooper Dave Cooper added a comment - Cool - happy with all that!
              Hide
              poltawski Dan Poltawski added a comment -

              Thanks for your hard work, this change is now part of Moodle 2.8-beta.

              Why do we never have time to do it right, but always have time to do it over?
              --anonymous

              Show
              poltawski Dan Poltawski added a comment - Thanks for your hard work, this change is now part of Moodle 2.8-beta. Why do we never have time to do it right, but always have time to do it over? --anonymous
              Hide
              stevelee Steve Lee added a comment -

              Fantastic work! A great addition, thanks.

              Show
              stevelee Steve Lee added a comment - Fantastic work! A great addition, thanks.
              Hide
              marycooch Mary Cooch added a comment -

              Removing docs_required label as there is documentation for this here https://docs.moodle.org/28/en/Using_Forum#Reply_to_posts_via_email and also https://docs.moodle.org/28/en/Incoming_mail_configuration (although the latter page could still be improved)

              Show
              marycooch Mary Cooch added a comment - Removing docs_required label as there is documentation for this here https://docs.moodle.org/28/en/Using_Forum#Reply_to_posts_via_email and also https://docs.moodle.org/28/en/Incoming_mail_configuration (although the latter page could still be improved)
              Hide
              izendegi Iñigo Zendegi added a comment -

              Hi,

              I've testing this feature in the recently released Moodle 2.8 and, once the mailbox settings filled and forum reply handler enabled, I have found that in the notification email it doesn't show the mailto reply link that it should, it shows only the text "You can reply to this forum post by email.", so I can't find the way to reply.

              I don't know if I am doing something wrong or there is a bug here, please check it out.

              P.S.: The link that should be shown is this one: https://docs.moodle.org/28/en/File:forumemailreply1.png
              https://docs.moodle.org/28/en/Using_Forum#Reply_to_posts_via_email

              Show
              izendegi Iñigo Zendegi added a comment - Hi, I've testing this feature in the recently released Moodle 2.8 and, once the mailbox settings filled and forum reply handler enabled, I have found that in the notification email it doesn't show the mailto reply link that it should, it shows only the text "You can reply to this forum post by email.", so I can't find the way to reply. I don't know if I am doing something wrong or there is a bug here, please check it out. P.S.: The link that should be shown is this one: https://docs.moodle.org/28/en/File:forumemailreply1.png https://docs.moodle.org/28/en/Using_Forum#Reply_to_posts_via_email
              Hide
              marycooch Mary Cooch added a comment - - edited

              I'm using Gmail and I see this when receiving posts via email from Moodle.org

              I made the original screenshot -but it was a few weeks ago so I'll check if it has changed.

              Show
              marycooch Mary Cooch added a comment - - edited I'm using Gmail and I see this when receiving posts via email from Moodle.org I made the original screenshot -but it was a few weeks ago so I'll check if it has changed.
              Hide
              izendegi Iñigo Zendegi added a comment - - edited

              Hi Mary,

              I've tried that (also in Gmail), but doesn't work: when you reply to the email with that reply button you send a classic email to the original forum author, but if you want to reply in the forum you need an special email address that Moodle will later import as a forum post.

              The only way to know which that address is (AFAIK) is that link you screenshoted, but there isn't anymore...

              Show
              izendegi Iñigo Zendegi added a comment - - edited Hi Mary, I've tried that (also in Gmail), but doesn't work: when you reply to the email with that reply button you send a classic email to the original forum author, but if you want to reply in the forum you need an special email address that Moodle will later import as a forum post. The only way to know which that address is (AFAIK) is that link you screenshoted, but there isn't anymore...
              Hide
              marycooch Mary Cooch added a comment -

              Back - yes - it's changed - I have updated the section and screenshot here: https://docs.moodle.org/28/en/Using_Forum#Reply_to_posts_via_email

              Show
              marycooch Mary Cooch added a comment - Back - yes - it's changed - I have updated the section and screenshot here: https://docs.moodle.org/28/en/Using_Forum#Reply_to_posts_via_email
              Hide
              marycooch Mary Cooch added a comment -

              Have you got your email settings to 'always send from No reply' in Site administration>Plugins>Message outputs>Email?

              Show
              marycooch Mary Cooch added a comment - Have you got your email settings to 'always send from No reply' in Site administration>Plugins>Message outputs>Email?
              Hide
              izendegi Iñigo Zendegi added a comment -

              No, I haven't.

              I think that this functionality needs the email reply to go to the mailbox address configured in Site administration>Server>Incoming mail configuration>Mail settings, but just replying to the email sends it to the previous post sender (or to the noreply address in case that setting you said is enabled), that's why I think it should be a link to allow it, doesn't it? Or it works for you that way, Mary?

              Show
              izendegi Iñigo Zendegi added a comment - No, I haven't. I think that this functionality needs the email reply to go to the mailbox address configured in Site administration>Server>Incoming mail configuration>Mail settings, but just replying to the email sends it to the previous post sender (or to the noreply address in case that setting you said is enabled), that's why I think it should be a link to allow it, doesn't it? Or it works for you that way, Mary?
              Hide
              marycooch Mary Cooch added a comment -

              If I check "always send from the no reply address" then I do get an email address of the type moodleLldkfjdfdsdfsfue123234323403@gmailcom to send my forum replies to. If I don't check the "always send from the no reply address" then when I click "reply" I am prompted to reply to the original poster.

              Show
              marycooch Mary Cooch added a comment - If I check "always send from the no reply address" then I do get an email address of the type moodleLldkfjdfdsdfsfue123234323403@gmailcom to send my forum replies to. If I don't check the "always send from the no reply address" then when I click "reply" I am prompted to reply to the original poster.
              Hide
              izendegi Iñigo Zendegi added a comment -

              That's it, Mary, checking that option the reply goes to that special address and is posted in the forum, thanks! I've added it to the docs [1] just now.

              In that case, shouldn't that "You can reply to this forum post by email." message be shown only if this "Always send email from the no-reply address" is checked? It got me confused and the same can happen to other people...

              [1]: https://docs.moodle.org/28/en/Using_Forum#Reply_to_posts_via_email

              Show
              izendegi Iñigo Zendegi added a comment - That's it, Mary, checking that option the reply goes to that special address and is posted in the forum, thanks! I've added it to the docs [1] just now. In that case, shouldn't that "You can reply to this forum post by email." message be shown only if this "Always send email from the no-reply address" is checked? It got me confused and the same can happen to other people... [1] : https://docs.moodle.org/28/en/Using_Forum#Reply_to_posts_via_email
              Hide
              marycooch Mary Cooch added a comment -

              That's very helpful thanks

              Show
              marycooch Mary Cooch added a comment - That's very helpful thanks
              Hide
              dobedobedoh Andrew Nicols added a comment - - edited

              QA test MDLQA-8201 has been written for this feature.

              Show
              dobedobedoh Andrew Nicols added a comment - - edited QA test MDLQA-8201 has been written for this feature.

                People

                • Votes:
                  65 Vote for this issue
                  Watchers:
                  33 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:
                    Fix Release Date:
                    10/Nov/14