antoniop in OpenACS

Whitespace cleanup

Use page contract

Add missing var

Add include contract

New method to cleanup all data associated with a community in the throttle object:

if a community is deleted when a user is accessing it, some leftover information will be kept in the object. At the next request this will be interpreted as the community having been left and the system will try to track this event into request_monitor_community_activities. Depending on who comes first, we might try to insert a tuple in the table for an object that does not exist anymore.

Hence, we use this method to cleanup all community info before the actual deletion in dotlrn (happening only downstream).

Don't be so strict upstream, as here we do not restrict community_key to ltree

Constrain further the characters we allow in the community_key: makes sense upstream as this will become part of a URL, but is even more important downstream, as we implement the community_key as a ltree and therefore we are limited in the type of characters we can allow (See

Fix typo

Add missing arguments

Rework dotlrn_community::check_community_key_valid_p so that we check also for the community key to not have spaces

Logics have been moved to private api that might or might not become the preferrable api at some point, as it also returns the specific error message together with the boolean

Whitespace cleanup

Remove irrelevant comment

Port of downstream customization: don't lose the return URL when one tries to join a community before login

Important, although very simple reform in the page-contract filters: do not kill the case in the filter specs, or filters such as "w:oneof(One|Two)" or "locale:oneof(en_US|de_DE)" would not have a chance to match

Note that this makes the contracts stricter with respect to case, which might break obscure use cases...

Localize already at the pretty value, otherwise things such as the wikicmds will not be evaluated

Address a problem encountered already with proctoring uploads: in cases that count both as timeouts and errors, the rescheduling of the request would happen twice. If the condition persists, the number of requests can grow out of control

Remove colon that gets confused as a bind variable

Add missing semicolon

Solve a potential issue when one would cleanup "dynamic" notification requests: this was done directly on the table and could therefore leave dangling acs_objects around

- cleanup all acs_objects of type 'notification_request' that do not have a corresponding entry in the table (~35000 downstream)

- embed logic of delete_dynamic_requests query inside select_invalid_request_ids query, as there the deletion is done properly

file upgrade-5.10.0d6-5.10.0d7.sql was initially added on branch oacs-5-10.

Reinstate retrieval of the package_id from the connection context in child-resources, the problem was that, when we required a connection context in create_form_page_instance, we did with no information whatsoever, which was then retrieved by e.g. ns_conn, sometimes wrongly (e.g. when one is running under the test package)

    • -0
    • +1
    • -2
    • +2
child-resources has already a package_id, getting it from the connection context makes the includelet susceptible to e.g. package initializations from the outside (see e.g. xowiki link_tests automated test)

    • -1
    • +0
Fix overquoting in english message key

Allow in the include to selectively disable combinations of audio, camera and desktop recording (at least one stream needs to be enabled for proctoring to happen)

This allows to better tailor proctoring behavior to the user needs and privacy requirements

Keep tolerating parameter_id specified as unnamed argument in legacy code and warn about deprecation

Handle the case where the iframe URL points to an external website: just skip the iframe-loop check

Whitespace cleanup

    • -5
    • +5
Reduce hardcoded execs: the util might be improved to avoid them at some point

    • -4
    • +2
Humanize indentation

Always make sure to clear any previously scheduled upload, before scheduling another one

This handles the case when a connection times out (readyState 4 and status = 0). In this case both the rescheduling in the readystatechange handler and in the timeout handler would be executed.