Assign a doc to a workshop and not a course

This commit is contained in:
2019-09-18 19:21:02 +02:00
parent 49fbf665e8
commit c36d33890e
5 changed files with 25 additions and 14 deletions

View File

@@ -0,0 +1,6 @@
ALTER TABLE docs ADD id_workshop int(10) unsigned DEFAULT NULL AFTER id_user;
ALTER TABLE docs ADD INDEX(`id_workshop`);
ALTER TABLE docs ADD FOREIGN KEY (`id_workshop`) REFERENCES workshops(`id_workshop`);
UPDATE docs INNER JOIN courses USING(id_course) SET docs.id_workshop = courses.id_workshop;
ALTER TABLE docs DROP FOREIGN KEY docs_ibfk_2;
ALTER TABLE docs DROP id_course;

View File

@@ -143,15 +143,15 @@ class CATC extends Main
/* Docs */
public function getDocs($iCourseId) {
$oDoc = new Doc($this->oDb, $this->oAuth->getUserId(), $iCourseId);
public function getDocs($iWorkshopId) {
$oDoc = new Doc($this->oDb, $this->oAuth->getUserId(), $iWorkshopId);
$asDocList = $oDoc->getList();
return self::getJsonResult(!empty($asDocList), '', $asDocList);
}
public function uploadDoc($iCourseId) {
public function uploadDoc($iWorkshopId) {
$this->oClassManagement->incClass('uploader', true);
$oDoc = new Doc($this->oDb, $this->oAuth->getUserId(), $iCourseId);
$oDoc = new Doc($this->oDb, $this->oAuth->getUserId(), $iWorkshopId);
$oUploader = new Uploader($oDoc);
return $oUploader->sBody;

View File

@@ -45,7 +45,7 @@ class Course extends PhpObject {
}
public function getCourses($iWorkshopId=0) {
$asInfo = array('select'=> array(Db::getId(self::COURSE_TABLE), 'description', 'timeslot'), 'from' => self::COURSE_TABLE);
$asInfo = array('select'=> array(Db::getId(self::COURSE_TABLE), Db::getId(self::WS_TABLE), 'description', 'timeslot'), 'from' => self::COURSE_TABLE);
if($iWorkshopId > 0) $asInfo['constraint'] = array(Db::getId(self::WS_TABLE) => $iWorkshopId);
return $this->oDb->selectRows($asInfo, Db::getId(self::COURSE_TABLE));

View File

@@ -12,23 +12,23 @@ class Doc extends PhpObject {
private $iDocId;
private $iUserId;
private $iCourseId;
private $iWorkshopId;
public function __construct(Db &$oDb, $iUserId=0, $iCourseId=0)
public function __construct(Db &$oDb, $iUserId=0, $iWorkshopId=0)
{
parent::__construct(__CLASS__, Settings::DEBUG);
$this->oDb = &$oDb;
$this->setDocId(0);
$this->setUserCourseId($iUserId, $iCourseId);
$this->setUserWorkshopId($iUserId, $iWorkshopId);
}
public function setDocId($iDocId) {
$this->iDocId = $iDocId;
}
public function setUserCourseId($iUserId, $iCourseId) {
public function setUserWorkshopId($iUserId, $iWorkshopId) {
$this->iUserId = $iUserId;
$this->iCourseId = $iCourseId;
$this->iWorkshopId = $iWorkshopId;
}
public function exists($sFileName) {
@@ -37,6 +37,7 @@ class Doc extends PhpObject {
public function add($sFileName, $sMimeType) {
$sType = '';
switch(mime_content_type(self::getFilePath($sFileName))) {
case 'application/msword':
case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': $sType = 'word'; break;
@@ -45,11 +46,15 @@ class Doc extends PhpObject {
case 'image/gif': $sType = 'image'; break;
case 'image/jpeg': $sType = 'image'; break;
case 'image/png': $sType = 'image'; break;
default:
switch(pathinfo($sFileName, PATHINFO_EXTENSION)) {
case 'mp3': $sType = 'audio'; break;
}
}
$asData = array_merge($this->getDocKeys(), array('filename'=>$sFileName, 'type'=>$sType));
$bResult = $this->oDb->insertRow(self::DOC_TABLE, $asData);
return $bResult?'':'error_db';
}
@@ -77,7 +82,7 @@ class Doc extends PhpObject {
}
private function getDocKeys() {
return array(Db::getId(Auth::USER_TABLE) => $this->iUserId, Db::getId(Course::COURSE_TABLE) => $this->iCourseId);
return array(Db::getId(Auth::USER_TABLE) => $this->iUserId, Db::getId(Course::WS_TABLE) => $this->iWorkshopId);
}
private static function getFilePath($sFileName) {

View File

@@ -59,7 +59,7 @@ oCATC.pageInit = function(asHash, bFirstPage) {
.fileupload({
dataType: 'json',
acceptFileTypes: /(\.|\/)(gif|jpe?g|png|mov|doc|docx|pdf|mp3|wav)$/i,
formData: {id: self.tmp('id_course')},
formData: {id: self.consts.courses[self.tmp('id_course')].id_workshop},
progressall: function (e, asData) {
console.log(asData);
var iProgress = parseInt(asData.loaded / asData.total * 100, 10);
@@ -112,7 +112,7 @@ function loadDocs() {
});
},
{id: self.tmp('id_course')},
{id: self.consts.courses[self.tmp('id_course')].id_workshop},
() => {console.log('No doc found for course ID = '+self.tmp('id_course'))}
);
}