This files describes API changes and other work in the diary code.
=== Deferred until fixed. ===
20201006 Diary_627 - Included files are not restored correctly.
20200601 Diary_526r - Make toggle to allow grade and feedback for users with no entry.
    Making changes in the results.php file. Currently the code is just, text, based on
    the diary activity availability.
20210515 Diary_719 - Media files are NOT there after a restore.
20210815 Diary_736 - Need a way to slectively turn off autosave. It is not
    needed when starting a totally new entry. Note: Same for tags.
20210815 Diary_737 - Config settings are not all named the same. Added mod_ to
    the four items that were missing it. As of 20220828 still have three.

20211130 Diary_779 - Need to work on the help pop up windows for stats. Currently
    set this ticket status to waiting.
20220228 Diary_824 - The Moodle Mobile app is not supported.
20230419 Diary_1036 - Diary - Modify Prompts to use Modes to fire up based on resticted
    access or completion.
20230501 Diary_1038 - I think define_restore_log_rules for view all and transfer
    in restore_diary_activity_task.class is missing.
20230831 Diary_1069 - Would be nice if current prompt info was added to the description.
20240221 Diary_1211 - Feature request - Would be nice to be able to use a grading rubric.


=== 3.7.8+ === (Build: 2024020203)
20240409  Diary_1232v - Wrong column name 'titleson'/'enabletitles' in table mdl_diary #37.
    Renamed field and saved new version of install.xml. Made code changes in upgrade.php
    that renames the field if it finds it as titleson so that it becomes enabletitles. 

=== 3.7.8 === (Build:2024020202)
20230523 Diary_1050v - When editing or creating an entry, there are two tag headers. At
    some time, or another, this seems to have resolved itself, so closing this ticket
    and marked as being included in this version.
20231208 Diary_1128v - Need to add a field for prompt background color. Added code and
    settings to the files, as needed. See ticket for details.
20240116 Diary_1172v - Prompts are missing from the report.php and reportsingle.php
    pages. Created new .promptentry, in the style.css file and used in the two report
    files as needed along with new code in results.php to render in report and reportsingle.
20240206 Diary_1196v - Toolbar is missing on the reportsingle.php page. Copied the toolbar
    code from the report.php file over into the reportsingle.php file. I then commented
    out the sort by ascending and descending last name tool button.

20240408 Diary_1231 - Deprecated: Creation of dynamic property mod_diary_renderer::$cm.
    Changed the code, see ticket for details. Deprecation warning no longer occurs.



=== 3.7.7 === (Build: 2023111100)
20220124 Diary_813v - Audio files are being counted as sentences. Only counted if it
    is the only thing in an entry. If there is any other text that starts with a
    paragraph tag, line feed tag, or carriage return with new line tag, the sentence
    count is correct, so the one mode for the error, will not be fixed.
20230523 Diary_1049v - Seem to be using wrong string source in diary/lib.php in line 604.
    Created missing string and changed Diary code to use it. System logs now show entries
    when tags are added, removed, and delted.
20230609 Diary_1052v - Diary - Request for possible CSS to hide empty entries. This does
    the same as the next ticket and I prefer the method I used there, so this is done.
20230609 Diary_1053v - Request to not show empty entries. Added code to create a user
    preference for each Diary activity that can be set or changed by the teacher.
20231010 Diary_1093v - Toggle emails to, Email now, does not seem to eliminate the edit
    time delay for non-editing teachers. Added missing code to edit.php to send emails
    to course non-editing teachers, which was entirely missing.
20231108 Diary_1113v - There has been a new capability requested for a title/description
    for each entry. Now have titles working. Refer to the ticket for details.
20231109 Diary_1114v - Add further capability to the new title for each Diary and it's
    entries. All the needed code and strings have been added and the setting works.
    Refer to the ticket for all the details, as it is a bunch.
20231110 Diary_1115v - Need to add titles to each report entry. Added the needed code
    in the classes/local/results.php page in the, function diary_print_user_entry.
    Putting the code there fixed the views for both the, report and reportsingle, pages.
20231111 Diary_1116v - Need to add Titles to downloads. Added the needed code, performed
    a download, and the titles have been added just before the entries, in the CSV
    download. Do need to investigate using another download format.
20231111 Diary_1117v - The provider.php file needs to also handle titles. Created two
    new lines of code at line 70 and line 240, so that titles are included in the
    metadata and in the export. Request for personal data download works as expected.




=== 3.7.6+ === (Build: 2023092501) (2023092501)
20231013 Diary_1098v - The journal_to_diary_entries_transfer.php file is missing a closing
    bracket in line 76. Changed character from ) to ] on line 76 of the file.

=== 3.7.6 === 2023100800 STABLE (Build date: 2023092500)
20230925 Diary_1075v - Some defaults are missing from the mod_form.php page. Added site
    defaults for editall and editdates to the mod_form.php file. Pending daysavailable.
20231002 Diary_1087v - Latest codechecker says "Import statements must not begin with a
    leading backslash". Made code changes as needed. See ticket for details.
20231002 Diary_1088v - Latest codechecker requires convert from long array(), to short
    array []. Made code changes as needed. See ticket for details.
20231005 Diary_1089v - CSV Download from view.php is generating debug error. Added
    $PAGE->set_url('/mod/diary/view.php', ['id' => $cm->id]); which seems to fix
    the problem with the download.
20231005 Diary_1090v - CSV Download from report.php is generating debug error. Added
    $PAGE->set_url('/mod/diary/view.php', ['id' => $cm->id]); which seems to fix
    the problem with the download.

=== 3.7.5 === 2023080900 STABLE
20230511 Diary_1041v - View completion does not seem to be implemented. Added the needed,
    two lines of code, to the view.php file.
20230809 Diary_1064v - 10 file pull request generated by Catalyst IT Australia. Reviewd all
    code changes and completed the merge. Had a problem with the results.php file and
    fixed it by adding, use moodle_url, at the start of the file.
20230810 Diary_1066v - The index.php file is passing the wrong groupid to results.php
    for diary_count_entries($diary, $groupid = 0). See the ticket for details, but
    I changed the code to pass just the current group ID instead of the whole array.
20230814 Diary_1067v - Pull request #30 from Herbert Owen of Catalyst IT Australia.
    Completed the merge and then tested by making changes to a journal in the test
    course for this. Appears to have worked without any problems.
20230823 Diary_1068v - Pull request #31 and #32 Fix error when resetting courses
    with mod_diary options turned on. 2023082301 Reviewed the two pull requests
    and completed the merge.

=== 3.7.4 === 20230508 STABLE
20210819 Diary_748v - Need Diary settings for errorfullmatch, errorcasesensitive,
    and errorignorebreaks. Added fields to the xml file. Updated the upgrade.php
    file. Updated backup files. Updated the mod_form.php file. 20230508 I have
    implemented the strings and code to use errorfullmatch. For now, my plan is
    to not use errorcasesensitive and erroignorebreaks. I have those covered in
    other ways.
20230506 Diary1039v - At times the function get_common_errors($text, $diary) does not
    return correct results. Two problems, did not have some "i" entires in the glossary
    and needed to remove code that was skipping over matches that were sub-strings.
    In reality, the code was actually working correctly. I just did not truly understand
    what was going on.

=== 3.7.3 === 20230409 STABLE
20200601 Diary_520v - Need to remove un-needed functions from lib.php.20211229 Removed
    function diary_user_complete($course, $user, $mod, $diary) { as it has been
    superseded by public static function diary_print_user_entry($context, $course,
    $diary, $user, $entry, $teachers, $grades) in the results.php file. 20230409
    Removed, function diary_log_info($log) {, from lib.php.
20230409 Diary_1029v - In Moodle 4.2 I am getting multiple Invalid event function
    defined messages. Went through all diary files and removed deprecated log code. 


=== 3.7.2 === 20230402 STABLE
20220220 Diary_823v - Missing completion information on the view.php page. Got
    it working on course page - BUT - might need another ticket for further
    development to also require X number of Posts.
20220912 Diary_920v - It would be nice to have a button that would let users show/hide stats
    on view.php. 20230322 As of today, I have a nice selection list working for this.
    This also clears Diary_935.
20221012 Diary_933v - Should, Character count, include spaces? 20230129 Currently, I
    have the code changed so that spaces are not counted, and I have asked for votes in
    the General Help Forum. So far, the consensis is to not count spaces.
20221013 Diary_935v - Since the page for each entry is getting longer, might be nice
    to be able to toggle stats view on/off. I have added, Hide stats/Show stats, icons
    at the end of the each entry title or edit pencil. 
    20230322 of of this day, I totally changed the code and have a slection list working.
20221116 Diary_954v - View x diary entries count seems to be wrong. It was not taking the
    correct groupid to use for the count. See the ticket for further details on the fix.
20221124 Diary_962v - The prompt_edit.php page shows, Static text testing $diaryid,
    that should not be there. Needed to put it back for development, so as of 20230129
    it is still there, so I opened another ticket, Diary_1003.
20230128 Diary_1001v - Issue #18 Link to documentation on github wrong? 20230128 Changed
    the link and made it current, so that instead of pointing to the github wiki it
    points to the Moodle wiki. 
20230128 Diary_1002v - Issue #19 Untranslatable string "create new prompt" 20230128 Added
    new string in en language file. Modified the code in file, prompt_edit.php, at about
    line 385 to use the new string, $string['createnewprompt'] = 'Create new prompt';
20230128 Diary_1003v - Issue #20 Untranslatable string (or thing) Static text testing
    $diaryid. 20230129 Line 476 of mod_form.php was added just for development, and
    then I got so used to it being there that I just forgot to remove it. It will be
    removed from the next release.
20230131 Diary_1005v - Change email toggle to icon and move it to the toolbar. Instead
    of an icon on the toolbar, I have created a selector. It can only be seen by entrymanagers.
20230131 Diary_1006v - In the results.php file, there are 12 places where $esql should
    just be $sql. Changed all 12 from $esql to $sql.
20230204 Diary1007v - Need to change email default settings. In the settings file,
    I changed the default from 1, to 0, in lines 256 and 260.
20230204 Diary_1008v - Need email settings added to the mod_form.php page. Added settings,
    added fields, updated install.xml, updated backup. bumpted version. 
20230227 Diary_1014v - Need to see about adding a Tag field when editing/creating a
    new diary entry. Added code as needed using example from, Tag API.
20230313 Diary_1020v - Need to add the prompt used for an entry to the view.php page.
    Added the needed code in view.php, starting down around line 493. 
20230325 Diary_1025v - The tag index page shold only show a student their personal Diary
    entries, but all entries to teachers, etc. Added needed code to function mod_diary_get
    _tagged_entries in locllib.php. See ticket for further details.
20230326 Diary_1026v - Emails being sent twice and need to improve the email messages located
    in edit.php. Fixed the emailpreference code and added a preference menu on view.php page.
20230327 Diary_1027v - Need to fix emailnow for when the teacher provides feedback. Changed
    the $cuttofftime and added $cuttofftime2 in cron_task.php, plus, then added a check
    of each entries timemarked vs applicable cuttofftime and emailpreference. 
20230402 Diary_1028v - Text at about line 336 in edit.php needs to be changed to a string. 
     Added the needed string to the diary/lang/en/diary.php, file.


=== 3.7.0/1 === 20221123
20210815 Diary_741v - Need to verify communications when rating or when student
    adds/edits an entry. Added needed code in edit.php down around line 261. Need
    to verify it works for sending an email as soon as a student saves an entry.
    Verified it does as of 20221024.
20210815 Diary_746v - Rating a zero results in student seeing, No Grade. Problem was due
    to the way I was doing a branch check in results.php down around line 588. Dropped
    the branch check and changed the way $gradestring was created.
20220218 Diary_820v - A user requested adding teacher notification when student makes
    an entry. Added needed code in edit.php down around line 261.
20220426 Diary_847v - Would be nice to have automatic weekly writing prompts. Pending
    20220930 Manual creation at the moment.
    20220930 Can see them all for a diary via prompts_view.php plus two others
    20221001 Can now delete a prompt and log the event Diary_924.
    20221025 All appears to work as needed, including backup and restore.
    20221027 Discovered restore was NOT correct. Now fixed. Also fixed the case where there
             are too many current prompts. Only way to proceed is to fix the problem.
    20221113 Rewrote CSV download file to include prompts.
20220910 Diary_919v - Warning: Division by zero in line 364 and 367 of diarystats.php if
    text is only numbers. Changed lines 364 and 367 to include max of 1, so when words is
    zero, the 1 is substituted to eliminate the devide by zero error.
20220917 Diary_922v - Need to modify Feature switch to detect need for FEATURE_MOD_PURPOSE.
    Changed code to work the same way as Checklist. Also have same way as Journal, but
    commented out.
20221101 Diary_924v - Need to be able to remove prompts and log the removal. Have actually
    worked on this for the past couple of days and have finally got both the actual delete
    of a prompt record and a log entry of who did it, which course module it was done in,
    and which prompt ID was deleted.
20221101 Diary_925v - Need to give an error if any prompt dates overlap. Added needed code
    in view.php.
20221102 Diary_926v - In prompts_view.php when getting the prompts they need to be sorted
    in datestart order. Added a sort in line 85 of prompts_view.php, where the prompts are
    being retrieved via $prompts = $DB->get_records().
20221002 Diary_927v - Need strings for table column headings in prompts_view.php and
    yyyprompt_edit.php. Created the prompts and prepared both files to use them.
20221103 Diary_928v - Prompt create works but update also creates a new prompt instead of
    just updating the record. 20221017 Finally! I now have view, create, edit, and delete
    working. I dropped back to the 20221005 version and then worked on the cases in the
    switch in the yyyprompt_edit.php file until I started getting the results I wanted.
    Changed from yyyprompt_edit.php to just prompt_edit.php after I dropped the previous
    version of the file.
20221107 Diary_929v - Fails to show No prompts when there are None available. 20221020
    Showing the two strings that report the total prompts, past count, courrent count,
    and future count. echo get_string('tcount', 'diary', $tcount); echo get_string
    ('promptinfo', 'diary', ['past' => $past, 'current' => $current, 'future' => $future]);
    I think this will be sufficient, but may try totally hiding ino if there are not any prompts.
20221111 Diary_931v - Sentence punctuation without a trailing space is counted as a sentence.
    20221011 In diarystats.php down around line 888, I have changed the code for counting
    sentences. I am experimenting with separating $entry into paragraphs, then reassemble
    into one text blob, before trying to count sentences. With my change to the $pattern to
    look at for splitting into sentences, I am able to ignore periods embedded in words.
    This method seems pretty good at NOT counting something like, edit.php as the ending
    and starting of a new sentence, but as one word.
20221011 Diary_932v - Filenames with their extension are incorrectly counted as two words.
    Changed to new code so that I am counting based on character groups (words) separated by
    at least one space. This eliminates erroneously counting words, such as filenames.txt with
    embedded periods, as two words.
20221012 Diary_934v - Character count is wrong when using multibyte characters such as é.
    20221012 Went to the php manual page for strlen() where I discovered it counts bytes,
    so multibyte letters, such as é, was increasing the character count by at least one
    extra. I discovered that I should have been using, iconv_strlen($entry), or
    mb_strlen($entry). 20221012 Currently using mb_strlen().
20221013 Diary_936v - Should add a radius to the, Start new entry, button on view.php
    page. Added, "style" => "border-radius: 8px" in the two places needed for this.
20221019 Diary_937v - The edit.php file line 369/370 is broken on my 3.11 sandbox site
    on Onos. This was the same problem as Diary_949. While fixing, I discovered another
    problem that is fixed as part of this ticket caused when Diary ID has been deleted.
20221020 Diary_938v - Need to add a promptid field to the mdl_diary_entries table. See
    the ticket for details as there is a lot of stuff listed on it.
20221023 Diary_939v - Need to create new icons, monologo.svg and monologo.png. 20221023
    Created both icons and they are being used in my Moodle 4.1.0 test site and my normal
    dev site. 
20221024 Diary_941v - Prompts are not backed up and restored correctly. Had one field
    missing in the backup_diary_stepslib.php file of the entries table. Added field,
    promptid, and backup and restore seems to be working correctly.
20221025 Diary_942v - Need to add code to delete promts when doing a course reset. Modified
    the code so prompts are deleted when a diary is deleted. For individual prompts, still
    in progress for detecting and preventing delete if it is still in use.
20221027 Diary_944v - Language strings need fixing and sorted. Added strings as needed
    and sorted the file contents so the string names are in alphabetical order.
20221105 Diary_948v - Prompt events need to be implemented/worked on. Implemented
    prompt_removed.php, prompts_viewed.php, prompt_edited.php, prompt_in_use.php, and
    prompt_created.php.
20221106 Diary_949v - Fatal errors in edit.php in Moodle 3.11.X+. Code for showing the
    intro is the problem. Rewrote the code so it works for M311 and lower as well as
    M4 and higher.
20221107 Diary_950v - CSV file download needs re-write and changed to include prompt data.
    Rewrote the file code in results.php to include the prompt data. 
20221108 Diary_951v - The diary_entries and diary_prompts tables both have a text field
    and need separate language strings for CSV downloads. 20221108 The mdl_diary_entries
    table needs $string['entry'] = 'Entry'; and the mdl_diary_prompts table needs
    $string['text'] = 'Enter your writing prompt'; Made the needed changes.
20221113 Diary_952v - The results.php file down around line 364 sometimes can break due
    to hardcoded index offset. Changed code to do an array_shift(array) first, then hard
    coded to use an index offset of zero, instead of one. Works great.
20221116 Diary_955v - First diary entry is duplicated in the CSV download file. Completely
    rewrote the CSV download code. 
20221117 Diary_956v - The provider.php function export_user_data() line 191 appears to be
    a bug. Comletely rewrote the provider.php file. This is not a problem, now. 
20221120 Diary_960v - Missing the privacy:metadata:diary_entries:xxx strings. Added the
    missing strings. 


=== 3.6.0 === Released 20220909
Diary_672v - Investigate using authenticated user role for front page access. Moodle
    has changed so much over the past few releases, so this ticket has been resolved
    by Moodle code changes. Moodle itself provides the capability to allow users to
    have access to a front page Diary by just changing permissions for the individual
    Diary activity and not for the whole front page, like I had to do when I first
    opened this ticket.
Diary_623v - Diary Restore is missing two strings. This was an old ticket for a
    Diary activity on an old server. All needed strings are there, now.
Diary_750v - V3.4.1 has three code style errors. Added the missing final blank line
    to files diarystats.php, renderer.php, and settings.php. Pushed to github.
    This ticket seems to be missing from my tracker system.
Diary_812v - Diary v4.0 changes for Moodle 4.0. Made a number of changes. See
    the ticket for details. Mostly was removing un-needed code.
Diary_845v - Invalid get_string() identifier: 'lastedited' or component 'diary'.
    Changed diary/db/mobile.php lang string from ['lastedited', 'diary'], so
    that it is now ['lastedited', 'moodle'].
Diary_883v - In Moodle 4.0.x the activity name, description, and completion labels get
    duplicated. In view.php down around line 225, I added an if to check for an intro
    and branch, to decide whether to show the items, or not.
Diary_912v - When auto-rating is set for characters, it always reports zero. Basically,
    changed a number of places where it was trying to use 'chars', so that it was
    now using the full word, 'characters.' Also changed the final line of the
    auto-rating to show 0%, instead of a negative number.
Diary_913v - Need to change MOD_PURPOSE_COLLABORATION over to MOD_PURPOSE_ASSESSMENT.
    Made the needed change from, MOD_PURPOSE_COLLABORATION, over to, MOD_PURPOSE
    _ASSESSMENT. New color and new icon, look good. (See ticket Diary_914) 
Diary_914v - Need a better icon version to use as the new monologo.svg file. Used
    Inkscape to modify the icon.svg file then saved as monolog.svg. Works great.
Diary_915v - Need to change auto rating from just one item, to any combination of
    character, words, sentences or paragraphs. Modified and added a couple of
    strings, and made a LOT of code changes and additions in the diarystat.php
    file.
Diary_916v - Need to change min and max to strings in diarystats.php file. Made
    the needed changes in four places for each one and added the two need strings
    to the language file. 
Diary_917v - Backup and Restore results in missing data. Corrected 4 field names in
    the backup_diary_stepslib.php file.

=== 3.5.2 === Released 2022040100
Diary_797v - Need new Moodle 4.0 icon. Created a branch check and
    new switch for Moodle version higher than 3.11 that will use
    the new MOD_PURPOSE_COLLABORATION.

=== 3.5.1 === Released 2022021200
Diary_815v - Issue#16 at github regarding hardcoded text.  20220208 Revisited
    issue#16 as the .01+ version introduced some hard coded text checking that
    needed to be changed to string checks so it would work with other languages.
Diary_818v - Moodle reports two warnings for backup. Upon close examination of
    the backup_diary_stepslib.php file, I found the errors. I changed multiple
    fieled names, in the install.xml file, but I missed changing two field names
    in the backup_diary_stepslib.php.
Diary_822v - When I run php adhoc_task.php --execute I get an Undefined property
    for $cmid. 20220220 Made changes in the privacy.php file as needed.


=== 3.5.0.01+ === Released 2022012201
Diary_815v - Issue#16 at github regarding hardcoded text. Changed strings as needed
    and modified the three lines in the stats table regarding autorating item.
    Modified its strings to use multiple {$a}'s and converted to just two lines
    of text in the table. 20220208 Revisited issue#16
Diary_817v - Math code missing for Potential Common error penalty. Switch string
    to use multiple {$a}'s in strings and accidentally left off the math code
    for this answer. Added the math calculation back and verified it is working
    correctly.

=== 3.5.0 === Released 2022012200
Diary_514v - Sort order label needs css setting. Removed all the hard coded h5's.
    There were about 21 of them, 19 in view.php and two in the language file. 
    Added classes, one for the whole table and one for some table cells.
Diary_654v - There is a request for using Atto editor in report.php for feedback.
    Have added the Atto editor so it appears on both the report.php and
    reportsingle.php pages. Still need to add file handling.
Diary_707v - link to index.php page on report.php page should be on the same line
    as the toolbar. Made code changes as needed to move the link.
Diary_711v - File report.php has hard coded tags that should be removed. Removed
    them as part of my work in CSS changes. 20211201 Converted more hardcoded
    text to strings some of which were in diarystats.php.
Diary_722v - Should move toolbar to the right like I did on the report.php page.
    Moved toolbar to the right on view.php page.
Diary_730v - Need an enablestats setting. 20210812 Created the new setting
    along with new fields, selector, strings, and code as needed.
20210812 Tested and seems to be working.
Diary_732v - Missing the Diary icon on moodle.org. 20210815 This was Diary_765
    on moodle311. 20210815 Forget what day I did it, but I changed from svg file
    to gif and the icon now shows on moodle.org.
Diary_733v - See about moving functions from mod_form to diarystats. Was Diary_764
    which I have abandoned on moodle311. 20210712 Moved function get_item_types($itemtypes).
    20210712 Moved function get_rating_options($plugin). 20210712 Moved 
    get_showhide_options($plugin).
Diary_734v - Need to convert from lib.php cron function to /classes/task/cron_task.php.
    Added tasks.php file in db folder. Added task folder in classes folder. Added
    cron_task.php file in classes/task/. The file, cron_tasks.php, still needs
    some more work.
Diary_738v - Need activity color setting for entry's. Added new fields for the
    two colors in mdl_diary table. Made changes to the install.xml and upgrade.php
    to add two new fields, entrybgc and entrytextbgc. Updated the mod_form.php
    file to now have appearances settings for the two colors. Added code changes
    so the new settings are actually used. Added code changes to backup, which
    was tested and it worked as expected.
Diary_739v - Teacher's name is missing from reports. Added a new line break which
    moved Rating and Average of ratings down one line. Then added code to output
    the name of the last teacher to give feedback/rating. Seems to be working as
    expected.
Diary_740v - Need new DB fields for new statistics settings. Added nine new fields
    to the mdl_diary table. Have gone back and added more fields for added ratings.
Diary_742v - Need to pass diary->errorcmid to the get common errors function. Instead
    of just passing $text(cleaned plain text) and $errorcmid(actually $diary->errorcmid),
    I switched to passing $text and $diary. I found that I needed another item from
    $diary, so it is easiest just to use the whole $diary array.
Diary_743v - The mod_form.php needs updating for new settings. Added new settings
    and other bits of code as needed to implement the new settings. The list still
    needs work. It is not saving and restoring, yet.
Diary_744v - The settings.php needs updating for new settings. Added headings, strings,
    and settings as needed. Some future use code is no longer there, but a copy
    is in the beta and alpha code versions.
Diary_745v - Need to develop additional statistics for each diary entry. Have
    created 20 stats and now need to thoroughly test them. Still in development!
    20210718 Rewrote count_syllables function and totalsyllables. 20210719 Added
    two new class files: pluralise.php and syllables.php that greatly improve
    the syllable count accuracy.
Diary_749v - Multiple errors when, Type of countable items, is None. Added a check
    to detect and prohibit when trying to autograde with None. 
Diary_767v - Need Journal to Diary entries migration tool - admin only! Got a
    version working with some error checking. 20211207 Added code, event string,
    and journal_to_diary_entries_transfer.php file to log transfer events. 20211208
    Made change to the diary id shown to reflect that of the destination diary
    instead of the diary the admin is in.
Diary_768v - Journal to Diary xfr needs to tag the feedback with info that it is
    a transfer entry. Created initial code version and it works as expected. Updated
    the code to fix error when the entry has no feedback in the journal as it is
    going to have some added during the transfer. 2021201 Changed code so that the
    inclusion of this is optional.
Diary_769v - Journal to Diary xfr breaks if there are no Journal activities in the course.
    This was fixed while working on other recent tickets -767, 768. Added a new string
    for this: $string['journalmissing'] = 'Currently, there are not any Journal
    activities in this course.';
Diary_770v - Add autorating buttons Note: report.php > results.php has hardcoded
    text on new buttons. - Fixed. Added code to create the two new buttons and they
    both reliably work on report.php page. STILL NEEDS WORK on the reportsingle.php
    page for the, Save all feedback and Add to feedback buttons!
    CODE IS IN results.php DOWN AROUND LINE NUMBER 420. 20220108 Fixed and only
    using the one, Save all feedback, button. Code for the, Add feedback, is there
    but commented out for later possible use.
Diary_771v - Need a title centered at the top of the xfr new menu item. I added
    an h3 with a style to center align the new heading. Used an existing string.
Diary_772v - The item being used in the auto-rating needs to detect when NOT short,
    or you have more than required. Changed the code and now getting expected
    results.
Diary_773v - Would be nice to include percentage to shortwords, mediumwords, and
    longwords. Added code to calculate the three percentages to two decimal places.
Diary_774v - Would be nice to include a statistic for Average Syllables per word.
    Added code and error prevention for divide by zero for cases where student
    did not submit any text, only some kind of file.
Diary_775v - Would be nice to include a statistic for Average word length in
    characters. Added code and error prevention for divide by zero for cases
    where student did not submit any text, only some kind of file.
Diary_776v - Need to check for and prevent divide by zero errors in the stats.
    Broke up the $currentstats variable build and added an if check for
    uniquewords before I started adding any stats. Added a string for,
    No text detected.
Diary_777 - FK Grade formula needs to include max. Changed formula to use
    max so that the FK Grade cannot go below zero.
Diary_778v - Need to remove hard coded text and change to strings in diarystats.php.
    Made changes as needed and converted some to use {$a} to help simplify the
    code.
Diary_780v - Need results displayed after doing a transfer. Added code in
    journaltodiaryxfr.php file down around line 284 that checks counters added
    around lines 34, 35, 97 and 161. Also added a string, xfrresults, for the output.
Diary_781v - Would be nice to fill the remaining statistics cell with Average words
    per paragraph. 20211208 Moved the last row, averages, of the statistics general
    table up one row so that Lexical density, FK Grade, Flesch reading ease and Fog
    index are in the last row of the table. I also added a new, Average words per
    paragraph, statistic in the last cell of the, averages, row.
Diary_782v - Reportsingle user page needs Save and stay here button. Changed the code
    for the, Add to feedback and Clear feedback buttons along with a few other items
    and now the Save all feedback button seems to work the way I want it to. 
Diary_783v - Code for, Save all my feedback, button in report.php and reportsingle.php
    needs cleanup. Eliminated all the escaped double quotes and changed them as
    needed to singles. Also moved duplicate code to a single function in results.php.
Diary_784v - Down about line 446 breaks the view.php page. 20211229 Over the past few
    days, I have worked on this and other related "undefined" variable errors and
    everything seems to be working now.
Diary_785v - Autorating calculations are incorrect. 20211229 Over the past few weeks
    I have worked on making sure the calculations are correct. Looks like they are
    now, no matter which Item I select for the autorating.
Diary_786v - View all course diaries, link is giving a debug warning. Got it fixed
    but I think I need to revert the sql part of the code as it started causing an
    undefined variable warning on the view.php page. Got that fixed, but in a way
    I really don't like as it requires reading the diary record for every diary
    in the course, whereas the original method only needs to read one file. I have
    added the action in report.php line 397, and index.php line 146.
Diary_787v - The, Save all my feedback, button on reportsingle.php page needs to
    stay on the page. The button now stays on reportsingle.php page. Changed
    form action from report.php to reportsingle.php.
Diary_789v - View.php needs modifying due to changes in diarystats.php. Copied
    the code that generates the stats from results.php to file view.php, and
    stats table is now working again.
Diary_791v - Need to move function diary_count_entries($diary, $groupid = 0)
    from lib.php to results.php. 20211219 Copied the working function in the
    lib.php file and moved it to classes/local/result.php, making changes as
    needed to get it to work.
Diary_792v - Notice: Undefined variable: currentstats in  
    /var/www/moodle40/mod/diary/classes/local/diarystats.php on line 469.
    Moved the return $currentstats; and return, inside the if and else of the,
    function get_diary_stats($entry, $diary). 
Diary_793v - When looking at Complete Report you get:- Exception - Call to
    undefined function diary_format_entry_text(). Function was moved to
    results.php but the call was not modified to: 
Diary_795v - Automatically added Notes in the Description should only appear
    when editing/making new entry. This is now handled as a function call
    with the, public static function get_minmaxes($diary) { located in
    diarystats.php.
Diary_796v - enableautorating is not working correctly. This was actually
    being caused by two problems, one in the mod_form.php file and one
    in the diarystats.php file. See the ticket for details. 
Diary_803v - Error message, No text detected, quit working correctly. Modified
    code to add table definition and return $currentstats in diarystats.php
    file down around line 460. 
Diary_804v - the cron_task.php file line 32 needs to be changed, removed,
    or commented out. Leaving it at line 32. Had a mistake in the branch
    check. Added more log message details.
Diary_805v - The Grade shown in various places is not being updated when the,
    Clear feedback, button is clicked. Added code to delete the correct
    rating table entry, then update the grade for the user.
Diary_806v - The code in cron_task.php, public function execute(), does not
    work correctly. Turned out that I only needed to add username to the
    requireduserfields list at about line 70. I also moved the list so I
    only had to create it once. I also tidied up the log messages, and added
    ones for older versions of Moodle.
Diary_810v - Need settings for alwaysshowdescription. Added new db field,
    alwaysshowdescription, added it to settings.php, added it to mod_form.php,
    added code for branch check on view.php, and added features,
    FEATURE_MOD_INTRO and FEATURE_SHOW_DESCRIPTION.

=== 3.4.1 === Released 2021062100
Diary_741 - In results.php, function is_available, is duplicate of, function
    diary_available . Removed code for, function is_available.
Diary_742 - Issue#9 Possible to add entries for past date. Same fix as 743.
Diary_743 - When editdates is disabled, Save, is broken. Added code that detects
    a changed timecreated, and prevents it while automatically adding info about
    the attempted change in the entry feeback (entrycomment) area.

=== 3.4.0 === Released 2021061400
Diary_142 - link to index.php page on report.php page should be on the same line
    as the toolbar. Made code changes to move the link.
Diary_143 - Backup is broken, see issue #12 and #13 on github. These two issues
    were actually fixed in an earlier v3.2.x, but I forgot to close the ticket.
Diary_145 - In Moodle 3.11 - String [grade,core] is deprecated. Added branch
    check. 3.11 and above use gradenoun. 3.10 and below use grade.
Diary_148 - Recent activity in M3.11 is showing user_picture::fields() is deprecated.
    a branch check M3.11 and above use new method. M3.10 and below use old one.
Diary_728 - Need to add word and character count to the report and
    reportsingle page, entries. Added needed code and three new strings. Added
    counts to view.php page entries, also. (raw, clean, and standardized)
Diary_729 - two sets of buttons at bottom of report when everyone has at least one
    entry. Added a check for empty $user list and if empty, skip last button set.
Diary_730 - String [grade,core] is deprecated. Added a branch check for string
    compatibility in renderer.php, diary_print_feedback function, about line 209.
Diary_731v - In Moodle 3.11 user_picture::fields() is deprecated. Added a branch
    check and code to fix the deprecated item. NOTE: In changing from one Mooodle
    to another, some ticket numbers got messed up. This is one of them and is
    very similar to Diary_721v Recent activity in M3.11 is croaking regarding user
    pictures, which was fixed a long time ago so I am marking it resolved, too.
Diary_738 - It is possible to add entries for past dates. Added check in edit_form.php
    that prevents sending the hidden calendar/date selector to the client computer.
Diary_739 - A user can directly access edit.php via URL change when the diary is
    closed. Added code to check to see if the diary is closed, and if so, log an
    invalid access about it.

=== 3.3.0 === Released 2021051600
Diary_707 - link to index.php page on report.php page should be on the same
    line as the toolbar. Moved the Index link down to the same line as the
    group selector and the toolbar.
Diary_581 - Need to redo the styles.css file and remove un-used entries.
    Made changes as needed. Added a lot of comments.
Diary_711 - File report.php has hard coded tags that should be removed. Removed
    as part of CSS changes. 
Diary_712 - In Moodle 3.11 - String [grade,core] is deprecated. Added a
    branch check in results.php file about line 421.
Diary_722 - Should move toolbar to the right like I did on the report.php page.
    Used span to float it to the right. 
Diary_144 - File report.php has hard coded tags that should be removed. Removed
    tags as needed.
Diary_66 - Sort order label needs css setting. Removed hard coded css.

=== 3.2.1 ===
Diary_703 - print_error deprecated - in multiple files. Fixed in
    Multiple places.

=== 3.2.0 ===
Diary_696 - Need mode to start new entry each time you click the new
    entry button. Added code in edit.php about line 87. Added new string.
    Added code in view.php to decide what text to put on the Button.

=== 3.1.2 ===
* Fixed  CSS problems in styles.css reported by Moodle for v3.1.1.
* Modified method to show/hide date time selector for editing entry dates.

=== 3.1.1 ===
* Added new reportsingle.php that lets the teacher see all of the
    entries for a single user. Can then grade and add feedback
    to one or more of the individual entries.
* Fixed edit_form.php Edit all dates calendar selector. Use hideIf not enabled
    and using Moodle 3.4 and higher. Use disableIf not enabled and using
    Moodle 3.3 and lower.

=== 3.1.0 ===
* Fixed some code style errors in results.php and report.php.

=== 3.0.0 ===
* Diary_585 - Need capability to create an entry for a skipped day. Added
    date time selector and language string for use on edit_form.php that
    allows a user to change the date of the entry being edited.
    
=== 2.1.1 ===
* Added missing header label for sort order at top of report.php page.
* Added missing diary name header label at top of report.php page.

=== 2.1.0 ===
* Changed sql for lib.php, function diary_get_participants($diaryid).
* Changed sql for lib.php, function diary_get_users_done($diary, $currentgroup, $sortoption)
    by adding the $sortoption for the new toolbuttons on report.php page.
* Added two new sort order toolbuttons to report.php for sort lastname ascending and descending.
* Added, Edit all, setting to enable editing all entries. Disable means user can edit the
    entry for the current day only.

=== 2.0.0 ===
* Fixed backup file to include ratings.

=== 1.9.0 ===
* Fixed a temporary restore so that ratings are now being generated as expected.
* Modified travis.yml file and now getting email saying it passed.

=== 1.8.2 ===
* Added some more missing code to the backup and restore processes. Still not working as expected.
* Modified travis.yml file.

=== 1.8.1 ===
* Added missing fields to the backup and restore.
* Added function to create ratings in the restore process. Not working as expected.

=== 1.8.0 ===
* Added missing space in front of Toolbar label on report.php page.
* Moved view.php sort order and rating type heading labels up five lines in the code
    so that they are also visible when the Diary activity is closed.
* Added, Editing period has ended, message just under the heading, that is shown
    only when the activity is closed.

=== 1.7.0 ===
* Fixed toolbar in render.php. Changed from html_writer::alist to $output.
* Fixed toolbar in report.php. Changed from html_writer::alist to $output.

=== 1.6.3 ===
* Fixed incorrect greeting in emails sent to users notifying them of feedback.
* Fixed dates so they translate to language in use.

=== 1.6.2 ===
* Fixed Embedded images missing when editing an entry. (#3)
* Fixed hardcoded strings.

=== 1.6.1 ===
* Added Availability help icons to the mod_form.php.
* Set mod_form.php to hide the Days available setting unless using course weekly topic format.
* Fixed error when student trying to edit post. (#4)

=== 1.6.0 ===
* Added help icons for all three date available items.

=== 1.5.1 ===
* Fixed savepoints problem.

=== 1.5.0 ===
* Fixed perpage selector that was broken by enabling timeopen and timeclose.
* Fixed perpage count actually displayed that was off by one.
* Added total entry count right after the Entries per page selector.
* Added new string to show, out of xx entries., right after Entries per page selector.

=== 1.4.0 ===
* Added code to view.php to show all entries when timenow > timeclose.
* Code cleanup.
* Changed back to previous travis.yml

=== 1.3.0 ===
* Added availability dates to the Calendar.
* Added code so that when not using weekly format, availability dates can be used to control diary access.
* Code cleanup.

=== 1.2.0 ===
* Added user names salutation to strings used for message/emails sent to user.
* Cleanup of more code prechecks listed for 1.0.1.(10|4)
* Changed edit mode to show, Diary description instead of, Diary question.
* On the view.php page, added a link for students to index.php page.
* Added code to enable, Expect completed on, date.


=== 1.1.0 ===
* Cleanup of more code prechecks listed for 1.0.1.(21|4)
* Added link on view.php to index.php to show all Diary's in the course.
* Added link on report.php to index.php to show all Diary's in the course.

=== 1.0.1 ===
* Cleanup of most code prechecks listed for 1.0.0.

=== 1.0.0 ===
* Cleanup of code prechecks.
* Added toolbar with download, page reload, edit, and four sorts to view.php page.
* Added toolbar with download, page reload, edit, and four sorts to report.php page.
* Added page format color setting to control look of view.php and report.php pages.
* Added capability to start new entry each calendar day.
* Added Save all feedback and Return to Diary, buttons between each entry on report.php page.
* Added, Entries per page, selector on the view.php page.
* Added timecreated to use as title for each entry on the view.php page.
* Added Details listing to each entry on the view.php page.
* Added notice that an entry has not been given feedback or rated yet, for each entry on view.php page.
* Added Rating system.
* Removed hard coded text in print_errors in edit.php and report.php.
* Added an edit link/icon after the title of every entry on view.php page
