public function run() { $message = ''; $projectList = new ProjectListModel(); $projectList->read(); $projectIds = array_map(function ($e) { return $e['id']; }, $projectList->entries); $emptyQuestionTitles = 0; foreach ($projectIds as $projectId) { $project = new ProjectModel($projectId); $activityEntries = ActivityListDto::getActivityForProject($project); foreach ($activityEntries as $activity) { if (key_exists('questionRef', $activity) && key_exists('question', $activity['content'])) { $questionId = $activity['questionRef']; $questionTitle = $activity['content']['question']; if ($questionTitle == '') { $emptyQuestionTitles++; $questionModel = new QuestionModel($project, $questionId); $activityModel = new ActivityModel($project, $activity['id']); $newTitle = $questionModel->getTitleForDisplay(); $activityModel->actionContent['question'] = $newTitle; $message .= "Fixing activity " . $activity['action'] . " with title '" . $newTitle . "'\n"; $activityModel->write(); } } } } if ($emptyQuestionTitles > 0) { $message .= "\n\nFixed up {$emptyQuestionTitles} empty question titles in the activity log\n\n"; } else { $message .= "\n\nNo empty question titles were found in the activity log \n\n"; } return $message; }
/** * * @param ProjectModel $projectModel * @param string $userId * @param string $id entry id * @return string activity id */ public static function deleteEntry($projectModel, $userId, $id) { $activity = new ActivityModel($projectModel); $activity->userRef->id = $userId; $activity->action = ActivityModel::DELETE_ENTRY; $lexeme = LexEntryCommands::getEntryLexeme($projectModel->id->asString(), $id); $activity->addContent(ActivityModel::ENTRY, $lexeme); return $activity->write(); }