Browse Source

Merge branch '1.11.x' into ofaj

Alex Aragon 8 years ago
parent
commit
beea894cbe
49 changed files with 425 additions and 854 deletions
  1. 102 0
      app/Migrations/Schema/V111/Version111.php
  2. 5 3
      app/Resources/public/css/base.css
  3. 0 7
      app/Resources/public/css/editor.css
  4. 4 2
      app/Resources/public/css/themes/chamilo/default.css
  5. 1 1
      app/config/sonata/sonata_media.yml
  6. BIN
      main/img/icons/32/unknown.png
  7. 88 88
      main/inc/lib/TicketManager.php
  8. 10 0
      main/inc/lib/database.constants.inc.php
  9. 1 1
      main/inc/lib/usermanager.lib.php
  10. 30 0
      main/template/default/layout/header.js.tpl
  11. 1 1
      main/template/default/layout/hot_course_item.tpl
  12. 3 2
      main/template/default/layout/menu.tpl
  13. 3 3
      main/template/default/user_portal/grid_courses.tpl
  14. 1 1
      main/template/default/user_portal/grid_session.tpl
  15. 1 1
      main/ticket/assign_tickets.php
  16. 7 7
      main/ticket/categories.php
  17. 2 2
      main/ticket/categories_add_user.php
  18. 1 1
      main/ticket/course_user_list.php
  19. 1 1
      main/ticket/download.php
  20. 2 2
      main/ticket/index.php
  21. 48 48
      main/ticket/myticket.php
  22. 29 30
      main/ticket/new_ticket.php
  23. 1 1
      main/ticket/report.php
  24. 1 1
      main/ticket/ticket_assign_log.php
  25. 32 33
      main/ticket/ticket_details.php
  26. 0 0
      main/ticket/ticket_plugin.class.php
  27. 1 1
      main/ticket/tutor.php
  28. 0 0
      main/ticket/tutor_report.lib.php
  29. 2 2
      main/ticket/update_report.php
  30. 0 1
      plugin/ticket/README.md
  31. 0 23
      plugin/ticket/config.php
  32. 0 249
      plugin/ticket/database.php
  33. 0 1
      plugin/ticket/index.php
  34. 0 11
      plugin/ticket/install.php
  35. 0 102
      plugin/ticket/lang/english.php
  36. 0 89
      plugin/ticket/lang/french.php
  37. 0 93
      plugin/ticket/lang/spanish.php
  38. 0 8
      plugin/ticket/plugin.php
  39. 0 14
      plugin/ticket/start.php
  40. 0 11
      plugin/ticket/uninstall.php
  41. 1 0
      src/Chamilo/CoreBundle/Composer/ScriptHandler.php
  42. 4 3
      src/Chamilo/TicketBundle/Entity/AssignedLog.php
  43. 1 1
      src/Chamilo/TicketBundle/Entity/Category.php
  44. 11 2
      src/Chamilo/TicketBundle/Entity/Message.php
  45. 2 2
      src/Chamilo/TicketBundle/Entity/MessageAttachment.php
  46. 9 1
      src/Chamilo/TicketBundle/Entity/Priority.php
  47. 2 2
      src/Chamilo/TicketBundle/Entity/Project.php
  48. 7 0
      src/Chamilo/TicketBundle/Entity/Status.php
  49. 11 2
      src/Chamilo/TicketBundle/Entity/Ticket.php

+ 102 - 0
app/Migrations/Schema/V111/Version111.php

@@ -154,6 +154,108 @@ class Version111 extends AbstractMigrationChamilo
             $this->addSql('RENAME TABLE plugin_ticket_project TO ticket_project');
             $this->addSql('RENAME TABLE plugin_ticket_status TO ticket_status');
             $this->addSql('RENAME TABLE plugin_ticket_ticket TO ticket_ticket');
+
+            $this->addSql('UPDATE ticket_project SET sys_insert_user_id = 1 WHERE sys_insert_user_id IS NULL');
+            $this->addSql('UPDATE ticket_project SET sys_insert_datetime = NOW() WHERE sys_insert_datetime IS NULL');
+            $this->addSql('ALTER TABLE ticket_project DROP project_id, CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE name name VARCHAR(255) NOT NULL, CHANGE description description LONGTEXT DEFAULT NULL, CHANGE email email VARCHAR(255) DEFAULT NULL, CHANGE other_area other_area INT DEFAULT NULL, CHANGE sys_insert_user_id sys_insert_user_id INT NOT NULL, CHANGE sys_insert_datetime sys_insert_datetime DATETIME NOT NULL, CHANGE sys_lastedit_user_id sys_lastedit_user_id INT DEFAULT NULL;');
+
+            $this->addSql('ALTER TABLE ticket_status ADD code VARCHAR(255) NOT NULL, CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE name name VARCHAR(255) NOT NULL, CHANGE description description LONGTEXT DEFAULT NULL;');
+            $this->addSql('UPDATE ticket_status SET code = status_id ');
+            $this->addSql('ALTER TABLE ticket_status DROP status_id');
+            $this->addSql('ALTER TABLE ticket_category_rel_user CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE category_id category_id INT DEFAULT NULL, CHANGE user_id user_id INT DEFAULT NULL;');
+
+
+            $this->addSql('UPDATE ticket_category SET sys_insert_user_id = 1 WHERE sys_insert_user_id IS NULL');
+            $this->addSql('UPDATE ticket_category SET sys_insert_datetime = NOW() WHERE sys_insert_datetime IS NULL');
+            $this->addSql('UPDATE ticket_category SET course_required = 0 WHERE course_required IS NULL OR course_required = ""');
+
+            $this->addSql('UPDATE ticket_category SET project_id = 1 WHERE project_id IS NULL OR project_id = ""');
+
+            $this->addSql('ALTER TABLE ticket_category DROP category_id, CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE project_id project_id INT DEFAULT NULL, CHANGE name name VARCHAR(255) NOT NULL, CHANGE description description LONGTEXT DEFAULT NULL, CHANGE total_tickets total_tickets INT NOT NULL, CHANGE course_required course_required TINYINT(1) NOT NULL, CHANGE sys_insert_user_id sys_insert_user_id INT NOT NULL, CHANGE sys_insert_datetime sys_insert_datetime DATETIME NOT NULL, CHANGE sys_lastedit_user_id sys_lastedit_user_id INT DEFAULT NULL;');
+            $this->addSql('ALTER TABLE ticket_category ADD CONSTRAINT FK_8325E540166D1F9C FOREIGN KEY (project_id) REFERENCES ticket_project (id);');
+            $this->addSql('CREATE INDEX IDX_8325E540166D1F9C ON ticket_category (project_id);');
+
+            $this->addSql('ALTER TABLE ticket_category_rel_user ADD CONSTRAINT FK_5B8A98712469DE2 FOREIGN KEY (category_id) REFERENCES ticket_category (id);');
+            $this->addSql('ALTER TABLE ticket_category_rel_user ADD CONSTRAINT FK_5B8A987A76ED395 FOREIGN KEY (user_id) REFERENCES user (id);');
+
+            $this->addSql('CREATE INDEX IDX_5B8A98712469DE2 ON ticket_category_rel_user (category_id);');
+            $this->addSql('CREATE INDEX IDX_5B8A987A76ED395 ON ticket_category_rel_user (user_id);');
+
+            $this->addSql('ALTER TABLE ticket_message_attachments DROP message_attch_id, CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE message_id message_id INT DEFAULT NULL, CHANGE ticket_id ticket_id INT DEFAULT NULL, CHANGE filename filename LONGTEXT NOT NULL, CHANGE size size INT NOT NULL, CHANGE sys_insert_user_id sys_insert_user_id INT NOT NULL, CHANGE sys_insert_datetime sys_insert_datetime DATETIME NOT NULL, CHANGE sys_lastedit_user_id sys_lastedit_user_id INT DEFAULT NULL;');
+
+            // missing
+            $this->addSql('ALTER TABLE ticket_message_attachments ADD CONSTRAINT FK_70BF9E26700047D2 FOREIGN KEY (ticket_id) REFERENCES ticket_ticket (id);');
+            $this->addSql('CREATE INDEX IDX_70BF9E26700047D2 ON ticket_message_attachments (ticket_id);');
+            $this->addSql('ALTER TABLE ticket_message_attachments RENAME INDEX ticket_message_id_fk TO IDX_70BF9E26537A1329;');
+
+
+            $this->addSql('UPDATE ticket_priority SET sys_insert_user_id = 1 WHERE sys_insert_user_id IS NULL');
+            $this->addSql('UPDATE ticket_priority SET sys_insert_datetime = NOW() WHERE sys_insert_datetime IS NULL');
+
+            $this->addSql('ALTER TABLE ticket_priority ADD code VARCHAR(255) NOT NULL, ADD name VARCHAR(255) NOT NULL, ADD description LONGTEXT DEFAULT NULL, ADD color VARCHAR(255) NOT NULL, ADD urgency VARCHAR(255) NOT NULL, CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE sys_insert_user_id sys_insert_user_id INT NOT NULL, CHANGE sys_insert_datetime sys_insert_datetime DATETIME NOT NULL, CHANGE sys_lastedit_user_id sys_lastedit_user_id INT DEFAULT NULL;');
+
+            $this->addSql('UPDATE ticket_priority SET code = priority_id');
+            $this->addSql('UPDATE ticket_priority SET name = priority');
+            $this->addSql('UPDATE ticket_priority SET description = priority_desc');
+            $this->addSql('UPDATE ticket_priority SET color = priority_color');
+            $this->addSql('UPDATE ticket_priority SET urgency = priority_urgency');
+
+            $this->addSql('ALTER TABLE ticket_priority DROP priority_id, DROP priority, DROP priority_desc, DROP priority_color, DROP priority_urgency');
+
+
+            $this->addSql('ALTER TABLE ticket_ticket MODIFY ticket_id INT UNSIGNED NOT NULL;');
+            $this->addSql('DROP INDEX UN_ticket_code ON ticket_ticket;');
+            $this->addSql('DROP INDEX FK_ticket_category ON ticket_ticket;');
+            $this->addSql('ALTER TABLE ticket_ticket DROP PRIMARY KEY;');
+
+            $this->addSql('UPDATE ticket_ticket t SET priority_id = (SELECT id FROM ticket_priority t2 WHERE t2.code = t.priority_id)');
+            $this->addSql('UPDATE ticket_ticket t SET status_id = (SELECT id FROM ticket_status t2 WHERE t2.code = t.status_id)');
+
+            $this->addSql('ALTER TABLE ticket_ticket ADD id INT NOT NULL, ADD code VARCHAR(255) NOT NULL, CHANGE project_id project_id INT DEFAULT NULL, CHANGE priority_id priority_id INT DEFAULT NULL, CHANGE course_id course_id INT DEFAULT NULL, CHANGE session_id session_id INT DEFAULT NULL, CHANGE personal_email personal_email VARCHAR(255) NOT NULL, CHANGE assigned_last_user assigned_last_user INT DEFAULT NULL, CHANGE status_id status_id INT DEFAULT NULL, CHANGE total_messages total_messages INT NOT NULL, CHANGE keyword keyword VARCHAR(255) DEFAULT NULL, CHANGE source source VARCHAR(255) DEFAULT NULL, CHANGE start_date start_date DATETIME DEFAULT NULL, CHANGE sys_insert_user_id sys_insert_user_id INT NOT NULL, CHANGE sys_insert_datetime sys_insert_datetime DATETIME NOT NULL, CHANGE sys_lastedit_user_id sys_lastedit_user_id INT DEFAULT NULL, CHANGE subject subject VARCHAR(255) NOT NULL, CHANGE message message LONGTEXT DEFAULT NULL;');
+
+            $this->addSql('UPDATE ticket_ticket SET code = ticket_code');
+            $this->addSql('UPDATE ticket_ticket SET id = ticket_id');
+            $this->addSql('ALTER TABLE ticket_ticket DROP ticket_id, DROP ticket_code, DROP request_user');
+            $this->addSql('ALTER TABLE ticket_ticket MODIFY COLUMN id INT NOT NULL PRIMARY KEY AUTO_INCREMENT');
+            $this->addSql('ALTER TABLE ticket_ticket ADD CONSTRAINT FK_EDE2C768497B19F9 FOREIGN KEY (priority_id) REFERENCES ticket_priority (id);');
+
+            $this->addSql('UPDATE ticket_ticket SET project_id = 1 WHERE project_id is NULL or project_id = 0');
+            $this->addSql('ALTER TABLE ticket_ticket ADD CONSTRAINT FK_EDE2C768166D1F9C FOREIGN KEY (project_id) REFERENCES ticket_project (id);');
+
+            $this->addSql('UPDATE ticket_ticket SET course_id = NULL WHERE course_id = 0');
+            $this->addSql('ALTER TABLE ticket_ticket ADD CONSTRAINT FK_EDE2C768591CC992 FOREIGN KEY (course_id) REFERENCES course (id);');
+
+            $this->addSql('UPDATE ticket_ticket SET session_id = NULL WHERE session_id = 0');
+            $this->addSql('ALTER TABLE ticket_ticket ADD CONSTRAINT FK_EDE2C768613FECDF FOREIGN KEY (session_id) REFERENCES session (id);');
+
+            $this->addSql('ALTER TABLE ticket_ticket ADD CONSTRAINT FK_EDE2C7686BF700BD FOREIGN KEY (status_id) REFERENCES ticket_status (id);');
+            $this->addSql('CREATE INDEX IDX_EDE2C768166D1F9C ON ticket_ticket (project_id);');
+            $this->addSql('CREATE INDEX IDX_EDE2C768591CC992 ON ticket_ticket (course_id);');
+            $this->addSql('CREATE INDEX IDX_EDE2C768613FECDF ON ticket_ticket (session_id);');
+            $this->addSql('CREATE INDEX IDX_EDE2C7686BF700BD ON ticket_ticket (status_id);');
+
+            $this->addSql('ALTER TABLE ticket_ticket RENAME INDEX fk_ticket_priority TO IDX_EDE2C768497B19F9;');
+            $this->addSql('ALTER TABLE ticket_assigned_log CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE ticket_id ticket_id INT DEFAULT NULL, CHANGE user_id user_id INT DEFAULT NULL, CHANGE assigned_date assigned_date DATETIME NOT NULL, CHANGE sys_insert_user_id sys_insert_user_id INT NOT NULL;');
+            $this->addSql('ALTER TABLE ticket_assigned_log ADD CONSTRAINT FK_54B65868700047D2 FOREIGN KEY (ticket_id) REFERENCES ticket_ticket (id);');
+
+            $this->addSql('DELETE FROM ticket_assigned_log WHERE user_id = 0 OR user_id IS NULL');
+
+            $this->addSql('ALTER TABLE ticket_assigned_log ADD CONSTRAINT FK_54B65868A76ED395 FOREIGN KEY (user_id) REFERENCES user (id);');
+            $this->addSql('CREATE INDEX IDX_54B65868A76ED395 ON ticket_assigned_log (user_id);');
+            $this->addSql('ALTER TABLE ticket_assigned_log RENAME INDEX fk_ticket_assigned_log TO IDX_54B65868700047D2;');
+
+            $this->addSql('ALTER TABLE ticket_category_rel_user RENAME INDEX fk_5b8a98712469de2 TO IDX_5B8A98712469DE2;');
+            $this->addSql('ALTER TABLE ticket_category_rel_user RENAME INDEX fk_5b8a987a76ed395 TO IDX_5B8A987A76ED395;');
+
+            $this->addSql('ALTER TABLE ticket_message DROP message_id, CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE ticket_id ticket_id INT DEFAULT NULL, CHANGE subject subject VARCHAR(255) DEFAULT NULL, CHANGE message message LONGTEXT DEFAULT NULL, CHANGE status status VARCHAR(255) NOT NULL, CHANGE ip_address ip_address VARCHAR(255) NOT NULL, CHANGE sys_insert_user_id sys_insert_user_id INT NOT NULL, CHANGE sys_insert_datetime sys_insert_datetime DATETIME NOT NULL, CHANGE sys_lastedit_user_id sys_lastedit_user_id INT DEFAULT NULL;');
+
+            $this->addSql('ALTER TABLE ticket_message ADD CONSTRAINT FK_BA71692D700047D2 FOREIGN KEY (ticket_id) REFERENCES ticket_ticket (id);');
+            $this->addSql('ALTER TABLE ticket_message RENAME INDEX fk_tick_message TO IDX_BA71692D700047D2;');
+            $this->addSql('ALTER TABLE ticket_ticket CHANGE category_id category_id INT DEFAULT NULL;');
+            $this->addSql('ALTER TABLE ticket_ticket ADD CONSTRAINT FK_EDE2C76812469DE2 FOREIGN KEY (category_id) REFERENCES ticket_category (id);');
+            $this->addSql('CREATE INDEX IDX_EDE2C76812469DE2 ON ticket_ticket (category_id);');
+
+            $this->addSql('ALTER TABLE ticket_message_attachments ADD CONSTRAINT FK_70BF9E26537A1329 FOREIGN KEY (message_id) REFERENCES ticket_message (id);');
         }
     }
 

+ 5 - 3
app/Resources/public/css/base.css

@@ -100,7 +100,8 @@ a.thumbnail:hover{
     cursor: pointer;
 }
 .invisible {
-  visibility: visible;
+  visibility: hidden;
+  display: none;
 }
 .logo{
   margin-bottom: 20px;
@@ -3904,7 +3905,7 @@ i.size-32.icon-new-work{
   font-size: 12px;
 }
 .menu-column .nav li a img{
-  vertical-align: bottom;
+  vertical-align: text-bottom;
   margin-right: 5px;
 }
 .social-network-menu .nav li a, #groups-acordeon .nav li a{
@@ -4736,9 +4737,10 @@ div#chat-remote-video video {
 }
 .grid-courses .items .title{
     line-height: 1.4;
-    font-size: 14px;
     padding: 0px;
     margin: 5px;
+    font-size: 14px;
+    font-weight: bold;
 }
 .grid-courses .items .toolbar{
     text-align: right;

+ 0 - 7
app/Resources/public/css/editor.css

@@ -41,13 +41,6 @@ body{
     line-height: 30px;
    
 }
-a{
-    text-decoration: none;
-    color: #00829C;
-}
-a:hover{
-    text-decoration: underline;
-}
 .ck{
     display: block;
     font-style: normal;

+ 4 - 2
app/Resources/public/css/themes/chamilo/default.css

@@ -33,18 +33,20 @@ body {
   margin: 0;
   font-family: 'Open Sans', sans-serif;
 }
+ 
 a {
-  color: #00829C;
+  color: #07578A;
   text-decoration: none;
 }
 a:hover,
 a:focus {
-  color: #1abc9c;
+  color: #2E75A3;
   text-decoration: none;
 }
 a:focus {
   outline: none;
 }
+
 .navbar{
   border-radius: 0;
   -moz-border-radius: 0;

+ 1 - 1
app/config/sonata/sonata_media.yml

@@ -4,7 +4,7 @@ sonata_media:
         media: Chamilo\MediaBundle\Entity\Media
         gallery: Chamilo\MediaBundle\Entity\Gallery
         gallery_has_media: Chamilo\MediaBundle\Entity\GalleryHasMedia
-        category: Chamilo\ClassificationBundle\Entity\Category
+#        category: Chamilo\ClassificationBundle\Entity\Category
 
     db_driver: doctrine_orm # | doctrine_mongodb
     default_context: default

BIN
main/img/icons/32/unknown.png


+ 88 - 88
plugin/ticket/src/ticket.class.php → main/inc/lib/TicketManager.php

@@ -39,9 +39,15 @@ class TicketManager
         $table_support_project = Database::get_main_table(TABLE_TICKET_PROJECT);
 
         $order = empty($order) ? 'category.total_tickets DESC' : $order;
-        $sql = "SELECT category.*, project.other_area , project.email
-                FROM $table_support_category category, $table_support_project project
-                WHERE project.project_id = category.project_id
+        $sql = "SELECT 
+                    category.*, 
+                    category.id category_id,
+                    project.other_area, 
+                    project.email
+                FROM 
+                $table_support_category category, 
+                $table_support_project project
+                WHERE project.id = category.project_id
                 ORDER BY $order";
         $result = Database::query($sql);
         $types = array();
@@ -268,7 +274,6 @@ class TicketManager
         $status = '',
         $assigned_user = 0
     ) {
-        global $plugin;
         $table_support_tickets = Database::get_main_table(TABLE_TICKET_TICKET);
         $table_support_category = Database::get_main_table(
             TABLE_TICKET_CATEGORY
@@ -327,7 +332,6 @@ class TicketManager
             'category_id' => $category_id,
             'priority_id' => $priority,
             'course_id' => $course_id,
-            'request_user' => 0,
             'personal_email' => $personalEmail,
             'status_id' => $status,
             'start_date' => $now,
@@ -347,7 +351,7 @@ class TicketManager
 
             Display::addFlash(Display::return_message(
                 sprintf(
-                    $plugin->get_lang('TicketXCreated'),
+                    get_lang('TicketXCreated'),
                     $ticket_code
                 ),
                 'normal',
@@ -359,7 +363,7 @@ class TicketManager
 
                 Display::addFlash(Display::return_message(
                     sprintf(
-                        $plugin->get_lang('TicketXAssignedToUserX'),
+                        get_lang('TicketXAssignedToUserX'),
                         $ticket_code,
                         $assignedUserInfo['complete_name']
                     ),
@@ -370,7 +374,7 @@ class TicketManager
 
             // Update code
             $sql = "UPDATE $table_support_tickets
-                    SET ticket_code = '$ticket_code'
+                    SET code = '$ticket_code'
                     WHERE ticket_id = '$ticket_id'";
             Database::query($sql);
 
@@ -416,7 +420,7 @@ class TicketManager
             if (empty($category_id)) {
                 if ($plugin->get('send_warning_to_all_admins')) {
                     $warningSubject = sprintf(
-                        $plugin->get_lang('TicketXCreatedWithNoCategory'),
+                        get_lang('TicketXCreatedWithNoCategory'),
                         $ticket_code
                     );
                     Display::addFlash(Display::return_message($warningSubject));
@@ -436,20 +440,20 @@ class TicketManager
                 $categoryInfo = TicketManager::getCategory($category_id);
                 $usersInCategory = TicketManager::getUsersInCategory($category_id);
 
-                $message = '<h2>'.$plugin->get_lang('TicketInformation').'</h2><br />'.$helpDeskMessage;
+                $message = '<h2>'.get_lang('TicketInformation').'</h2><br />'.$helpDeskMessage;
 
                 if ($plugin->get('warn_admin_no_user_in_category')) {
                     $usersInCategory = TicketManager::getUsersInCategory($category_id);
                     if (empty($usersInCategory)) {
                         $subject = sprintf(
-                            $plugin->get_lang('WarningCategoryXDoesntHaveUsers'),
+                            get_lang('WarningCategoryXDoesntHaveUsers'),
                             $categoryInfo['name']
                         );
 
                         if ($plugin->get('send_warning_to_all_admins')) {
                             Display::addFlash(Display::return_message(
                                 sprintf(
-                                    $plugin->get_lang('CategoryWithNoUserNotificationSentToAdmins'),
+                                    get_lang('CategoryWithNoUserNotificationSentToAdmins'),
                                     $categoryInfo['name']
                                 ),
                                 null,
@@ -490,9 +494,9 @@ class TicketManager
             if ($other_area) {
                 // Send email to "other area" email
                 api_mail_html(
-                    $plugin->get_lang('VirtualSupport'),
+                    get_lang('VirtualSupport'),
                     $email,
-                    $plugin->get_lang('IncidentResentToVirtualSupport'),
+                    get_lang('IncidentResentToVirtualSupport'),
                     $helpDeskMessage,
                     $user['firstname'].' '.$user['lastname'],
                     $personalEmail,
@@ -502,9 +506,9 @@ class TicketManager
 
                 // Send email to user
                 api_mail_html(
-                    $plugin->get_lang('VirtualSupport'),
+                    get_lang('VirtualSupport'),
                     $user['email'],
-                    $plugin->get_lang('IncidentResentToVirtualSupport'),
+                    get_lang('IncidentResentToVirtualSupport'),
                     $helpDeskMessage,
                     $user['firstname'].' '.$user['lastname'],
                     $personalEmail,
@@ -512,8 +516,8 @@ class TicketManager
                     $data_files
                 );
 
-                $studentMessage = sprintf($plugin->get_lang('YourQuestionWasSentToTheResponableAreaX'), $email, $email);
-                $studentMessage .= sprintf($plugin->get_lang('YourAnswerToTheQuestionWillBeSentToX'), $personalEmail);
+                $studentMessage = sprintf(get_lang('YourQuestionWasSentToTheResponableAreaX'), $email, $email);
+                $studentMessage .= sprintf(get_lang('YourAnswerToTheQuestionWillBeSentToX'), $personalEmail);
                 self::insert_message(
                     $ticket_id, get_lang('MessageResent'), $studentMessage, null, 1
                 );
@@ -534,7 +538,6 @@ class TicketManager
      */
     public static function assign_ticket_user($ticket_id, $user_id)
     {
-        global $plugin;
         $ticket_id = intval($ticket_id);
         $user_id = intval($user_id);
 
@@ -566,7 +569,7 @@ class TicketManager
 
             $sql = "UPDATE $table_support_tickets
                     SET assigned_last_user = $user_id
-                    WHERE ticket_id = $ticket_id";
+                    WHERE id = $ticket_id";
             $result = Database::query($sql);
             if (Database::affected_rows($result) > 0) {
                 $insert_id = api_get_user_id();
@@ -574,12 +577,12 @@ class TicketManager
                     'ticket_id' => $ticket_id,
                     'user_id' => $user_id,
                     'assigned_date' => $now,
-                    'sys_insert_user_id' => $insert_id,
+                    'sys_insert_user_id' => $insert_id
                 ];
                 Database::insert($table_support_assigned_log, $params);
 
                 $subject = '';
-                $content = sprintf($plugin->get_lang('AssignedChangeFromXToY'), $oldUserName, $userCompleteName);
+                $content = sprintf(get_lang('AssignedChangeFromXToY'), $oldUserName, $userCompleteName);
 
                 self::insert_message(
                     $ticket_id,
@@ -593,14 +596,14 @@ class TicketManager
                 if ($insert_id !== $user_id) {
                     $info = api_get_user_info($user_id);
                     $sender = api_get_user_info($insert_id);
-                    $href = api_get_path(WEB_PLUGIN_PATH).PLUGIN_NAME.'/src/ticket_details.php?ticket_id='.$ticket_id;
+                    $href = api_get_path(WEB_CODE_PATH).'/ticket/ticket_details.php?ticket_id='.$ticket_id;
                     $message = sprintf(
-                        $plugin->get_lang('TicketAssignedMsg'),
+                        get_lang('TicketAssignedMsg'),
                         $info['complete_name'],
                         $href,
                         $ticket_id
                     );
-                    $mailTitle = sprintf($plugin->get_lang('TicketAssignX'), $ticket_id);
+                    $mailTitle = sprintf(get_lang('TicketAssignX'), $ticket_id);
                     api_mail_html(
                         $info['complete_name'],
                         $info['mail'],
@@ -645,7 +648,7 @@ class TicketManager
         $table_support_message_attachments = Database::get_main_table(TABLE_TICKET_MESSAGE_ATTACHMENTS);
         if ($sendConfirmation) {
             $form = '<form action="ticket_details.php?ticket_id=' . $ticket_id . '" id="confirmticket" method="POST" >
-                         <p>' . $plugin->get_lang('TicketWasThisAnswerSatisfying') . '</p>
+                         <p>' . get_lang('TicketWasThisAnswerSatisfying') . '</p>
                          <button class="btn btn-primary responseyes" name="response" id="responseyes" value="1">' . get_lang('Yes') . '</button>
                          <button class="btn btn-danger responseno" name="response" id="responseno" value="0">' . get_lang('No') . '</button>
                      </form>';
@@ -667,7 +670,6 @@ class TicketManager
 
         $params = [
             'ticket_id' => $ticket_id,
-            'message_id' => $message_id,
             'subject' => $subject,
             'message' => $content,
             'ip_address' => $_SERVER['REMOTE_ADDR'],
@@ -689,7 +691,7 @@ class TicketManager
                         FROM $table_support_messages
                         WHERE ticket_id ='$ticket_id'
                     )
-                WHERE ticket_id = $ticket_id ";
+                WHERE id = $ticket_id ";
         Database::query($sql);
 
         $sql = "SELECT COUNT(*) as total_attach
@@ -807,7 +809,6 @@ class TicketManager
         $direction,
         $user_id = 0
     ) {
-        global $plugin;
         $table_support_category = Database::get_main_table(TABLE_TICKET_CATEGORY);
         $table_support_tickets = Database::get_main_table(TABLE_TICKET_TICKET);
         $table_support_priority = Database::get_main_table(TABLE_TICKET_PRIORITY);
@@ -821,12 +822,13 @@ class TicketManager
 
         $sql = "SELECT DISTINCT 
                 ticket.*,
-                ticket.ticket_id AS col0,
+                ticket.id ticket_id,
+                ticket.id AS col0,
                 ticket.start_date AS col1,
                 ticket.sys_lastedit_datetime AS col2,
                 cat.name AS col3,
-                priority.priority AS col5,
-                priority.priority  AS col6,
+                priority.name AS col5,
+                priority.name AS col6,
                 status.name AS col7,
                 ticket.total_messages AS col8,
                 ticket.message AS col9,
@@ -837,9 +839,9 @@ class TicketManager
                 $table_support_priority priority,
                 $table_support_status status
             WHERE
-                cat.category_id = ticket.category_id AND
-                ticket.priority_id = priority.priority_id AND
-                ticket.status_id = status.status_id                
+                cat.id = ticket.category_id AND
+                ticket.priority_id = priority.id AND
+                ticket.status_id = status.id                
         ";
         if (!$isAdmin) {
             $sql .= " AND (ticket.assigned_last_user = $user_id)";
@@ -857,7 +859,7 @@ class TicketManager
             if ($_GET['keyword'] != '') {
                 $keyword = Database::escape_string(trim($_GET['keyword']));
                 $sql .= " AND (
-                            ticket.ticket_code = '$keyword' OR 
+                            ticket.code = '$keyword' OR 
                             ticket.ticket_id = '$keyword'                            
                         )";
             }
@@ -1002,7 +1004,7 @@ class TicketManager
                 }
             } else {
                 if ($row['status_id'] !== self::STATUS_FORWARDED) {
-                    $row['assigned_last_user'] = '<span style="color:#ff0000;">' . $plugin->get_lang('ToBeAssigned') . '</span>';
+                    $row['assigned_last_user'] = '<span style="color:#ff0000;">' . get_lang('ToBeAssigned') . '</span>';
                 } else {
                     $row['assigned_last_user'] = '<span style="color:#00ff00;">' . get_lang('MessageResent') . '</span>';
                 }
@@ -1030,7 +1032,7 @@ class TicketManager
                 }
                 $row['col0'] = Display::return_icon(
                                 $img_source, get_lang('Info')
-                        ) . '<a href="ticket_details.php?ticket_id=' . $row['col0'] . '">' . $row['ticket_code'] . '</a>';
+                        ) . '<a href="ticket_details.php?ticket_id=' . $row['col0'] . '">' . $row['code'] . '</a>';
                 // @todo fix
                 /*if ($row['col7'] == 'PENDIENTE') {
                     $row['col7'] = '<span style="color: #f00; font-weight:bold;">' . $row['col7'] . '</span>';
@@ -1051,7 +1053,7 @@ class TicketManager
                 $row['col0'] = Display::return_icon(
                         $img_source,
                         get_lang('Info')
-                    ) . '<a href="ticket_details.php?ticket_id=' . $row['col0'] . '">' . $row['ticket_code'] . '</a>';
+                    ) . '<a href="ticket_details.php?ticket_id=' . $row['col0'] . '">' . $row['code'] . '</a>';
                 $now = api_strtotime(api_get_utc_datetime());
                 $last_edit_date = api_strtotime($row['sys_lastedit_datetime']);
                 $dif = $now - $last_edit_date;
@@ -1108,21 +1110,21 @@ class TicketManager
         $table_main_user = Database::get_main_table(TABLE_MAIN_USER);
         $table_main_admin = Database::get_main_table(TABLE_MAIN_ADMIN);
 
-        $sql = "SELECT COUNT(ticket.ticket_id) AS total
+        $sql = "SELECT COUNT(ticket.id) AS total
                 FROM $table_support_tickets ticket ,
                 $table_support_category cat ,
                 $table_support_priority priority,
                 $table_support_status status                
 	        WHERE 
-	            cat.category_id = ticket.category_id AND 
-	            ticket.priority_id = priority.priority_id AND 
-	            ticket.status_id = status.status_id";
+	            cat.id = ticket.category_id AND 
+	            ticket.priority_id = priority.id AND 
+	            ticket.status_id = status.id";
 
         // Search simple
         if (isset($_GET['submit_simple'])) {
             if ($_GET['keyword'] != '') {
                 $keyword = Database::escape_string(trim($_GET['keyword']));
-                $sql .= " AND (ticket.ticket_code = '$keyword'
+                $sql .= " AND (ticket.code = '$keyword'
                           OR user.firstname LIKE '%$keyword%'
                           OR user.lastname LIKE '%$keyword%'
                           OR concat(user.firstname,' ',user.lastname) LIKE '%$keyword%'
@@ -1214,31 +1216,31 @@ class TicketManager
         }
 
         if ($keyword_unread == 'yes') {
-            $sql .= " AND ticket.ticket_id IN ( ";
-            $sql .= "SELECT ticket.ticket_id
+            $sql .= " AND ticket.id IN ( ";
+            $sql .= "SELECT ticket.id
                      FROM  $table_support_tickets ticket,
                      $table_support_messages message,
                      $table_main_user user
-                     WHERE ticket.ticket_id = message.ticket_id
+                     WHERE ticket.id = message.ticket_id
                      AND message.status = 'NOL'
                      AND message.sys_insert_user_id = user.user_id
                      AND user.user_id NOT IN (
                         SELECT user_id FROM $table_main_admin
                      ) AND ticket.status_id != '".self::STATUS_FORWARDED."'
-                     GROUP BY ticket.ticket_id)";
+                     GROUP BY ticket.id)";
         } else {
             if ($keyword_unread == 'no') {
-                $sql .= " AND ticket.ticket_id NOT IN ( ";
-                $sql .= " SELECT ticket.ticket_id
+                $sql .= " AND ticket.id NOT IN ( ";
+                $sql .= " SELECT ticket.id 
                           FROM  $table_support_tickets ticket,
                           $table_support_messages message,
                           $table_main_user user
-                          WHERE ticket.ticket_id = message.ticket_id
+                          WHERE ticket.id = message.ticket_id
                           AND message.status = 'NOL'
                           AND message.sys_insert_user_id = user.user_id
                           AND user.user_id NOT IN (SELECT user_id FROM $table_main_admin)
                           AND ticket.status_id != '".self::STATUS_FORWARDED."'
-                          GROUP BY ticket.ticket_id)";
+                          GROUP BY ticket.id)";
             }
         }
         $res = Database::query($sql);
@@ -1277,16 +1279,16 @@ class TicketManager
                     ticket.*, 
                     cat.name,
                     status.name as status, 
-                    priority.priority
+                    priority.name priority
                     FROM $table_support_tickets ticket,
                     $table_support_category cat ,
                     $table_support_priority priority,
                     $table_support_status status
 		        WHERE
-                    ticket.ticket_id = $ticket_id
-                    AND cat.category_id = ticket.category_id
-                    AND priority.priority_id = ticket.priority_id
-                    AND status.status_id = ticket.status_id ";
+                    ticket.id = $ticket_id
+                    AND cat.id = ticket.category_id
+                    AND priority.id = ticket.priority_id
+                    AND status.id = ticket.status_id ";
         $result = Database::query($sql);
         $ticket = array();
         if (Database::num_rows($result) > 0) {
@@ -1311,9 +1313,10 @@ class TicketManager
                         $row['course_url'] = '<a href="'.$course['course_public_url'].'">'.$course['name'].'</a>';
                     }
                 }
-                $userInfo = api_get_user_info($row['request_user']);
-                $row['user_url'] = '<a href="' . api_get_path(WEB_PATH) . 'main/admin/user_information.php?user_id=' . $row['request_user'] . '">
-                ' . api_get_person_name($userInfo['firstname'], $userInfo['lastname']) . '</a>';
+
+                $userInfo = api_get_user_info($row['sys_insert_user_id']);
+                $row['user_url'] = '<a href="' . api_get_path(WEB_PATH) . 'main/admin/user_information.php?user_id=' . $userInfo['user_id'] . '">
+                ' . $userInfo['complete_name']. '</a>';
                 $ticket['usuario'] = $userInfo;
                 $ticket['ticket'] = $row;
             }
@@ -1345,8 +1348,8 @@ class TicketManager
                 $sql = "SELECT *
                         FROM $table_support_message_attachments
                         WHERE
-                            message_id = " . $row['message_id'] . " AND
-                            ticket_id= '$ticket_id'  ";
+                            message_id = " . $row['id'] . " AND
+                            ticket_id = '$ticket_id'  ";
                 $result_attach = Database::query($sql);
                 while ($row2 = Database::fetch_assoc($result_attach)) {
                     $archiveURL = $archiveURL = $webPath . "plugin/" . PLUGIN_NAME . '/src/download.php?ticket_id=' . $ticket_id . '&file=';
@@ -1407,18 +1410,17 @@ class TicketManager
      */
     public static function sendNotification($ticketId, $userId, $title, $message)
     {
-        global $plugin;
         $userInfo = api_get_user_info($userId);
         $ticketInfo = self::get_ticket_detail_by_id($ticketId, $userId);
         $requestUserInfo = $ticketInfo['usuario'];
-        $ticketCode = $ticketInfo['ticket']['ticket_code'];
+        $ticketCode = $ticketInfo['ticket']['code'];
         $status = $ticketInfo['ticket']['status'];
         $priority = $ticketInfo['ticket']['priority'];
 
         $titleEmail = "[$ticketCode] $title";
-        $messageEmail = $plugin->get_lang('TicketNum').": $ticketCode <br />";
-        $messageEmail .= $plugin->get_lang('Status').": $status <br />";
-        $messageEmail .= $plugin->get_lang('Priority').": $priority <br />";
+        $messageEmail = get_lang('TicketNum').": $ticketCode <br />";
+        $messageEmail .= get_lang('Status').": $status <br />";
+        $messageEmail .= get_lang('Priority').": $priority <br />";
         $messageEmail .= '<hr /><br />';
         $messageEmail .= $message;
 
@@ -1453,12 +1455,11 @@ class TicketManager
      *
      * @return bool
      */
-    public function updateTicket(
+    public static function updateTicket(
         $params,
         $ticketId,
         $userId
     ) {
-        global $plugin;
         $now = api_get_utc_datetime();
 
         $table = Database::get_main_table(TABLE_TICKET_TICKET);
@@ -1468,14 +1469,15 @@ class TicketManager
             'sys_lastedit_user_id' => $userId,
             'sys_lastedit_datetime' => $now
         ];
-        Database::update($table, $newParams, ['ticket_id = ? ' => $ticketId]);
+        Database::update($table, $newParams, ['id = ? ' => $ticketId]);
 
          self::sendNotification(
             $ticketId,
             $userId,
-            $plugin->get_lang('TicketUpdated'),
-            $plugin->get_lang('TicketUpdated')
+            get_lang('TicketUpdated'),
+            get_lang('TicketUpdated')
         );
+
         return true;
     }
 
@@ -1490,7 +1492,6 @@ class TicketManager
         $ticket_id,
         $user_id
     ) {
-        global $plugin;
         $table_support_tickets = Database::get_main_table(TABLE_TICKET_TICKET);
 
         $ticket_id = intval($ticket_id);
@@ -1509,8 +1510,8 @@ class TicketManager
             self::sendNotification(
                 $ticket_id,
                 $user_id,
-                $plugin->get_lang('TicketUpdated'),
-                $plugin->get_lang('TicketUpdated')
+                get_lang('TicketUpdated'),
+                get_lang('TicketUpdated')
             );
             return true;
         } else {
@@ -1531,11 +1532,11 @@ class TicketManager
         $table_main_admin = Database::get_main_table(TABLE_MAIN_ADMIN);
         $user_info = api_get_user_info();
         $user_id = $user_info['user_id'];
-        $sql = "SELECT COUNT( DISTINCT ticket.ticket_id) AS unread
+        $sql = "SELECT COUNT( DISTINCT ticket.id) AS unread
                 FROM $table_support_tickets ticket,
                 $table_support_messages message ,
                 $table_main_user user
-                WHERE ticket.ticket_id = message.ticket_id
+                WHERE ticket.id = message.ticket_id
                 AND message.status = 'NOL'
                 AND user.user_id = message.sys_insert_user_id ";
         if (!api_is_platform_admin()) {
@@ -1578,7 +1579,6 @@ class TicketManager
      */
     public static function close_ticket($ticket_id, $user_id)
     {
-        global $plugin;
         $ticket_id = intval($ticket_id);
         $user_id = intval($user_id);
 
@@ -1589,14 +1589,14 @@ class TicketManager
                     sys_lastedit_user_id ='$user_id',
                     sys_lastedit_datetime ='" . $now . "',
                     end_date ='$now'
-                WHERE ticket_id ='$ticket_id'";
+                WHERE id ='$ticket_id'";
         Database::query($sql);
 
         self::sendNotification(
             $ticket_id,
             $user_id,
-            $plugin->get_lang('TicketClosed'),
-            $plugin->get_lang('TicketClosed')
+            get_lang('TicketClosed'),
+            get_lang('TicketClosed')
         );
     }
 
@@ -1692,7 +1692,7 @@ class TicketManager
             $user_id = api_get_user_id();
         }
 
-        $sql = "SELECT ticket.ticket_code, ticket.sys_insert_datetime ,
+        $sql = "SELECT ticket.code, ticket.sys_insert_datetime ,
                 ticket.sys_lastedit_datetime , cat.name as category ,
                 CONCAT(user.lastname,' ', user.firstname) AS fullname ,
                 status.name as status , ticket.total_messages as messages ,
@@ -1703,15 +1703,15 @@ class TicketManager
                 $table_support_status status ,
                 $table_main_user user
                 WHERE
-                    cat.category_id = ticket.category_id
-                    AND ticket.priority_id = priority.priority_id
-                    AND ticket.status_id = status.status_id
+                    cat.id = ticket.category_id
+                    AND ticket.priority_id = priority.id
+                    AND ticket.status_id = status.id
                     AND user.user_id = ticket.request_user ";
-        //Search simple
+        // Search simple
         if (isset($_GET['submit_simple'])) {
-            if ($_GET['keyword'] != '') {
+            if ($_GET['keyword'] !== '') {
                 $keyword = Database::escape_string(trim($_GET['keyword']));
-                $sql .= " AND (ticket.ticket_code = '$keyword'
+                $sql .= " AND (ticket.code = '$keyword'
                           OR user.firstname LIKE '%$keyword%'
                           OR user.lastname LIKE '%$keyword%'
                           OR concat(user.firstname,' ',user.lastname) LIKE '%$keyword%'

+ 10 - 0
main/inc/lib/database.constants.inc.php

@@ -332,3 +332,13 @@ define('TABLE_GRADE_MODEL_COMPONENTS', 'grade_components');
 define('TABLE_HOOK_OBSERVER', 'hook_observer');
 define('TABLE_HOOK_CALL', 'hook_call');
 define('TABLE_HOOK_EVENT', 'hook_event');
+
+define('TABLE_TICKET_ASSIGNED_LOG', 'ticket_assigned_log');
+define('TABLE_TICKET_CATEGORY', 'ticket_category');
+define('TABLE_TICKET_MESSAGE', 'ticket_message');
+define('TABLE_TICKET_PRIORITY', 'ticket_priority');
+define('TABLE_TICKET_PROJECT', 'ticket_project');
+define('TABLE_TICKET_STATUS', 'ticket_status');
+define('TABLE_TICKET_TICKET', 'ticket_ticket');
+define('TABLE_TICKET_CATEGORY_REL_USER', 'ticket_category_rel_user');
+define('TABLE_TICKET_MESSAGE_ATTACHMENTS', 'ticket_message_attachments');

+ 1 - 1
main/inc/lib/usermanager.lib.php

@@ -1509,7 +1509,7 @@ class UserManager
 
         switch ($size) {
             case USER_IMAGE_SIZE_SMALL:
-                $pictureAnonymousSize = '22';
+                $pictureAnonymousSize = '32';
                 $realSizeName = 'small_';
                 $gravatarSize = 22;
                 break;

+ 30 - 0
main/template/default/layout/header.js.tpl

@@ -70,6 +70,10 @@
             });
         };
     {% endif %}
+
+
+
+
 $(document).ready(function(){
     $("#open-view-list").click(function(){
         $("#student-list-work").fadeIn(300);
@@ -78,6 +82,32 @@ $(document).ready(function(){
         $("#student-list-work").fadeOut(300);
     });
     check_brand();
+    
+    
+    
+    
+var id;
+$(window).resize(function() {
+    clearTimeout(id);
+    id = setTimeout(doneResizing, 200);
+});
+
+function doneResizing(){
+  var widhtWindow = $(window).width();
+  if ((widhtWindow>=1024) && (widhtWindow>=768)) {
+        $("#profileCollapse").addClass("in");
+        $("#courseCollapse").addClass("in");
+        $("#skillsCollapse").addClass("in");
+        $("#sn-sidebar-collapse").addClass("in");
+        $("#user_image_block").removeClass("invisible");
+    } else {
+        $("#profileCollapse").removeClass("in");
+        $("#courseCollapse").removeClass("in");
+        $("#skillsCollapse").removeClass("in");
+        $("#sn-avatar-one").removeClass("in");
+        $("#user_image_block").addClass("invisible");
+    }
+};
     /* if($('#toolbar-admin').length){
         var heigthToolBar= $('#toolbar-admin').height();
         $('header').css('margin-top', heigthToolBar+'px');

+ 1 - 1
main/template/default/layout/hot_course_item.tpl

@@ -1,6 +1,6 @@
 {% for item in hot_courses %}
     {% if item.title %}
-        <div class="col-md-4 col-sm-4 col-xs-6">
+        <div class="col-xs-12 col-sm-6 col-md-4">
             <div class="items">
                 <div class="image">
                     <img src="{{ item.course_image_large }}" class="img-responsive">

+ 3 - 2
main/template/default/layout/menu.tpl

@@ -27,10 +27,11 @@
                         <img class="img-circle" src="{{ _u.avatar_small }}" alt="{{ _u.complete_name }}" />  <span class="caret"></span>
                     </a>
                     <ul class="dropdown-menu" role="menu">
-                        <li class="username">{{ _u.complete_name }}</li>
+                        <li>
+                            <a href="{{ profile_url }}">{{ _u.complete_name }}</a>
+                        </li>
                         <li role="separator" class="divider"></li>
                         <li>
-                            {{ profile_link }}
                             {{ message_link }}
                             {{ certificate_link }}
                         </li>

+ 3 - 3
main/template/default/user_portal/grid_courses.tpl

@@ -2,7 +2,7 @@
 <div class="grid-courses">
 <div class="row">
     {% for item in special_courses %}
-    <div class="col-md-4 col-sm-4 col-xs-6">
+    <div class="col-xs-12 col-sm-6 col-md-4">
         <div class="items">
             <div class="image">
                 <div class="pin">{{ item.icon }}</div>
@@ -76,7 +76,7 @@
         <div class="panel-body">
             <div class="row">
                 {% for item in category.courses %}
-                    <div class="col-md-4 col-sm-4 col-xs-6">
+                    <div class="col-xs-12 col-sm-6 col-md-4">
                         <div class="items">
                             <div class="image">
                                 <img src="{{ item.image }}" class="img-responsive">
@@ -141,7 +141,7 @@
 <!-- end courses in category -->
     <div class="row">
         {% for item in courses.not_category %}
-            <div class="col-md-4 col-sm-4 col-xs-6">
+            <div class="col-xs-12 col-sm-6 col-md-4">
                 <div class="items">
                     <div class="image">
                         <img src="{{ item.image }}" class="img-responsive">

+ 1 - 1
main/template/default/user_portal/grid_session.tpl

@@ -29,7 +29,7 @@
         <div class="grid-courses">
             <div class="row">
             {% for item in row.courses %}
-            <div class="col-md-4 col-sm-4 col-xs-6">
+            <div class="col-xs-12 col-sm-6 col-md-4">
                 <div class="items">
                     <div class="image">
                         <img src="{{ item.image }}" class="img-responsive">

+ 1 - 1
plugin/ticket/src/assign_tickets.php → main/ticket/assign_tickets.php

@@ -6,7 +6,7 @@
  * @package chamilo.plugin.ticket
  */
 
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 $plugin = TicketPlugin::create();
 
 api_protect_course_script();

+ 7 - 7
plugin/ticket/src/categories.php → main/ticket/categories.php

@@ -9,13 +9,13 @@
 $cidReset = true;
 // needed in order to load the plugin lang variables
 $course_plugin = 'ticket';
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 
 $plugin = TicketPlugin::create();
 
 api_protect_admin_script(true);
 
-$toolName = $plugin->get_lang('Categories');
+$toolName = get_lang('Categories');
 
 $libPath = api_get_path(LIBRARY_PATH);
 $webLibPath = api_get_path(WEB_LIBRARY_PATH);
@@ -37,7 +37,7 @@ if ($table->per_page == 0) {
 $formToString = '';
 $id = isset($_GET['id']) ? intval($_GET['id']) : 0;
 
-$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => $plugin->get_lang('MyTickets'));
+$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => get_lang('MyTickets'));
 
 if (isset($_GET['action'])) {
     global $table;
@@ -51,7 +51,7 @@ if (isset($_GET['action'])) {
             break;
         case 'add':
             $toolName = get_lang('Add');
-            $interbreadcrumb[] = array('url' => 'categories.php', 'name' => $plugin->get_lang('Categories'));
+            $interbreadcrumb[] = array('url' => 'categories.php', 'name' => get_lang('Categories'));
             $url = api_get_self().'?action=add';
             $form = TicketManager::getCategoryForm($url);
             $formToString = $form->returnForm();
@@ -78,7 +78,7 @@ if (isset($_GET['action'])) {
             break;
         case 'edit':
             $toolName = get_lang('Edit');
-            $interbreadcrumb[] = array('url' => 'categories.php', 'name' => $plugin->get_lang('Categories'));
+            $interbreadcrumb[] = array('url' => 'categories.php', 'name' => get_lang('Categories'));
             $url = api_get_self().'?action=edit&id='.$id;
             $form = TicketManager::getCategoryForm($url);
 
@@ -136,9 +136,9 @@ function modify_filter($id, $params, $row)
 }
 
 $table->set_header(0, '', false);
-$table->set_header(1, $plugin->get_lang('Title'), false);
+$table->set_header(1, get_lang('Title'), false);
 $table->set_header(2, get_lang('Description'), true, array("style" => "width:200px"));
-$table->set_header(3, $plugin->get_lang('TotalTickets'), false);
+$table->set_header(3, get_lang('TotalTickets'), false);
 $table->set_header(4, get_lang('Actions'), true);
 $table->set_column_filter(4, 'modify_filter');
 

+ 2 - 2
plugin/ticket/src/categories_add_user.php → main/ticket/categories_add_user.php

@@ -6,7 +6,7 @@
  * @package chamilo.plugin.ticket
  */
 $cidReset = true;
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 $plugin = TicketPlugin::create();
 
 api_protect_admin_script(true);
@@ -49,7 +49,7 @@ if ($form->validate()) {
     exit;
 }
 
-$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => $plugin->get_lang('MyTickets'));
+$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => get_lang('MyTickets'));
 $interbreadcrumb[] = array('url' => 'categories.php', 'name' => get_lang('Categories'));
 Display::display_header(get_lang('Users'));
 $form->display();

+ 1 - 1
plugin/ticket/src/course_user_list.php → main/ticket/course_user_list.php

@@ -5,7 +5,7 @@
  * @package chamilo.plugin.ticket
  */
 
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 $plugin = TicketPlugin::create();
 
 $userId = intval($_GET['user_id']);

+ 1 - 1
plugin/ticket/src/download.php → main/ticket/download.php

@@ -5,7 +5,7 @@
  * @package chamilo.plugin.ticket
  */
 
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 $plugin = TicketPlugin::create();
 
 api_block_anonymous_users();

+ 2 - 2
plugin/ticket/src/index.php → main/ticket/index.php

@@ -6,6 +6,6 @@
  * @package chamilo.plugin.ticket
  */
 
-require_once __DIR__.'/../config.php';
-header('Location:' . api_get_path(WEB_PLUGIN_PATH) . PLUGIN_NAME . '/src/myticket.php');
+require_once __DIR__.'/../inc/global.inc.php';
+header('Location:' . api_get_path(WEB_CODE_PATH) . '/ticket/myticket.php');
 exit;

+ 48 - 48
plugin/ticket/src/myticket.php → main/ticket/myticket.php

@@ -9,12 +9,11 @@
 $cidReset = true;
 // needed in order to load the plugin lang variables
 $course_plugin = 'ticket';
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 
 api_block_anonymous_users();
 
-$plugin = TicketPlugin::create();
-$tool_name = $plugin->get_lang('LastEdit');
+$tool_name = get_lang('LastEdit');
 
 $libPath = api_get_path(LIBRARY_PATH);
 $webLibPath = api_get_path(WEB_LIBRARY_PATH);
@@ -91,15 +90,15 @@ switch ($action) {
     case 'export':
         $data = array(
             array(
-                $plugin->get_lang('TicketNum'),
-                $plugin->get_lang('Date'),
-                $plugin->get_lang('DateLastEdition'),
-                $plugin->get_lang('Category'),
-                $plugin->get_lang('User'),
-                $plugin->get_lang('Program'),
-                $plugin->get_lang('Responsible'),
-                $plugin->get_lang('Status'),
-                $plugin->get_lang('Description')
+                get_lang('TicketNum'),
+                get_lang('Date'),
+                get_lang('DateLastEdition'),
+                get_lang('Category'),
+                get_lang('User'),
+                get_lang('Program'),
+                get_lang('Responsible'),
+                get_lang('Status'),
+                get_lang('Description')
             )
         );
         $datos = $table->get_clean_html();
@@ -118,7 +117,7 @@ switch ($action) {
             );
             $data[] = $ticket_rem;
         }
-        Export::arrayToXls($data, $plugin->get_lang('Tickets'));
+        Export::arrayToXls($data, get_lang('Tickets'));
         exit;
         break;
     case 'close_tickets':
@@ -131,7 +130,7 @@ switch ($action) {
 $user_id = api_get_user_id();
 $isAdmin = api_is_platform_admin();
 
-Display::display_header($plugin->get_lang('MyTickets'));
+Display::display_header(get_lang('MyTickets'));
 
 if ($isAdmin) {
     $getParameters = [
@@ -179,7 +178,7 @@ if ($isAdmin) {
 
     $admins = UserManager::get_user_list_like(array("status" => "1"), array("username"), true);
     $selectAdmins = [
-        0 => $plugin->get_lang('Unassigned')
+        0 => get_lang('Unassigned')
     ];
     foreach ($admins as $admin) {
         $selectAdmins[$admin['user_id']] = $admin['complete_name'];
@@ -187,20 +186,20 @@ if ($isAdmin) {
     $status = TicketManager::get_all_tickets_status();
     $selectStatus = [];
     foreach ($status as $stat) {
-        $selectStatus[$stat['status_id']] = $stat['name'];
+        $selectStatus[$stat['id']] = $stat['name'];
     }
 
     $selectPriority = [
         '' => get_lang('All'),
-        TicketManager::PRIORITY_NORMAL => $plugin->get_lang('PriorityNormal'),
-        TicketManager::PRIORITY_HIGH => $plugin->get_lang('PriorityHigh'),
-        TicketManager::PRIORITY_LOW => $plugin->get_lang('PriorityLow')
+        TicketManager::PRIORITY_NORMAL => get_lang('PriorityNormal'),
+        TicketManager::PRIORITY_HIGH => get_lang('PriorityHigh'),
+        TicketManager::PRIORITY_LOW => get_lang('PriorityLow')
     ];
 
     $selectStatusUnread = [
         '' => get_lang('All'),
-        'yes' => $plugin->get_lang('Unread'),
-        'no' => $plugin->get_lang('Read')
+        'yes' => get_lang('Unread'),
+        'no' => get_lang('Read')
     ];
 
     // Create a search-box
@@ -216,16 +215,17 @@ if ($isAdmin) {
     echo '<div class="actions" >';
     if (api_is_platform_admin()) {
         echo '<span class="left">' .
-                '<a href="' . api_get_path(WEB_PLUGIN_PATH) . 'ticket/src/new_ticket.php">' .
-                    Display::return_icon('add.png', $plugin->get_lang('TckNew'), '', ICON_SIZE_MEDIUM) . '</a>' .
+                '<a href="' . api_get_path(WEB_CODE_PATH) . 'ticket/new_ticket.php">' .
+                    Display::return_icon('add.png', get_lang('TckNew'), '', ICON_SIZE_MEDIUM) . '</a>' .
                 '<a href="' . api_get_self() . '?action=export' . $get_parameter . $get_parameter2 . '">' .
                     Display::return_icon('export_excel.png', get_lang('Export'), '', ICON_SIZE_MEDIUM) . '</a>';
-        if ($plugin->get('allow_category_edition')) {
+
+        /*if ($plugin->get('allow_category_edition')) {
             echo Display::url(
                 Display::return_icon('folder_document.gif'),
-                api_get_path(WEB_PLUGIN_PATH) . 'ticket/src/categories.php'
+                api_get_path(WEB_CODE_PATH) . 'ticket/categories.php'
             );
-        }
+        }*/
 
         echo Display::url(
             Display::return_icon('settings.png'),
@@ -248,11 +248,11 @@ if ($isAdmin) {
     $advancedSearchForm->addHeader(get_lang('AdvancedSearch'));
     $advancedSearchForm->addSelect('keyword_category', get_lang('Category'), $selectTypes, ['placeholder' => get_lang('Select')]);
     //$advancedSearchForm->addText('keyword_request_user', get_lang('User'), false);
-    $advancedSearchForm->addDateTimePicker('keyword_start_date_start', $plugin->get_lang('RegisterDate'));
-    $advancedSearchForm->addDateTimePicker('keyword_start_date_end', $plugin->get_lang('Untill'));
-    $advancedSearchForm->addSelect('keyword_admin', $plugin->get_lang('AssignedTo') , $selectAdmins, ['placeholder' => get_lang('All')]);
+    $advancedSearchForm->addDateTimePicker('keyword_start_date_start', get_lang('RegisterDate'));
+    $advancedSearchForm->addDateTimePicker('keyword_start_date_end', get_lang('Untill'));
+    $advancedSearchForm->addSelect('keyword_admin', get_lang('AssignedTo') , $selectAdmins, ['placeholder' => get_lang('All')]);
     $advancedSearchForm->addSelect('keyword_status', get_lang('Status'), $selectStatus, ['placeholder' => get_lang('Select')]);
-    $advancedSearchForm->addSelect('keyword_priority', $plugin->get_lang('Priority'), $selectPriority, ['placeholder' => get_lang('All')]);
+    $advancedSearchForm->addSelect('keyword_priority', get_lang('Priority'), $selectPriority, ['placeholder' => get_lang('All')]);
     $advancedSearchForm->addSelect('keyword_unread', get_lang('Status'), $selectStatusUnread, ['placeholder' => get_lang('All')]);
     $advancedSearchForm->addText('keyword_course', get_lang('Course'), false);
     $advancedSearchForm->addButtonSearch(get_lang('AdvancedSearch'), 'submit_advanced');
@@ -261,8 +261,8 @@ if ($isAdmin) {
     if ($plugin->get('allow_student_add') == 'true') {
         echo '<div class="actions" >';
         echo '<span style="float:right;">' .
-                '<a href="' . api_get_path(WEB_PLUGIN_PATH) . 'ticket/src/new_ticket.php">' .
-                    Display::return_icon('add.png', $plugin->get_lang('TckNew'), '', '32') .
+                '<a href="' . api_get_path(WEB_CODE_PATH) . 'ticket/new_ticket.php">' .
+                    Display::return_icon('add.png', get_lang('TckNew'), '', '32') .
                 '</a>' .
               '</span>';
         echo '</div>';
@@ -270,25 +270,25 @@ if ($isAdmin) {
 }
 
 if ($isAdmin) {
-    $table->set_header(0, $plugin->get_lang('TicketNum'), true);
-    $table->set_header(1, $plugin->get_lang('Date'), true);
-    $table->set_header(2, $plugin->get_lang('DateLastEdition'), true);
-    $table->set_header(3, $plugin->get_lang('Category'), true);
-    $table->set_header(4, $plugin->get_lang('CreatedBy'), true);
-    $table->set_header(5, $plugin->get_lang('AssignedTo'), true);
-    $table->set_header(6, $plugin->get_lang('Status'), true);
-    $table->set_header(7, $plugin->get_lang('Message'), true);
+    $table->set_header(0, get_lang('TicketNum'), true);
+    $table->set_header(1, get_lang('Date'), true);
+    $table->set_header(2, get_lang('DateLastEdition'), true);
+    $table->set_header(3, get_lang('Category'), true);
+    $table->set_header(4, get_lang('CreatedBy'), true);
+    $table->set_header(5, get_lang('AssignedTo'), true);
+    $table->set_header(6, get_lang('Status'), true);
+    $table->set_header(7, get_lang('Message'), true);
 } else {
-    echo '<center><h1>' . $plugin->get_lang('MyTickets') . '</h1></center>';
-    echo '<center><p>' . $plugin->get_lang('MsgWelcome') . '</p></center>';
+    echo '<center><h1>' . get_lang('MyTickets') . '</h1></center>';
+    echo '<center><p>' . get_lang('MsgWelcome') . '</p></center>';
     if (isset($_GET['message'])) {
-        Display::display_confirmation_message($plugin->get_lang('TckSuccessSave'));
+        Display::display_confirmation_message(get_lang('TckSuccessSave'));
     }
-    $table->set_header(0, $plugin->get_lang('TicketNum'), true);
-    $table->set_header(1, $plugin->get_lang('Date'), true);
-    $table->set_header(2, $plugin->get_lang('DateLastEdition'), true);
-    $table->set_header(3, $plugin->get_lang('Category'));
-    $table->set_header(4, $plugin->get_lang('Status'), false);
+    $table->set_header(0, get_lang('TicketNum'), true);
+    $table->set_header(1, get_lang('Date'), true);
+    $table->set_header(2, get_lang('DateLastEdition'), true);
+    $table->set_header(3, get_lang('Category'));
+    $table->set_header(4, get_lang('Status'), false);
 }
 
 $table->display();

+ 29 - 30
plugin/ticket/src/new_ticket.php → main/ticket/new_ticket.php

@@ -6,13 +6,12 @@
  */
 
 $cidReset = true;
-require_once __DIR__.'/../config.php';
-$plugin = TicketPlugin::create();
+require_once __DIR__.'/../inc/global.inc.php';
 
-if (!api_is_platform_admin() &&
-    $plugin->get('allow_student_add') != 'true'
+if (!api_is_platform_admin()
+//    $plugin->get('allow_student_add') != 'true'
 ) {
-    header('location:' . api_get_path(WEB_PLUGIN_PATH) . PLUGIN_NAME . '/src/myticket.php');
+    header('location:' . api_get_path(WEB_CODE_PATH).'ticket/myticket.php');
     exit;
 }
 
@@ -66,21 +65,21 @@ function validate() {
     var selected = document.getElementById("category_id").selectedIndex;
     var id = document.getElementById("category_id").options[selected].value;
     if (id == 0) {
-        alert("' . $plugin->get_lang("ValidType") . '");
+        alert("' . get_lang("ValidType") . '");
         return false;
     } else if(document.getElementById("subject").value == "") {
-        alert("' . $plugin->get_lang("ValidSubject") . '");
+        alert("' . get_lang("ValidSubject") . '");
         return false;
     } else if(parseInt(course_required[id]) == 1 && document.getElementById("course_id").value == 0) {
-        alert("' . $plugin->get_lang("ValidCourse") . '");
+        alert("' . get_lang("ValidCourse") . '");
         return false;
     } else if(id != "CUR" && parseInt(course_required[id]) != 1  && !re.test(document.getElementById("personal_email").value)) {
         if (document.getElementById("personal_email").value != "") {
-            alert("' . $plugin->get_lang("ValidEmail") . '");
+            alert("' . get_lang("ValidEmail") . '");
             return false;
         }
     } else if(fckEditor1val == "") {
-        alert("' . $plugin->get_lang("ValidMessage") . '");
+        alert("' . get_lang("ValidMessage") . '");
         return false;
     }
 }
@@ -206,17 +205,17 @@ function show_form_send_ticket()
         'for' => 'status_id'
     );
 
-    $statusList[TicketManager::STATUS_NEW] = $plugin->get_lang('StatusNew');
+    $statusList[TicketManager::STATUS_NEW] = get_lang('StatusNew');
     if (api_is_platform_admin()) {
         $statusAttributes = array(
             'id' => 'status_id',
             'for' => 'status_id',
             'style' => 'width: 562px;'
         );
-        $statusList[TicketManager::STATUS_PENDING] = $plugin->get_lang('StatusPending');
-        $statusList[TicketManager::STATUS_UNCONFIRMED] = $plugin->get_lang('StatusUnconfirmed');
-        $statusList[TicketManager::STATUS_CLOSE] = $plugin->get_lang('StatusClose');
-        $statusList[TicketManager::STATUS_FORWARDED] = $plugin->get_lang('StatusForwarded');
+        $statusList[TicketManager::STATUS_PENDING] = get_lang('StatusPending');
+        $statusList[TicketManager::STATUS_UNCONFIRMED] = get_lang('StatusUnconfirmed');
+        $statusList[TicketManager::STATUS_CLOSE] = get_lang('StatusClose');
+        $statusList[TicketManager::STATUS_FORWARDED] = get_lang('StatusForwarded');
     }
     //End Status List
 
@@ -227,23 +226,23 @@ function show_form_send_ticket()
         'id' => 'source_id',
         'for' => 'source_id'
     );
-    $sourceList[TicketManager::SOURCE_PLATFORM] = $plugin->get_lang('SrcPlatform');
+    $sourceList[TicketManager::SOURCE_PLATFORM] = get_lang('SrcPlatform');
     if (api_is_platform_admin()) {
         $sourceAttributes = array(
             'id' => 'source_id',
             'for' => 'source_id',
             'style' => 'width: 562px;'
         );
-        $sourceList[TicketManager::SOURCE_EMAIL] = $plugin->get_lang('SrcEmail');
-        $sourceList[TicketManager::SOURCE_PHONE] = $plugin->get_lang('SrcPhone');
-        $sourceList[TicketManager::SOURCE_PRESENTIAL] = $plugin->get_lang('SrcPresential');
+        $sourceList[TicketManager::SOURCE_EMAIL] = get_lang('SrcEmail');
+        $sourceList[TicketManager::SOURCE_PHONE] = get_lang('SrcPhone');
+        $sourceList[TicketManager::SOURCE_PRESENTIAL] = get_lang('SrcPresential');
     }
 
     // Priority List
     $priorityList = array();
-    $priorityList[TicketManager::PRIORITY_NORMAL] = $plugin->get_lang('PriorityNormal');
-    $priorityList[TicketManager::PRIORITY_HIGH] = $plugin->get_lang('PriorityHigh');
-    $priorityList[TicketManager::PRIORITY_LOW] = $plugin->get_lang('PriorityLow');
+    $priorityList[TicketManager::PRIORITY_NORMAL] = get_lang('PriorityNormal');
+    $priorityList[TicketManager::PRIORITY_HIGH] = get_lang('PriorityHigh');
+    $priorityList[TicketManager::PRIORITY_LOW] = get_lang('PriorityLow');
 
     $form = new FormValidator(
         'send_ticket',
@@ -338,7 +337,7 @@ function show_form_send_ticket()
     $form->addElement(
         'text',
         'personal_email',
-        $plugin->get_lang('PersonalEmail'),
+        get_lang('PersonalEmail'),
         array(
             'id' => 'personal_email'
         )
@@ -364,7 +363,7 @@ function show_form_send_ticket()
     $form->addElement(
         'select',
         'priority_id',
-        $plugin->get_lang('Priority'),
+        get_lang('Priority'),
         $priorityList,
         array(
             'id' => 'priority_id',
@@ -375,7 +374,7 @@ function show_form_send_ticket()
     $form->addElement(
         'select',
         'source_id',
-        $plugin->get_lang('Source'),
+        get_lang('Source'),
         $sourceList,
         $sourceAttributes
     );
@@ -383,7 +382,7 @@ function show_form_send_ticket()
     $form->addElement(
         'text',
         'phone',
-        get_lang('Phone') . ' (' . $plugin->get_lang('Optional') . ')',
+        get_lang('Phone') . ' (' . get_lang('Optional') . ')',
         array(
             'id' => 'phone'
         )
@@ -455,13 +454,13 @@ function save_ticket()
         $user_id
     )) {
         Display::addFlash(
-            Display::return_message($plugin->get_lang('TckSuccessSave'), 'success')
+            Display::return_message(get_lang('TckSuccessSave'), 'success')
         );
-        header('Location:' . api_get_path(WEB_PLUGIN_PATH) . PLUGIN_NAME . '/src/myticket.php');
+        header('Location:' . api_get_path(WEB_CODE_PATH).'/ticket/myticket.php');
         exit;
     } else {
         Display::display_header(get_lang('ComposeMessage'));
-        Display::display_error_message($plugin->get_lang('ErrorRegisterMessage'));
+        Display::display_error_message(get_lang('ErrorRegisterMessage'));
     }
 }
 
@@ -572,7 +571,7 @@ function get_user_data($from, $number_of_items, $column, $direction)
 }
 
 
-$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => $plugin->get_lang('MyTickets'));
+$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => get_lang('MyTickets'));
 
 if (!isset($_POST['compose'])) {
     if (api_is_platform_admin()) {

+ 1 - 1
plugin/ticket/src/report.php → main/ticket/report.php

@@ -6,7 +6,7 @@
  */
 
 $cidReset = true;
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 $plugin = TicketPlugin::create();
 
 api_block_anonymous_users();

+ 1 - 1
plugin/ticket/src/ticket_assign_log.php → main/ticket/ticket_assign_log.php

@@ -5,7 +5,7 @@
  * @package chamilo.plugin.ticket
  */
 
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 
 $plugin = TicketPlugin::create();
 

+ 32 - 33
plugin/ticket/src/ticket_details.php → main/ticket/ticket_details.php

@@ -6,15 +6,14 @@
  * @package chamilo.plugin.ticket
  */
 $cidReset = true;
-require_once __DIR__.'/../config.php';
-$plugin = TicketPlugin::create();
+require_once __DIR__.'/../inc/global.inc.php';
 
 api_block_anonymous_users();
 
 $user_id = api_get_user_id();
 $isAdmin = api_is_platform_admin();
-$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => $plugin->get_lang('MyTickets'));
-$interbreadcrumb[] = array('url' => '#', 'name' => $plugin->get_lang('TicketDetail'));
+$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => get_lang('MyTickets'));
+$interbreadcrumb[] = array('url' => '#', 'name' => get_lang('TicketDetail'));
 
 $disableReponseButtons = '';
 /*if ($isAdmin) {
@@ -44,25 +43,25 @@ $(document).ready(function() {
         });
 
         $(".responseyes").click(function () {
-            if(!confirm("' . $plugin->get_lang('AreYouSure') . ' : ' . strtoupper(get_lang('Yes')) . '. ' . $plugin->get_lang('IfYouAreSureTheTicketWillBeClosed') . '")){
+            if(!confirm("' . get_lang('AreYouSure') . ' : ' . strtoupper(get_lang('Yes')) . '. ' . get_lang('IfYouAreSureTheTicketWillBeClosed') . '")){
                 return false;
             }
         });
 
         $("input#responseno").click(function () {
-            if(!confirm("' . $plugin->get_lang('AreYouSure') . ' : ' . strtoupper(get_lang('No')) . '")){
+            if(!confirm("' . get_lang('AreYouSure') . ' : ' . strtoupper(get_lang('No')) . '")){
                 return false;
             }
         });
 
         $("#unassign").click(function () {
-            if (!confirm("' . $plugin->get_lang('AreYouSureYouWantToUnassignTheTicket') . '")) {
+            if (!confirm("' . get_lang('AreYouSureYouWantToUnassignTheTicket') . '")) {
                 return false;
             }
         });
 
         $("#close").click(function () {
-            if (!confirm("' . $plugin->get_lang('AreYouSureYouWantToCloseTheTicket') . '")) {
+            if (!confirm("' . get_lang('AreYouSureYouWantToCloseTheTicket') . '")) {
                 return false;
             }
         });
@@ -73,7 +72,7 @@ function validate() {
     fckEditor1val = CKEDITOR.instances["content"].getData();
     document.getElementById("content").value= fckEditor1val;
     if(fckEditor1val == ""){
-        alert("' . $plugin->get_lang('YouMustWriteAMessage') . '");
+        alert("' . get_lang('YouMustWriteAMessage') . '");
         return false;
     }
 }
@@ -195,11 +194,11 @@ if (isset($_POST['response'])) {
         if ($response && $ticket['ticket']['status_id'] == TicketManager::STATUS_UNCONFIRMED) {
             TicketManager::close_ticket($_GET['ticket_id'], $user_id);
             $ticket['ticket']['status_id'] = TicketManager::STATUS_CLOSE;
-            $ticket['ticket']['status'] = $plugin->get_lang('Closed');
+            $ticket['ticket']['status'] = get_lang('Closed');
         } else if (!is_null($response) && $ticket['ticket']['status_id'] == TicketManager::STATUS_UNCONFIRMED) {
             TicketManager::update_ticket_status(TicketManager::STATUS_PENDING, $_GET['ticket_id'], $user_id);
             $ticket['ticket']['status_id'] = TicketManager::STATUS_PENDING;
-            $ticket['ticket']['status'] = $plugin->get_lang('StatusPending');
+            $ticket['ticket']['status'] = get_lang('StatusPending');
         }
     }
 }
@@ -227,13 +226,13 @@ if (isset($_REQUEST['action'])) {
     }
 }
 
-$title = 'Ticket #' . $ticket['ticket']['ticket_code'];
+$title = 'Ticket #' . $ticket['ticket']['code'];
 
 if (!isset($_POST['compose'])) {
     if (isset($_REQUEST['close'])) {
         TicketManager::close_ticket($_REQUEST['ticket_id'], $user_id);
         $ticket['ticket']['status_id'] = TicketManager::STATUS_CLOSE;
-        $ticket['ticket']['status'] = $plugin->get_lang('Closed');
+        $ticket['ticket']['status'] = get_lang('Closed');
     }
     /*$ticket['ticket']['request_user'] = intval($ticket['ticket']['request_user']);
     if ($ticket['ticket']['request_user'] == $user_id || intval($ticket['ticket']['assigned_last_user']) == $user_id) {
@@ -247,7 +246,7 @@ if (!isset($_POST['compose'])) {
         ) {
         if (intval($ticket['ticket']['assigned_last_user']) == $user_id) {
             if ($ticket['ticket']['status_id'] != TicketManager::STATUS_CLOSE) {
-                $form_close_ticket.= '<a href="' . api_get_self() . '?close=1&ticket_id=' . $ticket['ticket']['ticket_id'] . '" id="close" class="btn btn-danger" >';
+                $form_close_ticket.= '<a href="' . api_get_self() . '?close=1&ticket_id=' . $ticket['ticket']['id'] . '" id="close" class="btn btn-danger" >';
                 $form_close_ticket.= get_lang('Close') . '</a>';
             }
         }
@@ -293,7 +292,7 @@ if (!isset($_POST['compose'])) {
                         '#',
                         ['title' => $ticket['ticket']['start_date'], 'class' => 'boot-tooltip']
                     ).'. '.
-                    $plugin->get_lang('TicketUpdated').' '.
+                    get_lang('TicketUpdated').' '.
                     Display::url(
                         date_to_str_ago($ticket['ticket']['sys_lastedit_datetime_from_db']),
                         '#',
@@ -309,17 +308,17 @@ if (!isset($_POST['compose'])) {
 	               <td><p ' . $bold . '><b>' . get_lang('Status') . ':</b> ' . $ticket['ticket']['status'] . '</p></td>
 	            </tr>
 	            <tr>
-	                <td><p><b>' . $plugin->get_lang('Priority') . ': </b>' . $ticket['ticket']['priority'] . '<p></td>
+	                <td><p><b>' . get_lang('Priority') . ': </b>' . $ticket['ticket']['priority'] . '<p></td>
 	            </tr>';
 
     if (!empty($ticket['ticket']['assigned_last_user'])) {
         $assignedUser = api_get_user_info($ticket['ticket']['assigned_last_user']);
         echo '<tr>
-                <td><p><b>' . $plugin->get_lang('AssignedTo') . ': </b>' . $assignedUser['complete_name'] . '<p></td>
+                <td><p><b>' . get_lang('AssignedTo') . ': </b>' . $assignedUser['complete_name'] . '<p></td>
             </tr>';
     } else {
         echo '<tr>
-                <td><p><b>' . $plugin->get_lang('AssignedTo') . ': </b>-<p></td>
+                <td><p><b>' . get_lang('AssignedTo') . ': </b>-<p></td>
             </tr>';
     }
     if ($ticket['ticket']['course_url'] != null) {
@@ -355,8 +354,8 @@ if (!isset($_POST['compose'])) {
            $admin['complete_name'] . "</option>";
     }
     $select_admins .= "</select>";
-    echo '<div id="dialog-form" title="' . $plugin->get_lang('AssignTicket') . '" >';
-    echo '<form id="frmResponsable" method="POST" action="ticket_details.php?ticket_id=' . $ticket['ticket']['ticket_id'] . '">
+    echo '<div id="dialog-form" title="' . get_lang('AssignTicket') . '" >';
+    echo '<form id="frmResponsable" method="POST" action="ticket_details.php?ticket_id=' . $ticket['ticket']['id'] . '">
 			<input type="hidden" name ="action" id="action" value="assign"/>
 			<div>
 				<div class="label">' . get_lang('Responsable') . ':</div>
@@ -394,7 +393,7 @@ if (!isset($_POST['compose'])) {
 
         $entireMessage = $receivedMessage . $attachmentLinks;
         $counterLink = Display::url('#'.$counter, api_get_self().'?ticket_id='.$ticket_id.'#note-'.$counter);
-        echo '<a id="note-'.$counter.'"> </a><h4>' . sprintf($plugin->get_lang('UpdatedByX'), $message['user_created']).' '.$date.
+        echo '<a id="note-'.$counter.'"> </a><h4>' . sprintf(get_lang('UpdatedByX'), $message['user_created']).' '.$date.
             ' <span class="pull-right">'.$counterLink.'</span></h4>';
         echo Display::div(
             $entireMessage, ['class' => 'well']
@@ -466,7 +465,7 @@ function show_form_send_message($ticket)
     $form = new FormValidator(
         'send_ticket',
         'POST',
-        api_get_self() . '?ticket_id=' . $ticket['ticket_id'],
+        api_get_self() . '?ticket_id=' . $ticket['id'],
         '',
         array(
             'enctype' => 'multipart/form-data',
@@ -476,16 +475,16 @@ function show_form_send_message($ticket)
     );
 
     if ($isAdmin) {
-        $statusList[TicketManager::STATUS_NEW] = $plugin->get_lang('StatusNew');
+        $statusList[TicketManager::STATUS_NEW] = get_lang('StatusNew');
         $statusAttributes = array(
             'id' => 'status_id',
             'for' => 'status_id',
             'style' => 'width: 562px;'
         );
-        $statusList[TicketManager::STATUS_PENDING] = $plugin->get_lang('StatusPending');
-        $statusList[TicketManager::STATUS_UNCONFIRMED] = $plugin->get_lang('StatusUnconfirmed');
-        $statusList[TicketManager::STATUS_CLOSE] = $plugin->get_lang('StatusClose');
-        $statusList[TicketManager::STATUS_FORWARDED] = $plugin->get_lang('StatusForwarded');
+        $statusList[TicketManager::STATUS_PENDING] = get_lang('StatusPending');
+        $statusList[TicketManager::STATUS_UNCONFIRMED] = get_lang('StatusUnconfirmed');
+        $statusList[TicketManager::STATUS_CLOSE] = get_lang('StatusClose');
+        $statusList[TicketManager::STATUS_FORWARDED] = get_lang('StatusForwarded');
 
         $form->addElement(
             'select',
@@ -496,14 +495,14 @@ function show_form_send_message($ticket)
         );
 
         $priorityList = array();
-        $priorityList[TicketManager::PRIORITY_NORMAL] = $plugin->get_lang('PriorityNormal');
-        $priorityList[TicketManager::PRIORITY_HIGH] = $plugin->get_lang('PriorityHigh');
-        $priorityList[TicketManager::PRIORITY_LOW] = $plugin->get_lang('PriorityLow');
+        $priorityList[TicketManager::PRIORITY_NORMAL] = get_lang('PriorityNormal');
+        $priorityList[TicketManager::PRIORITY_HIGH] = get_lang('PriorityHigh');
+        $priorityList[TicketManager::PRIORITY_LOW] = get_lang('PriorityLow');
 
         $form->addElement(
             'select',
             'priority_id',
-            $plugin->get_lang('Priority'),
+            get_lang('Priority'),
             $priorityList,
             array(
                 'id' => 'priority_id',
@@ -530,7 +529,7 @@ function show_form_send_message($ticket)
         )
     );
 
-    $form->addElement('hidden', 'ticket_id', $ticket['ticket_id']);
+    $form->addElement('hidden', 'ticket_id', $ticket['id']);
 
     $form->addHtmlEditor(
         'content',
@@ -549,7 +548,7 @@ function show_form_send_message($ticket)
             'checkbox',
             'confirmation',
              null,
-            $plugin->get_lang('RequestConfirmation')
+            get_lang('RequestConfirmation')
         );
     }
 

+ 0 - 0
plugin/ticket/src/ticket_plugin.class.php → main/ticket/ticket_plugin.class.php


+ 1 - 1
plugin/ticket/src/tutor.php → main/ticket/tutor.php

@@ -5,7 +5,7 @@
  * @package chamilo.plugin.ticket
  */
 
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 $plugin = TicketPlugin::create();
 
 require_once __DIR__.'/tutor_report.lib.php';

+ 0 - 0
plugin/ticket/src/tutor_report.lib.php → main/ticket/tutor_report.lib.php


+ 2 - 2
plugin/ticket/src/update_report.php → main/ticket/update_report.php

@@ -5,7 +5,7 @@
  * @package chamilo.plugin.ticket
  */
 
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 $plugin = TicketPlugin::create();
 
 $work_id = intval($_POST['work_id']);
@@ -14,7 +14,7 @@ $rs_id = intval($_POST['rs_id']);
 api_protect_course_script();
 
 if (!api_is_allowed_to_edit()) {
-    Display::display_error_message($plugin->get_lang("DeniedAccess"));
+    Display::display_error_message(get_lang("DeniedAccess"));
 } else {
     $sql = "UPDATE " . Database::get_main_table('rp_reporte_semanas') . "
             SET work_id = '$work_id', forum_id = '$forum_id'

+ 0 - 1
plugin/ticket/README.md

@@ -1 +0,0 @@
-Ticket management system features for Chamilo.

+ 0 - 23
plugin/ticket/config.php

@@ -1,23 +0,0 @@
-<?php
-/* For licensing terms, see /license.txt */
-
-/**
- * @package chamilo.plugin.ticket
- */
-
-/* Tables names constants */
-define('PLUGIN_NAME', 'ticket');
-define('TABLE_TICKET_ASSIGNED_LOG', 'plugin_ticket_assigned_log');
-define('TABLE_TICKET_CATEGORY', 'plugin_ticket_category');
-define('TABLE_TICKET_MESSAGE', 'plugin_ticket_message');
-define('TABLE_TICKET_PRIORITY', 'plugin_ticket_priority');
-define('TABLE_TICKET_PROJECT', 'plugin_ticket_project');
-define('TABLE_TICKET_STATUS', 'plugin_ticket_status');
-define('TABLE_TICKET_TICKET', 'plugin_ticket_ticket');
-define('TABLE_TICKET_CATEGORY_REL_USER', 'plugin_ticket_category_rel_user');
-define('TABLE_TICKET_MESSAGE_ATTACHMENTS', 'plugin_ticket_message_attachments');
-
-require_once __DIR__ . '/../../main/inc/global.inc.php';
-
-require_once api_get_path(SYS_PLUGIN_PATH) . PLUGIN_NAME . '/src/ticket_plugin.class.php';
-require_once api_get_path(SYS_PLUGIN_PATH) . PLUGIN_NAME . '/src/ticket.class.php';

+ 0 - 249
plugin/ticket/database.php

@@ -1,249 +0,0 @@
-<?php
-/* For licensing terms, see /license.txt */
-
-/**
- * Contains the SQL for the tickets management plugin database structure
- */
-
-$objPlugin = TicketPlugin::create();
-
-// Category
-$table = Database::get_main_table(TABLE_TICKET_CATEGORY);
-
-if (!Database::tableExists($table)) {
-    $sql = "CREATE TABLE IF NOT EXISTS $table (
-            id int UNSIGNED NOT NULL AUTO_INCREMENT,
-            category_id char(3) NOT NULL,
-            project_id char(3) NOT NULL,
-            name varchar(100) NOT NULL,
-            description varchar(255) NOT NULL,
-            total_tickets int UNSIGNED NOT NULL DEFAULT '0',
-            course_required char(1) NOT NULL,
-            sys_insert_user_id int UNSIGNED DEFAULT NULL,
-            sys_insert_datetime datetime DEFAULT NULL,
-            sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
-            sys_lastedit_datetime datetime DEFAULT NULL,
-            PRIMARY KEY (id))";
-    $result = Database::query($sql);
-
-    $tableLog = Database::get_main_table(TABLE_TICKET_ASSIGNED_LOG);
-    $sql = "CREATE TABLE IF NOT EXISTS $tableLog (
-            id int UNSIGNED NOT NULL AUTO_INCREMENT,
-            ticket_id int UNSIGNED DEFAULT NULL,
-            user_id int UNSIGNED DEFAULT NULL,
-            assigned_date datetime DEFAULT NULL,
-            sys_insert_user_id int UNSIGNED DEFAULT NULL,
-            PRIMARY KEY PK_ticket_assigned_log (id),
-            KEY FK_ticket_assigned_log (ticket_id))";
-    Database::query($sql);
-
-    // Default Categories
-    $categories = array(
-        $objPlugin->get_lang('Enrollment') => $objPlugin->get_lang('TicketsAboutEnrollment'),
-        $objPlugin->get_lang('GeneralInformation') => $objPlugin->get_lang('TicketsAboutGeneralInformation'),
-        $objPlugin->get_lang('RequestAndPapework') => $objPlugin->get_lang('TicketsAboutRequestAndPapework'),
-        $objPlugin->get_lang('AcademicIncidence') => $objPlugin->get_lang('TicketsAboutAcademicIncidence'),
-        $objPlugin->get_lang('VirtualCampus') => $objPlugin->get_lang('TicketsAboutVirtualCampus'),
-        $objPlugin->get_lang('OnlineEvaluation') => $objPlugin->get_lang('TicketsAboutOnlineEvaluation')
-    );
-
-    $i = 1;
-    foreach ($categories as $category => $description) {
-        // Online evaluation requires a course
-        if ($i == 6) {
-            $attributes = array(
-                'id' => $i,
-                'category_id' => $i,
-                'name' => $category,
-                'description' => $description,
-                'project_id' => 1,
-                'course_required' => 1
-            );
-        } else {
-            $attributes = array(
-                'id' => $i,
-                'category_id' => $i,
-                'project_id' => 1,
-                'description' => $description,
-                'name' => $category,
-                'course_required' => 0
-            );
-        }
-
-        Database::insert($table, $attributes);
-        $i++;
-    }
-}
-
-$table = Database::get_main_table(TABLE_TICKET_MESSAGE);
-$sql = "CREATE TABLE IF NOT EXISTS $table (
-        id int UNSIGNED NOT NULL AUTO_INCREMENT,
-        message_id int UNSIGNED NOT NULL,
-        ticket_id int UNSIGNED NOT NULL,
-        subject varchar(255) DEFAULT NULL,
-        message text NOT NULL,
-        status char(3) NOT NULL,
-        ip_address varchar(16) DEFAULT NULL,
-        sys_insert_user_id int UNSIGNED DEFAULT NULL,
-        sys_insert_datetime datetime DEFAULT NULL,
-        sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
-        sys_lastedit_datetime datetime DEFAULT NULL,
-        PRIMARY KEY (id),
-        KEY FK_tick_message (ticket_id))";
-Database::query($sql);
-
-$table = Database::get_main_table(TABLE_TICKET_MESSAGE_ATTACHMENTS);
-$sql = "CREATE TABLE IF NOT EXISTS $table (
-        id int UNSIGNED NOT NULL AUTO_INCREMENT,
-        message_attch_id char(2) NOT NULL,
-        message_id char(2) NOT NULL,
-        ticket_id int UNSIGNED NOT NULL,
-        path varchar(255) NOT NULL,
-        filename varchar(255) NOT NULL,
-        size varchar(25) DEFAULT NULL,
-        sys_insert_user_id int UNSIGNED DEFAULT NULL,
-        sys_insert_datetime datetime DEFAULT NULL,
-        sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
-        sys_lastedit_datetime datetime DEFAULT NULL,
-        PRIMARY KEY (id),
-        KEY ticket_message_id_fk (message_id))";
-Database::query($sql);
-
-// Priority
-$table = Database::get_main_table(TABLE_TICKET_PRIORITY);
-
-if (!Database::tableExists($table)) {
-    $sql = "CREATE TABLE IF NOT EXISTS $table (
-            id int UNSIGNED NOT NULL AUTO_INCREMENT,
-            priority_id char(3) NOT NULL,
-            priority varchar(20) DEFAULT NULL,
-            priority_desc varchar(250) DEFAULT NULL,
-            priority_color varchar(25) DEFAULT NULL,
-            priority_urgency tinyint DEFAULT NULL,
-            sys_insert_user_id int UNSIGNED DEFAULT NULL,
-            sys_insert_datetime datetime DEFAULT NULL,
-            sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
-            sys_lastedit_datetime datetime DEFAULT NULL,
-            PRIMARY KEY (id))";
-    Database::query($sql);
-
-    // Default Priorities
-    $defaultPriorities = array(
-        TicketManager::PRIORITY_NORMAL => $objPlugin->get_lang('PriorityNormal'),
-        TicketManager::PRIORITY_HIGH => $objPlugin->get_lang('PriorityHigh'),
-        TicketManager::PRIORITY_LOW => $objPlugin->get_lang('PriorityLow')
-    );
-
-    $i = 1;
-    foreach ($defaultPriorities as $pId => $priority) {
-        $attributes = array(
-            'id' => $i,
-            'priority_id' => $pId,
-            'priority' => $priority,
-            'priority_desc' => $priority
-        );
-        Database::insert($table, $attributes);
-        $i++;
-    }
-}
-
-$table = Database::get_main_table(TABLE_TICKET_PROJECT);
-if (!Database::tableExists($table)) {
-    $sql = "CREATE TABLE IF NOT EXISTS $table (
-            id int UNSIGNED NOT NULL AUTO_INCREMENT,
-            project_id char(3) NOT NULL,
-            name varchar(50) DEFAULT NULL,
-            description varchar(250) DEFAULT NULL,
-            email varchar(50) DEFAULT NULL,
-            other_area tinyint NOT NULL DEFAULT '0',
-            sys_insert_user_id int UNSIGNED DEFAULT NULL,
-            sys_insert_datetime datetime DEFAULT NULL,
-            sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
-            sys_lastedit_datetime datetime DEFAULT NULL,
-            PRIMARY KEY (id))";
-    Database::query($sql);
-
-    // Default Project Table Ticket
-    $attributes = array(
-        'id' => 1,
-        'project_id' => 1,
-        'name' => 'Ticket System'
-    );
-    Database::insert($table, $attributes);
-}
-
-// STATUS
-$table = Database::get_main_table(TABLE_TICKET_STATUS);
-if (!Database::tableExists($table)) {
-    $sql = "CREATE TABLE IF NOT EXISTS $table (
-            id int UNSIGNED NOT NULL AUTO_INCREMENT,
-            status_id char(3) NOT NULL,
-            name varchar(100) NOT NULL,
-            description varchar(255) DEFAULT NULL,
-            PRIMARY KEY (id))";
-    Database::query($sql);
-
-    // Default status
-    $defaultStatus = array(
-        TicketManager::STATUS_NEW => $objPlugin->get_lang('StatusNew'),
-        TicketManager::STATUS_PENDING => $objPlugin->get_lang('StatusPending'),
-        TicketManager::STATUS_UNCONFIRMED => $objPlugin->get_lang('StatusUnconfirmed'),
-        TicketManager::STATUS_CLOSE => $objPlugin->get_lang('StatusClose'),
-        TicketManager::STATUS_FORWARDED => $objPlugin->get_lang('StatusForwarded')
-    );
-
-    $i = 1;
-    foreach ($defaultStatus as $abr => $status) {
-        $attributes = array(
-            'id' => $i,
-            'status_id' => $abr,
-            'name' => $status
-        );
-        Database::insert($table, $attributes);
-        $i++;
-    }
-}
-
-$table = Database::get_main_table(TABLE_TICKET_TICKET);
-$sql = "CREATE TABLE IF NOT EXISTS $table (
-        ticket_id int UNSIGNED NOT NULL AUTO_INCREMENT,
-        ticket_code char(12) DEFAULT NULL,
-        project_id char(3) DEFAULT NULL,
-        category_id char(3) NOT NULL,
-        priority_id char(3) NOT NULL,
-        course_id int UNSIGNED NOT NULL,
-        session_id int UNSIGNED NOT NULL DEFAULT '0',        
-        personal_email varchar(150) DEFAULT NULL,
-        assigned_last_user int UNSIGNED NOT NULL DEFAULT '0',
-        status_id char(3) NOT NULL,
-        total_messages int UNSIGNED NOT NULL DEFAULT '0',
-        subject varchar(255) DEFAULT NULL,
-        message text NOT NULL,
-        keyword varchar(250) DEFAULT NULL,
-        source char(3) NOT NULL,
-        start_date datetime NOT NULL,
-        end_date datetime DEFAULT NULL,
-        sys_insert_user_id int UNSIGNED DEFAULT NULL,
-        sys_insert_datetime datetime DEFAULT NULL,
-        sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
-        sys_lastedit_datetime datetime DEFAULT NULL,
-        PRIMARY KEY (ticket_id),
-        UNIQUE KEY UN_ticket_code (ticket_code),
-        KEY FK_ticket_priority (priority_id),
-        KEY FK_ticket_category (project_id,category_id))";
-Database::query($sql);
-
-$table = Database::get_main_table(TABLE_TICKET_CATEGORY_REL_USER);
-$sql = "CREATE TABLE IF NOT EXISTS $table (
-        id int UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT,
-        category_id INT NOT NULL,
-        user_id INT NOT NULL
-)";
-Database::query($sql);
-
-// Menu main tabs
-$rsTab = $objPlugin->addTab('Ticket', 'plugin/ticket/src/myticket.php');
-
-if ($rsTab) {
-    echo "<script>location.href = '" . $_SERVER['REQUEST_URI'] . "';</script>";
-}

+ 0 - 1
plugin/ticket/index.php

@@ -1 +0,0 @@
-<?php

+ 0 - 11
plugin/ticket/install.php

@@ -1,11 +0,0 @@
-<?php
-/* For licensing terms, see /license.txt */
-
-/**
- * This script is included by main/admin/settings.lib.php and generally
- * includes things to execute in the main database (settings_current table)
- * @package chamilo.plugin.ticket
- */
-
-require_once __DIR__.'/config.php';
-TicketPlugin::create()->install();

+ 0 - 102
plugin/ticket/lang/english.php

@@ -1,102 +0,0 @@
-<?php
-$strings['plugin_title'] = "Support tickets";
-$strings['plugin_comment'] = "Plugin to include a support tickets system inside Chamilo.";
-$strings['tool_enable'] = "Enable Ticket plugin";
-$strings['tool_enable_help'] = "Enabling the ticket tool will make a new tab available in the main horizontal menu. This tab will appear for all users and will lead them to the tickets management system where they can check the status of their tickets.";
-$strings['TabsTickets'] = "Tickets tab";
-$strings['TicketNum'] = "Ticket #";
-$strings['Date'] = "Date";
-$strings['Category'] = "Category";
-$strings['User'] = "User";
-$strings['Program'] = "Program";
-$strings['Responsible'] = "Assigned to";
-$strings['Status'] = "Status";
-$strings['Message'] = "Messages";
-$strings['Description'] = "Description";
-$strings['Tickets'] = "Tickets";
-$strings['MyTickets'] = "My Tickets";
-$strings['MsgWelcome'] = "Welcome to YOUR tickets section. Here, you'll be able to track the state of all the tickets you created in the main tickets section";
-$strings['TckSuccessSave'] = "Your ticket has been created successfully";
-$strings['TckClose'] = "Close the ticket";
-$strings['TckNew'] = "New ticket";
-$strings['TcksNew'] = "New tickets";
-$strings['Unassigned'] = "Not assigned";
-$strings['Unassign'] = "Unassigned";
-$strings['Read'] = "Read";
-$strings['Unread'] = "Not read";
-$strings['RegisterDate'] = "Registration date";
-$strings['AssignedTo'] = "Assigned to";
-$strings['ValidUser'] = "Please select a user";
-$strings['ValidType'] = "Please select a type";
-$strings['ValidSubject'] = "Please select a topic";
-$strings['ValidCourse'] = "Please select a course";
-$strings['ValidEmail'] = "The e-mail address must be valid";
-$strings['ValidMessage'] = "You must enter a message";
-$strings['PersonalEmail'] = "Personal e-mail";
-$strings['Optional'] = "Optional";
-$strings['ErrorRegisterMessage'] = "The ticket could not be created";
-$strings['Source'] = "Source";
-$strings['DeniedAccess'] = "Unauthorized access.";
-$strings['StatusNew'] = "New";
-$strings['StatusPending'] = "Pending";
-$strings['StatusUnconfirmed'] = "Unconfirmed";
-$strings['StatusClose'] = "Closed";
-$strings['StatusForwarded'] = "Resent";
-$strings['Priority'] = "Priority";
-$strings['PriorityHigh'] = "High";
-$strings['PriorityNormal'] = "Normal";
-$strings['PriorityLow'] = "Low";
-$strings['SrcPlatform'] = "Platforme";
-$strings['SrcEmail'] = "E-mail";
-$strings['SrcPhone'] = "Phone";
-$strings['SrcPresential'] = "In-person";
-$strings['TicketAssignedMsg'] = "<p>Dear %s</p><p><a href='%s'>Ticket  %s</a> has been assigned to you.</p><p>Message sent from the support ticket system</p>";
-$strings['TicketAssignX'] = "[TICKETS] Assignation of ticket #%s";
-$strings['AreYouSureYouWantToCloseTheTicket'] = "Are you sure you want to close this ticket?";
-$strings['AreYouSureYouWantToUnassignTheTicket'] = "Are you sure you want to unassign this ticket?";
-$strings['YouMustWriteAMessage'] = "You have to enter a message";
-$strings['LastResponse'] = "Last response";
-$strings['AssignTicket'] = "Assign ticket";
-$strings['AttendedBy'] = "Attended by";
-$strings['IfYouAreSureTheTicketWillBeClosed'] = "If you are certain, the ticket will be closed";
-$strings['YourQuestionWasSentToTheResponableAreaX'] = "<p>Your support request was sent to the area manager: <a href='mailto:%s'>%s</a></p>";
-$strings['YourAnswerToTheQuestionWillBeSentToX'] = "<p>The answer to your support ticket was sent to the following e-mail: <a href='#'>%s</a></p>";
-$strings['VirtualSupport'] = "Virtual support";
-$strings['IncidentResentToVirtualSupport'] = "The incident was sent to virtual support";
-$strings['DateLastEdition'] = "Last edition date";
-$strings['GeneralInformation'] = "General information";
-$strings['TicketsAboutGeneralInformation'] = "Tickets about general information";
-$strings['Enrollment'] = "Enrollment";
-$strings['TicketsAboutEnrollment'] = "Tickets about enrollment";
-$strings['RequestAndPapework'] = "Requests and paperwork";
-$strings['TicketsAboutRequestAndPapework'] = "Tickets about requests and paperwork";
-$strings['AcademicIncidence'] = "Academic Incidents";
-$strings['TicketsAboutAcademicIncidence'] = "Tickets about academic incidents, like exams, practices, tasks, etc.";
-$strings['VirtualCampus'] = "Virtual campus";
-$strings['TicketsAboutVirtualCampus'] = "Tickets about virtual campus";
-$strings['OnlineEvaluation'] = "Online evaluation";
-$strings['TicketsAboutOnlineEvaluation'] = "Tickets about online evaluation";
-$strings['ToBeAssigned'] = "To be assigned";
-$strings['Untill'] = "Until";
-$strings['TicketWasThisAnswerSatisfying'] = "Was this answer satisfactory?";
-$strings['TicketDetail'] = "Ticket details";
-$strings['AreYouSure'] = "Are you sure?";
-$strings['allow_student_add'] = "Allow students to generate tickets";
-$strings['PleaseBeforeRegisterATicketSelectOneUser'] = "Please select a user before you register a ticket.";
-$strings['RequestConfirmation'] = "Request confirmation";
-
-$strings['TicketUpdated'] = "Ticket updated";
-$strings['TicketClosed'] = "Ticket closed";
-
-$strings['TicketXCreated'] = "Ticket <b>%s</b> created";
-$strings['allow_category_edition'] = "Allow category edition";
-$strings['warn_admin_no_user_in_category'] = "Warn admin if category doesn't have users related";
-$strings['send_warning_to_all_admins'] = "Send warning to all admins, if category doesn't have users related";
-$strings['WarningCategoryXDoesntHaveUsers'] = "Warning: The category '%s' doesn't have users assigned";
-$strings['TicketInformation'] = 'Ticket information';
-$strings['CategoryWithNoUserNotificationSentToAdmins'] = 'Category <b>%s</b> has users, Ticket sent to all administrators.';
-$strings['TicketXAssignedToUserX'] = 'Ticket <b>#%s</b> assigned to user <b>%s</b>';
-$strings['TicketXCreatedWithNoCategory'] = 'Ticket <b>#%s</b> created with no category';
-
-$strings['UpdatedByX'] = 'Updated by %s';
-$strings['AssignedChangeFromXToY'] = 'Assignee changed from %s to %s';

+ 0 - 89
plugin/ticket/lang/french.php

@@ -1,89 +0,0 @@
-<?php
-$strings['plugin_title'] = "Tickets de support";
-$strings['plugin_comment'] = "Plugin de gestion des tickets de support.";
-$strings['tool_enable'] = "Activer le plugin de tickets";
-$strings['tool_enable_help'] = "Activer l'outil de tickets activera un nouvel onglet dans le même menu horizontal. Cet onglet apparaîtra pour tous les utilisateurs et les mènera au système de gestion de tickets où ils pourront vérifier l'état de leurs tickets.";
-$strings['TabsTickets'] = "Onglet tickets";
-$strings['TicketNum'] = "Ticket #";
-$strings['Date'] = "Date";
-$strings['Category'] = "Catégorie";
-$strings['User'] = "Utilisateur";
-$strings['Program'] = "Programme";
-$strings['Responsible'] = "Assigné à";
-$strings['Status'] = "État";
-$strings['Message'] = "Messages";
-$strings['Description'] = "Description";
-$strings['Tickets'] = "Tickets";
-$strings['MyTickets'] = "Mes tickets";
-$strings['MsgWelcome'] = "Ceci est la section MES Tickets, où vous pouvez suivre l'évolution des tickets que vous avez créé";
-$strings['TckSuccessSave'] = "Votre ticket a été enregistré";
-$strings['TckClose'] = "Fermer le ticket";
-$strings['TckNew'] = "Nouveau ticket";
-$strings['TcksNew'] = "Nouveaux tickets";
-$strings['Unassigned'] = "Non assignés";
-$strings['Unassign'] = "Désassigné";
-$strings['Read'] = "Lus";
-$strings['Unread'] = "Non lus";
-$strings['RegisterDate'] = "Date d'enregistrement";
-$strings['AssignedTo'] = "Assigné à";
-$strings['ValidUser'] = "Veuillez sélectionner un utilisateur";
-$strings['ValidType'] = "Veuillez sélectionner un type";
-$strings['ValidSubject'] = "Veuillez sélectionner un sujet";
-$strings['ValidCourse'] = "Veuillez sélectionner un cours";
-$strings['ValidEmail'] = "L'adresse e-mail doit être correcte";
-$strings['ValidMessage'] = "Veuillez introduire un message";
-$strings['PersonalEmail'] = "E-mail personnel";
-$strings['Optional'] = "Optionnel";
-$strings['ErrorRegisterMessage'] = "Le ticket n'a pas pu être enregistré";
-$strings['Source'] = "Source";
-$strings['DeniedAccess'] = "Accès non autorisé.";
-$strings['StatusNew'] = "Nouveau";
-$strings['StatusPending'] = "En attente";
-$strings['StatusUnconfirmed'] = "À confirmer";
-$strings['StatusClose'] = "Fermé";
-$strings['StatusForwarded'] = "Réenvoyé";
-$strings['Priority'] = "Priorité";
-$strings['PriorityHigh'] = "Haute";
-$strings['PriorityNormal'] = "Normale";
-$strings['PriorityLow'] = "Basse";
-$strings['SrcEmail'] = "E-mail";
-$strings['SrcPhone'] = "Téléphone";
-$strings['SrcPresential'] = "En personne";
-$strings['TicketAssignedMsg'] = "<p>Cher/Chère %s </p><p>Le <a href='%s'>ticket %s</a> vous a été assigné.</p><p>Message envoyé depuis le système de support.</p>";
-$strings['TicketAssignX'] = "[TICKETS] Assignation de ticket #%s";
-$strings['AreYouSureYouWantToCloseTheTicket'] = "Êtes-vous certain de vouloir fermer ce ticket?";
-$strings['AreYouSureYouWantToUnassignTheTicket'] = "Êtes-vous certain de vouloir désassigner le ticket?";
-$strings['YouMustWriteAMessage'] = "Vous devez introduire un message";
-$strings['LastResponse'] = "Dernière réponse";
-$strings['AssignTicket'] = "Assigner ticket";
-$strings['AttendedBy'] = "Pris en charge par";
-$strings['IfYouAreSureTheTicketWillBeClosed'] = "Si vous êtes certain, le ticket sera clôturé";
-$strings['YourQuestionWasSentToTheResponableAreaX'] = "<p>Votre demande de support a été réenvoyée au responsable du département: <a href='mailto:%s'>%s</a></p>";
-$strings['YourAnswerToTheQuestionWillBeSentToX'] = "<p>La réponse à votre demande de support sera envoyée à l'e-mail:<a href='#'>%s</a></p>";
-$strings['VirtualSupport'] = "Support virtuel";
-$strings['IncidentResentToVirtualSupport'] = "L'incident a été envoyé au support virtuel";
-$strings['DateLastEdition'] = "Date de la dernière édition";
-$strings['GeneralInformation'] = "Information générale";
-$strings['TicketsAboutGeneralInformation'] = "Tickets liés à information générale.";
-$strings['Enrollment'] = "Inscription";
-$strings['TicketsAboutEnrollment'] = "Tickets liés à l'inscription.";
-$strings['RequestAndPapework'] = "Questions précédentes et procédures";
-$strings['TicketsAboutRequestAndPapework'] = "Tickets liés aux questions précédentes et procédures.";
-$strings['AcademicIncidence'] = "Incidences académiques";
-$strings['TicketsAboutAcademicIncidence'] = "Tickets liés aux incidences académiques, comme les examens, les pratiques, tâches, etc.";
-$strings['VirtualCampus'] = "Campus virtuel";
-$strings['TicketsAboutVirtualCampus'] = "Tickets liés au campus virtuel";
-$strings['OnlineEvaluation'] = "Évaluation en ligne";
-$strings['TicketsAboutOnlineEvaluation'] = "Tickets liés aux évaluations en ligne";
-$strings['ToBeAssigned'] = "À assigner";
-$strings['Untill'] = "Jusqu'au";
-$strings['TicketWasThisAnswerSatisfying'] = "La réponse au ticket est-elle satisfaisante?";
-$strings['TicketDetail'] = "Détails du ticket";
-$strings['AreYouSure'] = "Êtes-vous certain?";
-$strings['allow_student_add'] = "Permettre à l'étudiant de générer des tickets";
-$strings['PleaseBeforeRegisterATicketSelectOneUser'] = "Veuillez sélectionner un utilisateur avant d'enregistrer un ticket.";
-$strings['RequestConfirmation'] = "Demander confirmation";
-$strings['TicketUpdated'] = "Ticket modifié";
-$strings['TicketClosed'] = "Ticket fermé";
-$strings['SrcPlatform'] = "Platforme";
-$strings['UpdatedByX'] = 'Updated by %s';

+ 0 - 93
plugin/ticket/lang/spanish.php

@@ -1,93 +0,0 @@
-<?php /* License: see /license.txt */
-//Needed in order to show the plugin title
-$strings['plugin_title'] = "Tickets de soporte";
-$strings['plugin_comment'] = "Plugin para el soporte de tickets de atención dentro de Chamilo.";
-$strings['tool_enable'] = "Activar plugin de tickets";
-$strings['tool_enable_help'] = "Activar la herramienta de tickets hará disponible una nueva pestaña en la barra principal horizontal. Esta pestaña aparecerá para todos los usuarios y los guiará al sistema de gestión de tickets donde podrán verificar el estado de sus tickets.";
-$strings['TabsTickets'] = "Pestaña de tickets";
-$strings['TicketNum'] = "Ticket #";
-$strings['Date'] = "Fecha";
-$strings['Category'] = "Categoría";
-$strings['User'] = "Usuario";
-$strings['Program'] = "Programa";
-$strings['Responsible'] = "Responsable";
-$strings['Status'] = "Estado";
-$strings['Message'] = "Mensajes";
-$strings['Description'] = "Descripción";
-$strings['Tickets'] = "Tickets";
-$strings['MyTickets'] = "Mis Tickets";
-$strings['MsgWelcome'] = "Bienvenido a su sección MIS TICKETS. Esta sección le permite revisar sus Tickets de Soporte generados en SOPORTE TÉCNICO";
-$strings['TckSuccessSave'] = "Se registró con éxito su ticket";
-$strings['TckClose'] = "Cerrar Tickets";
-$strings['TckNew'] = "Nuevo Ticket";
-$strings['TcksNew'] = "Tickets Nuevos";
-$strings['Unassigned'] = "No asignados";
-$strings['Unassign'] = "Desasignado";
-$strings['Read'] = "Leídos";
-$strings['Unread'] = "No leídos";
-$strings['RegisterDate'] = "Fecha de Registro";
-$strings['AssignedTo'] = "Asignado a";
-$strings['ValidUser'] = "Debe seleccionar a un usuario";
-$strings['ValidType'] = "Debe seleccionar un tipo";
-$strings['ValidSubject'] = "Debe escribir un asunto";
-$strings['ValidCourse'] = "Debe elegir un curso";
-$strings['ValidEmail'] = "Debe escribir un email válido";
-$strings['ValidMessage'] = "Debe escribir un mensaje";
-$strings['PersonalEmail'] = "Email Personal";
-$strings['Optional'] = "Opcional";
-$strings['ErrorRegisterMessage'] = "No se pudo registrar su ticket";
-$strings['Source'] = "Fuente";
-$strings['DeniedAccess'] = "Acceso denegado.";
-// Status Tickets
-$strings['StatusNew'] = "Nuevo";
-$strings['StatusPending'] = "Pendiente";
-$strings['StatusUnconfirmed'] = "Por Confirmar";
-$strings['StatusClose'] = "Cerrado";
-$strings['StatusForwarded'] = "Reenviado";
-// Priority
-$strings['Priority'] = "Prioridad";
-$strings['PriorityHigh'] = "Alta";
-$strings['PriorityNormal'] = "Normal";
-$strings['PriorityLow'] = "Baja";
-// Source
-$strings['SrcEmail'] = "Email";
-$strings['SrcPhone'] = "Teléfono";
-$strings['SrcPresential'] = "Presencial";
-$strings['TicketAssignedMsg']    = "<p>Estimado(a) %s </p><p>Se le ha sido asignado el <a href=\"%s\">ticket %s</a></p><p>Mensaje enviado desde el sistema de ticket.</p>";
-$strings['TicketAssignX'] = "[TICKETS] Asignación de Ticket #%s ";
-$strings['AreYouSureYouWantToCloseTheTicket'] = "¿Está seguro que quiere cerrar el ticket?";
-$strings['AreYouSureYouWantToUnassignTheTicket'] = "¿Está seguro que quiere desasignarse el ticket?";
-$strings['YouMustWriteAMessage'] = "Debe escribir un mensaje";
-$strings['LastResponse'] = "Última Respuesta";
-$strings['AssignTicket'] = "Asignar Ticket";
-$strings['AttendedBy'] = "Atendido por";
-$strings['IfYouAreSureTheTicketWillBeClosed'] = "Si está seguro el Ticket será cerrado";
-$strings['YourQuestionWasSentToTheResponableAreaX'] = "<p>Su consulta fue reenviada al área responsable: <a href='mailto: %s'>%s</a></p>";
-$strings['YourAnswerToTheQuestionWillBeSentToX'] = "<p>La respuesta a su consulta será enviada al correo:<a href='#'>%s</a></p>";
-$strings['VirtualSupport'] = "Soporte Virtual";
-$strings['IncidentResentToVirtualSupport'] = "El incidente ha sido reenviado al Soporte Técnico";
-$strings['DateLastEdition'] = "Fecha Última Edición";
-$strings['GeneralInformation'] = "Información General";
-$strings['TicketsAboutGeneralInformation'] = "Tickets acerca de Infomación General.";
-$strings['Enrollment'] = "Matrícula";
-$strings['TicketsAboutEnrollment'] = "Tickets relacionados con la Matrícula.";
-$strings['RequestAndPapework'] = "Consultas y Trámites";
-$strings['TicketsAboutRequestAndPapework'] = "Tickets relacionados a consultas anteriores y trámites.";
-$strings['AcademicIncidence'] = "Incidencias Académicas";
-$strings['TicketsAboutAcademicIncidence'] = "Tickets relacionados a incidencias académicas como exámenes, prácticas, tareas, etc.";
-$strings['VirtualCampus'] = "Campus Virtual";
-$strings['TicketsAboutVirtualCampus'] = "Tickets relacionados al Campus Virtual";
-$strings['OnlineEvaluation'] = "Evaluación en línea";
-$strings['TicketsAboutOnlineEvaluation'] = "Tickets relacionados a las evaluaciones en línea";
-$strings['ToBeAssigned'] = "Por Asignar";
-$strings['Untill'] = "Hasta";
-$strings['TicketWasThisAnswerSatisfying'] = "¿Fue la respuesta al Ticket satisfactoria?";
-$strings['TicketDetail'] = "Detalle del Ticket";
-$strings['AreYouSure'] = "¿Está seguro?";
-$strings['allow_student_add'] = "Permitir al estudiante generar Tickets";
-$strings['PleaseBeforeRegisterATicketSelectOneUser'] = "Por favor, antes de registrar un Ticket seleccione un usuario.";
-$strings['RequestConfirmation'] = "Solicitar confirmación";
-$strings['TicketUpdated'] = "Ticket actualizado";
-$strings['TicketClosed'] = "Ticket cerrado";
-$strings['SrcPlatform'] = "Plataforma";
-$strings['UpdatedByX'] = 'Actualizado por %s';

+ 0 - 8
plugin/ticket/plugin.php

@@ -1,8 +0,0 @@
-<?php
-/* For licensing terms, see /license.txt */
-
-/**
- * @package chamilo.plugin.ticket
- */
-require_once __DIR__.'/config.php';
-$plugin_info = TicketPlugin::create()->get_info();

+ 0 - 14
plugin/ticket/start.php

@@ -1,14 +0,0 @@
-<?php
-/* For licensing terms, see /license.txt */
-
-/**
- * This script initiates a ticket management system session
- * @package chamilo.plugin.ticket
- */
-$course_plugin = 'ticket'; //needed in order to load the plugin lang variables
-require_once __DIR__.'/config.php';
-$tool_name = get_lang('Ticket');
-$tpl = new Template($tool_name);
-
-$tpl->assign('message', $message);
-$tpl->display_one_col_template();

+ 0 - 11
plugin/ticket/uninstall.php

@@ -1,11 +0,0 @@
-<?php
-/* For licensing terms, see /license.txt */
-
-/**
- * This script is included by main/admin/settings.lib.php when unselecting a plugin
- * and is meant to remove things installed by the install.php script in both
- * the global database and the courses tables
- * @package chamilo.plugin.ticket
- */
-require_once __DIR__.'/config.php';
-TicketPlugin::create()->uninstall();

+ 1 - 0
src/Chamilo/CoreBundle/Composer/ScriptHandler.php

@@ -57,6 +57,7 @@ class ScriptHandler
             __DIR__.'/../../../../main/inc/lib/pchart/',
             __DIR__.'/../../../../main/inc/lib/htmlpurifier',
             __DIR__.'/../../../../main/announcements/resources',
+            __DIR__.'/../../../../main/plugin/ticket',
             __DIR__.'/../../../../src/Chamilo/CoreBundle/Entity/GroupRelGroup.php',
             __DIR__.'/../../../../src/Chamilo/CoreBundle/Entity/GroupRelTag.php',
             __DIR__.'/../../../../src/Chamilo/CoreBundle/Entity/GroupRelUser.php',

+ 4 - 3
src/Chamilo/TicketBundle/Entity/AssignedLog.php

@@ -3,6 +3,7 @@
 
 namespace Chamilo\TicketBundle\Entity;
 
+use Chamilo\UserBundle\Entity\User;
 use Gedmo\Mapping\Annotation as Gedmo;
 use Doctrine\ORM\Mapping as ORM;
 
@@ -34,7 +35,7 @@ class AssignedLog
     protected $ticket;
 
     /**
-     * @var Ticket
+     * @var User
      *
      * @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User")
      * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
@@ -44,14 +45,14 @@ class AssignedLog
     /**
      * @var integer
      *
-     * @ORM\Column(name="sys_insert_user_id", type="integer", nullable=false, unique=false)
+     * @ORM\Column(name="sys_insert_user_id", type="integer", nullable=false)
      */
     protected $insertUserId;
 
     /**
      * @var \DateTime
      *
-     * @ORM\Column(name="assigned_date", type="datetime", nullable=false, unique=false)
+     * @ORM\Column(name="assigned_date", type="datetime", nullable=false)
      */
     protected $assignedDate;
 }

+ 1 - 1
src/Chamilo/TicketBundle/Entity/Category.php

@@ -78,7 +78,7 @@ class Category
     /**
      * @var integer
      *
-     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=false, unique=false)
+     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=true, unique=false)
      */
     protected $lastEditUserId;
 

+ 11 - 2
src/Chamilo/TicketBundle/Entity/Message.php

@@ -28,7 +28,7 @@ class Message
     /**
      * @var string
      *
-     * @ORM\Column(name="subject", type="string", length=255, nullable=false)
+     * @ORM\Column(name="subject", type="string", length=255, nullable=true)
      */
     protected $subject;
 
@@ -53,12 +53,21 @@ class Message
      */
     protected $ipAddress;
 
+     /**
+     * @var Ticket
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\TicketBundle\Entity\Ticket")
+     * @ORM\JoinColumn(name="ticket_id", referencedColumnName="id")
+     **/
+    protected $ticket;
+
     /**
      * @var integer
      *
      * @ORM\Column(name="sys_insert_user_id", type="integer", nullable=false, unique=false)
      */
     protected $insertUserId;
+
     /**
      * @var \DateTime
      *
@@ -69,7 +78,7 @@ class Message
     /**
      * @var integer
      *
-     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=false, unique=false)
+     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=true, unique=false)
      */
     protected $lastEditUserId;
 

+ 2 - 2
src/Chamilo/TicketBundle/Entity/MessageAttachment.php

@@ -41,7 +41,6 @@ class MessageAttachment
      **/
     protected $message;
 
-
     /**
      * @var string
      *
@@ -69,6 +68,7 @@ class MessageAttachment
      * @ORM\Column(name="sys_insert_user_id", type="integer", nullable=false, unique=false)
      */
     protected $insertUserId;
+
     /**
      * @var \DateTime
      *
@@ -79,7 +79,7 @@ class MessageAttachment
     /**
      * @var integer
      *
-     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=false, unique=false)
+     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=true, unique=false)
      */
     protected $lastEditUserId;
 

+ 9 - 1
src/Chamilo/TicketBundle/Entity/Priority.php

@@ -32,6 +32,13 @@ class Priority
      */
     protected $name;
 
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="code", type="string", length=255, nullable=false)
+     */
+    protected $code;
+
     /**
      * @var string
      *
@@ -59,6 +66,7 @@ class Priority
      * @ORM\Column(name="sys_insert_user_id", type="integer", nullable=false, unique=false)
      */
     protected $insertUserId;
+
     /**
      * @var \DateTime
      *
@@ -69,7 +77,7 @@ class Priority
     /**
      * @var integer
      *
-     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=false, unique=false)
+     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=true, unique=false)
      */
     protected $lastEditUserId;
 

+ 2 - 2
src/Chamilo/TicketBundle/Entity/Project.php

@@ -46,7 +46,6 @@ class Project
      */
     protected $email;
 
-
     /**
      * @var string
      *
@@ -60,6 +59,7 @@ class Project
      * @ORM\Column(name="sys_insert_user_id", type="integer", nullable=false, unique=false)
      */
     protected $insertUserId;
+    
     /**
      * @var \DateTime
      *
@@ -70,7 +70,7 @@ class Project
     /**
      * @var integer
      *
-     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=false, unique=false)
+     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=true, unique=false)
      */
     protected $lastEditUserId;
 

+ 7 - 0
src/Chamilo/TicketBundle/Entity/Status.php

@@ -25,6 +25,13 @@ class Status
      */
     protected $id;
 
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="code", type="string", length=255, nullable=false)
+     */
+    protected $code;
+
     /**
      * @var string
      *

+ 11 - 2
src/Chamilo/TicketBundle/Entity/Ticket.php

@@ -30,7 +30,7 @@ class Ticket
     /**
      * @var string
      *
-     * @ORM\Column(name="ticket_code", type="string", length=255, nullable=false)
+     * @ORM\Column(name="code", type="string", length=255, nullable=false)
      */
     protected $code;
 
@@ -56,6 +56,14 @@ class Ticket
      **/
     protected $project;
 
+    /**
+     * @var Project
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\TicketBundle\Entity\Category")
+     * @ORM\JoinColumn(name="category_id", referencedColumnName="id")
+     **/
+    protected $category;
+
     /**
      * @var Priority
      *
@@ -143,6 +151,7 @@ class Ticket
      * @ORM\Column(name="sys_insert_user_id", type="integer", nullable=false, unique=false)
      */
     protected $insertUserId;
+
     /**
      * @var \DateTime
      *
@@ -153,7 +162,7 @@ class Ticket
     /**
      * @var integer
      *
-     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=false, unique=false)
+     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=true, unique=false)
      */
     protected $lastEditUserId;