Commit Graph

463 Commits

Author SHA1 Message Date
stronk7 e8ee249670 Finally fixed version of lastaccess hadling.
Moved from add_to_log() to require_login(). MDL-14272
2008-04-15 21:42:50 +00:00
stronk7 afd99f1f07 Correct usage of debugging. MDL-11893 2008-04-15 21:31:10 +00:00
stronk7 7d23ab127f Fixing logic + minor formatting of email. MDL-11893 2008-04-15 20:01:27 +00:00
dongsheng 6fdfabaf42 MDL-11893, append failed SQL to email, see tracker 2008-04-15 05:36:25 +00:00
stronk7 f4cb414111 Check for 60s interval from PHP. Save 3 queries per request. MDL-14272 2008-04-10 20:57:10 +00:00
stronk7 5c978acd07 Unset rcahe on UPDATE statements not using dmllib.php. MDL-14257 2008-04-08 23:12:08 +00:00
dongsheng cd3a029451 MDL-12263, under certain conditions, $catctxids is NULL, so an if statement should be here. 2008-03-20 07:16:33 +00:00
sam_marshall c147575b6c MDL-13915: Fixed add_to_log when very long url is specified (now doesn't try to insert more than 100 chars into database) 2008-03-13 15:25:12 +00:00
martinlanghoff 5ab05fb15f MDL-11180 datalib: get_courses() - grab the course context as part of the select
This speeds up course & category listing enormously - cutting 2500 DB queries
for a site with 2500 courses. It's the power of the JOIN...
2008-02-26 21:51:16 +00:00
moodler e5f7002f2f MDL-12294 fixed parentlang string 2008-02-26 07:27:23 +00:00
skodak c5b4af2e5d MDL-13483 found two more native php mail() commands 2008-02-25 14:03:53 +00:00
skodak 794fc9a9a3 MDL-13399, MDL-13614 fixed regression caused by last commit 2008-02-23 19:28:33 +00:00
skodak 8905e7b645 MDL-13399 prevent ambiguous column names in get_my_courses 2008-02-18 20:13:02 +00:00
skodak f1bd9b5ecf MDL-13155 reworked get_all_instances_in_course() and get_all_instances_in_courses(), based on patch by Tim 2008-02-05 21:34:08 +00:00
skodak 4ce19d978c MDL-12945 disabled mods are not returned from get_course_mods() anymore, the results are used in scheduled backup and other parts that do not expect disabled mods 2008-02-01 07:32:34 +00:00
skodak 94cbbdbd2e MDL-12945 a slightly bigger patch for performance in recent activity and various group related issues + some other fixes - see list of subtasks in tracker 2008-01-24 20:29:31 +00:00
martinlanghoff 8658d5c5b0 MDL-12523 datalib: get_admins() - Rewrite to avoid get_users_by_capability()
get_admins() and get_admin() were counting on
get_users_by_capability() returning a role-assignment id to pick the
"primary" admin account. With the get_users_by_capability() rewrite,
we no longer have an RA id to clearly blame for the capability.

So, rewrite get_admins() based on the known-good SQL used in
is_siteadmin().

MDL-12452
2008-01-06 23:17:42 +00:00
stronk7 225ff8f476 Better behaviour for "-" course searches under MSSQL and Oracle. MDL-7312 ; merged from 18_STABLE 2008-01-01 12:01:36 +00:00
stronk7 f7cf45ab80 Prevent some debugging notices, cast to object before inserting. 2007-12-31 15:18:59 +00:00
tjhunt 297178bc87 Improve PHP doc comments. 2007-12-12 17:10:51 +00:00
martinlanghoff 7e17fa336e datalib: get_logs_user*() - fix invalid SQL - MDL-12426
Oracle does not accept column labels in the GROUP BY section -
get_logs_usercourse() and get_logs_userday() were computing the
day/hours column and using it in the GROUP BY. The compatible fix
is to reproduce the same computation in the GROUP BY section.

Credit for the fix goes to Dennis Rochford <Dennis.Rochford@usq.edu.au>.
2007-12-04 06:24:23 +00:00
skodak 1a35d7472f MFC: MDL-12101 cleanup/fixing/refactoring of user bulk operation and admin user browsing 2007-11-13 09:02:11 +00:00
tjhunt 677ab5e475 Fix typo. 2007-10-25 14:29:39 +00:00
toyomoyo 5e919c34ee MDL-11893, send email to admin when add_to_log fails 2007-10-25 04:01:38 +00:00
skodak 03cedd6283 MDL-11432 eliminated majority of RecordCount uses, added several missing rs_close() - this should help improve perf on some platforms - Eloy says ;-) 2007-10-10 12:19:27 +00:00
stronk7 115a43113a ANSI join ON clauses should contain only the join condition. Also,
added prefix to the ORDER BY to prevent duplicate names.
2007-10-08 17:42:46 +00:00
moodler 5b1dbd5cd7 Some SQL fixes to avoid putting 'quotes' around integers (performance) 2007-10-05 13:34:28 +00:00
skodak d75731c6ac prevent returning of invalid array from get_course_managers() 2007-10-03 22:26:05 +00:00
stronk7 59bef7283d Moving 3 functions from datalib to deprecatedlib. Only used
by admin/cron.php. First step of MDL-11571 and MDL-11487
2007-10-03 16:31:20 +00:00
moodler 1afb11e70b Fixed longtimenosee unenrolments. user_lastaccess and role_assignments were growing with uneccessary entries, to the point where memory limits were reached and in the end NO unenrolments were happening at all.
See  MDL-11571
2007-10-03 12:24:06 +00:00
tjhunt 3b0ee367a7 MDL-11466 - failing to check for the case $rs = false in the accesslib performance improvements. Credit for the fix goes to Gareth Morgan. 2007-09-26 21:31:54 +00:00
tjhunt 8d503f7557 Get rid of duplicate $Id$ tags. 2007-09-26 10:11:13 +00:00
nicolasconnault bfbfdb5350 MDL-11350 allowvisiblecoursesinhiddencategories was not used fully in the determination of the course's visibility 2007-09-20 13:15:26 +00:00
toyomoyo 05a71b3341 change restore code to use the more efficient get_user_courses_bycap 2007-09-20 09:16:49 +00:00
tjhunt 1ced9d7b73 MDL-10903 - Wrong capability checked in get_all_instances_in_course should be moodle/course:viewhiddenactivities, not moodle/course:viewhiddencourses. Merged from MOODLE_18_STABLE. 2007-09-19 17:06:31 +00:00
martinlanghoff 45ea1afb16 accesslib: make_context_subobj() now expects ctxlevel, and fix all callers
make_context_subobj() was not providing a contextlevel property, and
no callers fetched the field. This comes from its humble origins where
it was only ever called for course objects. These days it's used in
many other situations, so this patch DTRT and

 - fixes make_context_subobj() expect a cxtlevel and turn it into
   contextlevel

 - fixes all callers (accesslib, datalib) to provide it
2007-09-19 07:54:37 +00:00
martinlanghoff b1cff118c7 datalib:get_courses_wmanagers() handle empty $CFG->coursemanager more gracefully
Having no roles set as coursemanager is a valid setting.
get_courses_wmanagers() should not produce invalid SQL on it...
actually, it should not even try to get the course managers.
2007-09-19 07:54:23 +00:00
martinlanghoff bbfed0ec61 datalib: get_my_courses() honour $fields array
If the caller passes a fields array, then merge it as we say we will do.
2007-09-19 07:51:36 +00:00
martinlanghoff b9e9491a89 accesslib: get_my_courses() fix when called when empty sort
get_my_courses() was failing if called with an empty sortorder on a
cached courselist. Fix.
2007-09-19 07:51:19 +00:00
martinlanghoff e89f157b0a datalib: get_courses_wmanagers() exclude the sitecourse
Should never return the sitecourse - so we exclude it explicitly.
2007-09-19 07:49:10 +00:00
martinlanghoff 2e159efb1c Revert "datalib: Introducing sql_intarray_to_in()"
We don't need sql_intarray_to_in(), use implode() instead.

This reverts commit 3ef7fc54d9df780c837c64a8ace1fc565d6d7744.
2007-09-19 07:47:26 +00:00
martinlanghoff 44f1636ee2 datalib: get_categories() - remove PostgreSQL-ism 2007-09-19 07:28:43 +00:00
martinlanghoff 40fb8aa69a datalib: get_categories() returns context, supports !shallow
With this patch, get_categories() now adds a nice context
sub-object to the returned object, which means callers can
save DB traffic.

It now also supports "deep" retrievals, which means we can
rewrite the course categories display pages to avoid
costly recursion.
2007-09-19 07:27:20 +00:00
martinlanghoff c5d13b689f datalib: fix_course_sortorder() - minor optimisation
Don't update fields unnecessarily. Cuts 3 DB queries per category
on course/index page (45 in a 15 category setup).

fix_course_sortorder() should be fixed to avoid recursion.
2007-09-19 07:27:08 +00:00
martinlanghoff 70f158789e datalib: Introducing get_courses_wmanagers() for print_courses() usage
For an efficient print_courses() we need to grab in a constant number
of queries...

 - course data
 - "course manager" role assignments
 - user records for the coursemanagers' fullname()

So here we do it in 2 DB queries. The 2nd one (grabbing RAs and user
records) can be expensive if we are dealing with a large number of
courses.

Which we shouldn't - When the number of courses is large the course
listing doesn't come this way anyway...
2007-09-19 07:26:42 +00:00
martinlanghoff 2ee469b3b8 datalib: add_to_log() fix a bug and better error handling
All the $db->Execute calls now do proper err handling, and send their
message to debugging().
2007-09-19 07:22:37 +00:00
martinlanghoff 2965f8fdb8 datalib: get_admin() - cache in a static var
get_admin is called a zillion times during cron, and is a tiny
bit of data we can safely keep around... so...

(shaves 2 queries per email we send!)
2007-09-19 07:22:01 +00:00
martinlanghoff b00cb46b27 datalib: get_my_courses() now returns invisible courses if visible to $USER
So admins can see the appropriate user listing in the profile page.

In fact, probably _all_ the visibility checks should be done by callers.
Hmmm...
2007-09-19 07:21:35 +00:00
martinlanghoff 3511647c44 datalib:course_parent_visible() rework, remove category_parent_visible()
Reworked course_parent_visible() to always return in a constant
number of db queries (2 worst case) regardless of nesting depth.

The rewritten version has a small cache, but if you are going to
walk many courses, it's still 1~2 DB queries per category seen,
so the right thing to do is to check it in the caller, as seen
in get_my_courses().
2007-09-19 07:19:05 +00:00
martinlanghoff 82c62d1b17 datalib: get_my_courses() - add course visibility checks
Reworked gmc to perform the course visibility checks. These are
very cheap if $CFG->allowvisiblecoursesinhiddencategories is true.

However, where we have to enforce category visibility, it adds a bit
of work. In simple terms, it adds a DB query to read all the categories,
and extra checks to make sure we are doing the right thing WRT

 - course visibility   vs the permission to see hidden courses
 - category visibility vs the permission to see hidden categories

and still do it quickly.
2007-09-19 07:18:54 +00:00