Commit graph

412 commits

Author SHA1 Message Date
nicolasconnault
607a0bbbc9 MDL-9506 Successfully implemented the grade_tree methods for moving an element somewhere else in the tree. Tests pass successfully. However the test data doesn't yet include more than 1 top-category, so I can't test moving it. Direct insertion and deletion have not yet been tested, although insertion is used by the move_element method. 2007-05-17 04:13:42 +00:00
nicolasconnault
8ff4550af2 MDL-9506 Refactored some of the category methods into grade_tree, same for unit tests. 2007-05-17 02:22:32 +00:00
nicolasconnault
e835361626 MDL-9506 Created new grade_tree object for working with a tree of grade_categories and items. 2007-05-16 15:04:35 +00:00
nicolasconnault
e81235897c MDL-9506 Fixed a couple of failing unit tests, due to new test data 2007-05-16 07:47:04 +00:00
nicolasconnault
c78b0cc59a MDL-9506 Reorganised unit tests a bit, added some stubs and tests for grade_category, and corrected missing grade_finals for orphan grade_items and categories. 2007-05-16 03:17:46 +00:00
nicolasconnault
0dfe77317a MDL-9506 grade_category::display_grades() and grade_category::get_tree() correctly built the headers for a HTML table of grades, with two layers of categories and one layer of grade_items. Empty filler cells are used when a 1st or 2nd level category doesn't exist for a grade_item. 2007-05-16 02:47:56 +00:00
nicolasconnault
5e16f809f8 MDL-9506 Experimental development of numbering and displaying of category and items tree/table. Messy work :-) 2007-05-15 09:59:53 +00:00
toyomoyo
9492291c82 some changes to events to make grade_added work 2007-05-15 03:19:01 +00:00
nicolasconnault
dda0c7e666 MDL-9506 Added some unit tests, found some errors, and realised they came from incorrect setup unit test data, which I corrected (grade finals for item 3 were set to 2-digit ints although item 3 was a scale of 1-7. 2007-05-14 08:18:03 +00:00
nicolasconnault
096858ffcf MDL-9506 Finally cracked the category aggregation. However, more thorough unit tests need to be written, with exact expectations instead of ranges, as currently used. All unit tests pass. 2007-05-14 04:14:22 +00:00
nicolasconnault
2df712352d MDL-9506 Almost completed category aggregation, including generation of raw and final grades held by these categories. Only a few small glitches remain, that cause these grades not to be generated properly. This is the last critical element of the gradebook API, so I'm looking forward to finishing it :-) 2007-05-11 08:46:34 +00:00
nicolasconnault
77d2540eea MDL-9506 Finished implementing the propagation of needsupdate flag up the hierarchy when a lower element justifies it. All unit tests pass. The next task is to implement the generation of raw grades and final grades based on this needsupdate setting. 2007-05-11 03:29:00 +00:00
nicolasconnault
1d4b666828 MDL-9506 Fixed a bug with the fetch method. This method should not be called statically when setting an internal object. For example, when the grade_category is calling its load_parent_category, it should not call grade_category::fetch, but new grade_category. Otherwise, the method assigns the new variables to the calling object. 2007-05-11 02:43:46 +00:00
moodler
b55997c112 Removed set_timecreated and just tidied up some time-related things 2007-05-11 02:11:30 +00:00
nicolasconnault
8f4a626d5c MDL-9506
grade_grades_raw
    added grade_item object
    added load_grade_item()
    added call to grade_item->flag_for_update() when object is inserted, deleted or updated
grade_grades_final
    added grade_item object
    added load_grade_item()
grade_grades_text
    added grade_item object
    added load_grade_item()
grade_item
    added qualifies_for_update()
    added call to grade_category->flag_for_update() when object is inserted, deleted or updated (only when qualifies_for_update() is true)

However since I have made this last set of changes, the unit tests are performing extremely slow, and several of them fail. I suspect that there is a serious performance issue involved in using objects too heavily, instead of performing more SQL queries, especially when updates are concerned. Often a complete object is SELECTed before it is amended in an object form then UPDATEd.

In the next iteration I will look at this seriously, and put together some tests with thousands of users and many grade_items, to see how well the API responds.
2007-05-10 08:08:43 +00:00
nicolasconnault
8c8462437d MDL-9506
grade_category:
    new parent_category object
    new load_parent_category() method
    new flag_for_update() recursive method
grade_item:
    new category object
    changed get_category() to load_category() and updated testgradeitem
    added missing idnumber field
    new flag_for_update() recursive method
2007-05-10 02:34:01 +00:00
nicolasconnault
5de0c5cb76 MDL-9506 Replaces grade_grades_text.gradesid by composite key userid and itemid. 2007-05-09 09:01:56 +00:00
nicolasconnault
6c76ea8dfa MLD-9506 Grade_grades_raw object now infers grademax and grademin from scale, if scaleid is given at the time of insert of update. 2007-05-09 08:56:08 +00:00
nicolasconnault
6527197b4e MDL-9506 Unit test tables are now created and emptied using XMLDB. raw.gradescale and final.gradescale have been removed in favour of a single gradevalue. Scale value is no longer rounded until moment of display. A number of other changes which you can look at by browsing the diff :-) 2007-05-09 07:50:28 +00:00
nicolasconnault
251aa315d1 Removed breaking unit test, originally set up to test xhtml validity throughout the site. 2007-05-09 05:42:06 +00:00
nicolasconnault
2c72af1f08 MDL-9506 Stuck on grade_category->generate_grades. I cannot figure out how to recursively generate raw grades for each category's associated grade_item based on that category's children categories and items. Heaps of other changes with this commit, including a new grade_object::update_from_db() method, which uses the state of the record in DB to update the current object with a matching id (useful when you insert an incomplete object in the DB and want to get the default values as set up in the DB). 2007-05-08 08:01:55 +00:00
nicolasconnault
0aa32279b7 MDL-9506 Issue 1: adjusting a gradeitem's value would result in a grade_final object with gradevalue assigned, even when a gradescale should have been assigned. Issue 2: double grade_final entries when calling grade_item->load_final() after grade_item->generate_final(). Issue 3: Calling grade_item->update_final_grade() without first calling grade_item->generate_final() would result in fatal error. generate_final() is now called if the raw and final arrays' sizes don't match. 2007-05-08 02:20:26 +00:00
nicolasconnault
f151b07393 MDL-9506 Added category's associated grade_item object, and changed unit tests database data so that it creates its own test tables. 2007-05-07 07:33:11 +00:00
nicolasconnault
712d500777 MDL-9506 Removed implicit loading of associated objects from constructors (grade_item and grade_grades_raw) to avoid very large numbers of sql queries when only little data is required. The load_scale() method, for example, needs to be called explicitly. 2007-05-07 02:04:06 +00:00
nicolasconnault
46566dd8c6 MDL-9506 Moved unit tests in a simpletest subfolder so they can be automatically grouped. Added grade_history and grade_text object and another heap of small implementations. 2007-05-04 07:40:51 +00:00
nicolasconnault
52b72d77c5 MDL-9506 Reorganised the gradebook unit tests into more manageable classes. 2007-05-04 02:31:16 +00:00
nicolasconnault
5501446df5 MDL-9506 Added grade_outcome.php. Also added unit test for creation of log in history table when grade_raw is updated. 2007-05-03 08:51:48 +00:00
nicolasconnault
4d0263c6e2 MDL-9506 See previous revision. This adds same functionality but in relation to the hidden field. 2007-05-03 08:08:38 +00:00
nicolasconnault
fae51e127b MDL-9506 Added grade_item::toggle_locking and unit tests. Affects all final grades if reqested. 2007-05-03 08:02:51 +00:00
nicolasconnault
27f95e9b47 MDL-9506 Upgraded grade_item::adjust_grade with Darlene's more elegant formula. Completed grade_category::get_children($depth, $arraytype). Added 4 constants to help that method. Added and passed all unit tests (111 now). 2007-05-03 07:10:22 +00:00
nicolasconnault
7c8a963f7b MDL-9506 Finished all unit test stubs, another batch to write soon. One one test fails because I haven't implemented recursive category hierarchy output yet, and not sure if it's needed. A grade_category already returns its immediate children, and that may be enough. 2007-05-02 07:20:13 +00:00
toyomoyo
9e2e5943dc modifications to eventslib 2007-05-01 08:59:39 +00:00
nicolasconnault
ce385eb4e3 MDL-9506 Implemented category path and depth, and wrote unit tests for them. 2007-05-01 08:56:37 +00:00
nicolasconnault
d5bdb228a5 MDL-9506 Finished grade_item::adjust_grade, which now also adjusts scale grades correctly. Added grade_scale object to wrap around the current non-normalized scale DB table. When/if we upgrade to grade_scales and grade_scale_items DB tables, changing the grade_scale class will be easy. 2007-05-01 05:45:54 +00:00
nicolasconnault
d8676dc32e MDL-9506 Implemented rescaling and grade adjustment formulas in grade_item::adjust_grade(). Also wrote unit tests. 2007-05-01 03:18:55 +00:00
nicolasconnault
b3f111607f MDL-9506 Lots more unit tests, and work on grade_item::update method and associated functionality. 3 unit tests currently fail, so more work needed. 2007-04-30 09:09:32 +00:00
nicolasconnault
869807d8e4 MLD-9506 Corrected update_final_grades() in grade_item, which was updating the grade_raw table
instead of grade_final. Made a few other adjustments.
2007-04-30 05:25:19 +00:00
nicolasconnault
a8995b34df MDL-9506 Added grade_grades_raw as a proper object used by grade_item. Also added a global function in gradelib for updating grade_grades_raw objects. 2007-04-30 04:49:25 +00:00
nicolasconnault
f440c2d1b1 MDL-9506 Implemented get_raw and get_final, plus added method_exists() checks for each unit test. 2007-04-30 02:05:51 +00:00
tjhunt
d4bf4b8695 Fix syntax error. 2007-04-27 10:37:21 +00:00
nicolasconnault
e5c674f1e1 MDL-9506 Added raw and final grade objects, plus more work in unit tests. 2007-04-27 08:12:16 +00:00
toyomoyo
8aaf935a1f some events code/testing code 2007-04-26 08:50:29 +00:00
nicolasconnault
60cf74305d MDL-9506 More work in the unit tests 2007-04-26 08:29:30 +00:00
nicolasconnault
f9f4a93b4e MDL-9506 Refactored gradelib.php: an abstract class (php5 in mind) holds data and methods common
to all grade_* objects. The unit test file has also been refactored to improve clarity.
2007-04-26 07:14:12 +00:00
nicolasconnault
27fbffb62b MDL-9506 More implementation of gradebook API and more unit tests. 2007-04-26 04:39:40 +00:00
nicolasconnault
619a59a70f MDL-9506 Set up the unit test bed and continued to implement gradebook API. 2007-04-24 08:50:19 +00:00
nicolasconnault
5834dcdb1d MDL-9506 First draft of gradelib, and the stubs for the unit tests. 2007-04-23 09:00:32 +00:00
nicolasconnault
facb512c06 MDL-8792 - Simply added help icon to explain the options available regarding embedding media files in the site. 2007-03-12 05:46:41 +00:00
nicolasconnault
9af052f59f Stub for a web-based integration test 2007-03-06 05:09:28 +00:00
nicolasconnault
a205dcdc09 Upgraded weblib::format_string() so it accepts unicode htmlentities. Also added more unit tests, including a stub for an integration web-based test. 2007-03-06 05:05:45 +00:00