Skip to content
GitLab
    • Explore Projects Groups Snippets
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • M moodle-assignsubmission_dta
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 3
    • Issues 3
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • CoTA
  • moodle-assignsubmission_dta
  • Merge requests
  • !2

plagarism data removed + provider bugs fixes and delete data functionality.

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Khalani requested to merge sahal-plagarism-and-privacy-provider-changes into master 3 months ago
  • Overview 0
  • Commits 1
  • Pipelines 1
  • Changes 3
  • Plagarism check code removed
  • Privacy provider changes made to export and delete personal data of user including submissions through data requests
  • Khalani @32khsa1mst requested review from @miguel.munoz-gil 3 months ago

    requested review from @miguel.munoz-gil

  • Khalani @32khsa1mst assigned to @32khsa1mst 3 months ago

    assigned to @32khsa1mst

  • mamunozgil @miguel.munoz-gil approved this merge request 3 months ago

    approved this merge request

  • mamunozgil @miguel.munoz-gil enabled an automatic merge when the pipeline for 4c5346d6 succeeds 3 months ago

    enabled an automatic merge when the pipeline for 4c5346d6 succeeds

  • mamunozgil @miguel.munoz-gil mentioned in commit 1341de29 3 months ago

    mentioned in commit 1341de29

  • mamunozgil @miguel.munoz-gil merged 3 months ago

    merged

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • You're only seeing other activity in the feed. To add a comment, switch to one of the following options.
Please register or sign in to reply
Viewing commit 4c5346d6
Show latest version
3 files
+ 33
- 71

    Preferences

    File browser
    Compare changes
d‎ta‎
classes‎/privacy‎
provid‎er.php‎ +27 -71
lan‎g/en‎
assignsubmis‎sion_dta.php‎ +6 -0
dta‎.zip‎ +0 -0
  • 4c5346d6
    Khalani
    plagarism data removed + provider bugs fixes and delete data functionality. · 4c5346d6
    Khalani authored 3 months ago
dta/classes/privacy/provider.php
+ 27
- 71
  • View file @ 4c5346d6

  • Edit in single-file editor

  • Open in Web IDE


@@ -53,8 +53,8 @@ class provider implements \core_privacy\local\metadata\provider,
$collection->add_database_table(
'assignsubmission_dta_summary',
[
'assignmentid' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid',
'submissionid' => 'privacy:metadata:assignsubmission_dta_summary:submissionid',
'assignment_id' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid',
'submission_id' => 'privacy:metadata:assignsubmission_dta_summary:submissionid',
'timestamp' => 'privacy:metadata:assignsubmission_dta_summary:timestamp',
'global_stacktrace' => 'privacy:metadata:assignsubmission_dta_summary:global_stacktrace',
'successful_competencies' => 'privacy:metadata:assignsubmission_dta_summary:successful_competencies',
@@ -67,8 +67,8 @@ class provider implements \core_privacy\local\metadata\provider,
$collection->add_database_table(
'assignsubmission_dta_result',
[
'assignmentid' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid',
'submissionid' => 'privacy:metadata:assignsubmission_dta_summary:submissionid',
'assignment_id' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid',
'submission_id' => 'privacy:metadata:assignsubmission_dta_summary:submissionid',
'package_name' => 'privacy:metadata:assignsubmission_dta_result:package_name',
'class_name' => 'privacy:metadata:assignsubmission_dta_result:class_name',
'name' => 'privacy:metadata:assignsubmission_dta_result:name',
@@ -86,8 +86,8 @@ class provider implements \core_privacy\local\metadata\provider,
$collection->add_database_table(
'assignsubmission_dta_recommendations',
[
'assignmentid' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid',
'submissionid' => 'privacy:metadata:assignsubmission_dta_summary:submissionid',
'assignment_id' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid',
'submission_id' => 'privacy:metadata:assignsubmission_dta_summary:submissionid',
'topic' => 'privacy:metadata:assignsubmission_dta_recommendations:topic',
'exercise_name' => 'privacy:metadata:assignsubmission_dta_recommendations:exercise_name',
'url' => 'privacy:metadata:assignsubmission_dta_recommendations:url',
@@ -98,8 +98,8 @@ class provider implements \core_privacy\local\metadata\provider,
);
$collection->add_external_location_link('dta_backend', [
'assignmentid' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid',
'submissionid' => 'privacy:metadata:assignsubmission_dta_summary:submissionid',
'assignment_id' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid',
'submission_id' => 'privacy:metadata:assignsubmission_dta_summary:submissionid',
'submissioncontent' => 'privacy:metadata:core_files',
],
'privacy:metadata:dta_backend'
@@ -151,8 +151,9 @@ class provider implements \core_privacy\local\metadata\provider,
}
$user = new \stdClass();
$assign = $exportdata->get_assign();
$plugin = $assign->get_plugin_by_type('assignsubmission', 'file');
$submission = $exportdata->get_pluginobject();
$files = get_files($submission, $user);
$files = $plugin->get_files($exportdata->get_pluginobject(), $user);
foreach ($files as $file) {
$userid = $exportdata->get_pluginobject()->userid;
$dtaresultsummary = dta_db_utils::dta_get_result_summary_from_database($assign->id, $submission->id);
@@ -160,15 +161,6 @@ class provider implements \core_privacy\local\metadata\provider,
writer::with_context($exportdata->get_context())->export_file($exportdata->get_subcontext(), $file)
// DTA result.
->export_related_data($dtaresultsummary);
// Plagiarism data.
$coursecontext = $context->get_course_context();
\core_plagiarism\privacy\provider::export_plagiarism_user_data($userid, $context, $exportdata->get_subcontext(), [
'cmid' => $context->instanceid,
'course' => $coursecontext->instanceid,
'userid' => $userid,
'file' => $file,
]);
}
}
@@ -180,18 +172,16 @@ class provider implements \core_privacy\local\metadata\provider,
public static function delete_submission_for_context(assign_plugin_request_data $requestdata) {
global $DB;
\core_plagiarism\privacy\provider::delete_plagiarism_for_context($requestdata->get_context());
$fs = get_file_storage();
$fs->delete_area_files($requestdata->get_context()->id, 'assignsubmission_dta', ASSIGNSUBMISSION_DTA_FILEAREA_SUBMISSION);
$fs->delete_area_files($requestdata->get_context()->id, 'assignsubmission_dta', \assignsubmission_dta\privacy\provider::ASSIGNSUBMISSION_DTA_FILEAREA_SUBMISSION);
$assignmentid = $requestdata->get_assign()->get_instance()->id;
// Delete records from assignsubmission_dta tables.
$DB->delete_records('assignsubmission_dta_result', ['assignmentid' => $assignmentid]);
$DB->delete_records('assignsubmission_dta_summary', ['assignmentid' => $assignmentid]);
$DB->delete_records('assignsubmission_dta_recommendations', ['assignmentid' => $assignmentid]);
$DB->delete_records('assignsubmission_dta_result', ['assignment_id' => $assignmentid]);
$DB->delete_records('assignsubmission_dta_summary', ['assignment_id' => $assignmentid]);
$DB->delete_records('assignsubmission_dta_recommendations', ['assignment_id' => $assignmentid]);
}
/**
@@ -202,27 +192,25 @@ class provider implements \core_privacy\local\metadata\provider,
public static function delete_submission_for_userid(assign_plugin_request_data $deletedata) {
global $DB;
\core_plagiarism\privacy\provider::delete_plagiarism_for_user($deletedata->get_user()->id, $deletedata->get_context());
$assignmentid = $deletedata->get_assign()->get_instance()->id;
$submissionid = $deletedata->get_pluginobject()->id;
$fs = get_file_storage();
$fs->delete_area_files($deletedata->get_context()->id, 'assignsubmission_dta', ASSIGNSUBMISSION_DTA_FILEAREA_SUBMISSION,
$fs->delete_area_files($deletedata->get_context()->id, 'assignsubmission_dta', \assignsubmission_dta\privacy\provider::ASSIGNSUBMISSION_DTA_FILEAREA_SUBMISSION,
$submissionid);
// Delete records from assignsubmission_dta tables. Also possible with a list as below.
$DB->delete_records('assignsubmission_dta_result', [
'assignmentid' => $assignmentid,
'submissionid' => $submissionid,
'assignment_id' => $assignmentid,
'submission_id' => $submissionid,
]);
$DB->delete_records('assignsubmission_dta_summary', [
'assignmentid' => $assignmentid,
'submissionid' => $submissionid,
'assignment_id' => $assignmentid,
'submission_id' => $submissionid,
]);
$DB->delete_records('assignsubmission_dta_recommendations', [
'assignmentid' => $assignmentid,
'submissionid' => $submissionid,
$DB->delete_records('assignsubmission_dta_recommendations', [
'assignment_id' => $assignmentid,
'submission_id' => $submissionid,
]);
}
@@ -238,49 +226,17 @@ class provider implements \core_privacy\local\metadata\provider,
public static function delete_submissions(assign_plugin_request_data $deletedata) {
global $DB;
\core_plagiarism\privacy\provider::delete_plagiarism_for_users($deletedata->get_userids(), $deletedata->get_context());
if (empty($deletedata->get_submissionids())) {
return;
}
$fs = get_file_storage();
list($sql, $params) = $DB->get_in_or_equal($deletedata->get_submissionids(), SQL_PARAMS_NAMED);
$fs->delete_area_files_select($deletedata->get_context()->id, 'assignsubmission_file', ASSIGNSUBMISSION_FILE_FILEAREA,
$fs->delete_area_files_select($deletedata->get_context()->id, 'assignsubmission_file', \assignsubmission_dta\privacy\provider::ASSIGNSUBMISSION_DTA_FILEAREA_SUBMISSION_SUBMISSION,
$sql, $params);
$params['assignid'] = $deletedata->get_assignid();
$DB->delete_records_select('assignsubmission_dta_result', "assignmentid = :assignid AND submissionid $sql", $params);
$DB->delete_records_select('assignsubmission_dta_summary', "assignmentid = :assignid AND submissionid $sql", $params);
$DB->delete_records_select('assignsubmission_dta_recommendations', "assignmentid = :assignid AND submissionid $sql", $params);
$DB->delete_records_select('assignsubmission_dta_result', "assignment_id = :assignid AND submissionid $sql", $params);
$DB->delete_records_select('assignsubmission_dta_summary', "assignment_id = :assignid AND submissionid $sql", $params);
$DB->delete_records_select('assignsubmission_dta_recommendations', "assignment_id = :assignid AND submissionid $sql", $params);
}
/**
* Produce a list of files suitable for export that represent this feedback or submission
*
* @param stdClass $submission The submission
* @param stdClass $user The user record - unused
* @return array - return an array of files indexed by filename
*/
public function get_files(stdClass $submission, stdClass $user) {
$result = [];
$fs = get_file_storage();
$files = $fs->get_area_files($this->assignment->get_context()->id,
'assignsubmission_file',
ASSIGNSUBMISSION_DTA_FILEAREA_SUBMISSION,
$submission->id,
'timemodified',
false);
foreach ($files as $file) {
// Do we return the full folder path or just the file name?
if (isset($submission->exportfullpath) && $submission->exportfullpath == false) {
$result[$file->get_filename()] = $file;
} else {
$result[$file->get_filepath().$file->get_filename()] = $file;
}
}
return $result;
}
}
dta/lang/en/assignsubmission_dta.php
+ 6
- 0
  • View file @ 4c5346d6

  • Edit in single-file editor

  • Open in Web IDE


@@ -163,6 +163,12 @@ $string["privacy:metadata:assignsubmission_dta_result:column_number"] = "Column
$string["privacy:metadata:assignsubmission_dta_result:line_number"] = "Line number of failed individual compilation or test";
$string["privacy:metadata:assignsubmission_dta_result:position"] = "Position of failed individual compilation or test";
$string["privacy:metadata:assignsubmission_dta_result"] = "Individual Dockerized Test Agent (DTA) results";
$string["privacy:metadata:assignsubmission_dta_recommendations:topic"] = "Topic of recommendation";
$string["privacy:metadata:assignsubmission_dta_recommendations:exercise_name"] = "Name of exercise";
$string["privacy:metadata:assignsubmission_dta_recommendations:url"] = "Url of recommended exercise";
$string["privacy:metadata:assignsubmission_dta_recommendations:difficulty"] = "Difficulty level of exercise";
$string["privacy:metadata:assignsubmission_dta_recommendations:score"] = "Score achieved in exercise";
$string["privacy:metadata:assignsubmission_dta_recommendations"] = "Individual Dockerized Test Agent (DTA) recommendations";
$string["privacy:metadata:dta_backend"] = "Dockerized Test Agent (DTA) backend ReST web service";
//PLUGIN
dta.zip
+ 0
- 0
  • View file @ 4c5346d6

No preview for this file type
Assignee
Khalani's avatar
Khalani
Assign to
Reviewer
mamunozgil's avatar
mamunozgil
Request review from
Labels
0
None
0
None
    Assign labels
  • Manage project labels

Milestone
No milestone
None
None
Time tracking
No estimate or time spent
Lock merge request
Unlocked
2
2 participants
mamunozgil
Khalani
Reference: cota/moodle-assignsubmission_dta!2
Source branch: sahal-plagarism-and-privacy-provider-changes

Menu

Explore Projects Groups Snippets

Dies ist die Gitlab-Instanz des Transferportals der Hochschule für Technik Stuttgart. Hier geht es zurück zum Portal