Addng more tests

1.10.x
Julio Montoya 10 years ago
parent c18a77fca9
commit f1c6ec9fc8
  1. 1
      app/AppKernel.php
  2. 21
      app/SymfonyRequirements.php
  3. 1
      app/config/fos/fos_user.yml
  4. 2
      composer.json
  5. 25
      features/backend/course/Course.feature
  6. 8
      src/Chamilo/CoreBundle/Behat/CoreContext.php
  7. 40
      src/Chamilo/CoreBundle/Behat/CourseContext.php
  8. 16
      src/Chamilo/CoreBundle/Behat/DefaultContext.php
  9. 6
      src/Chamilo/CoreBundle/Component/Editor/Editor.php
  10. 2
      src/Chamilo/CoreBundle/Controller/BaseResourceController.php
  11. 13
      src/Chamilo/CoreBundle/Controller/CourseAdminController.php
  12. 67
      src/Chamilo/CoreBundle/Controller/CourseController.php
  13. 13
      src/Chamilo/CoreBundle/Controller/CourseRelUserAdminController.php
  14. 102
      src/Chamilo/CoreBundle/Entity/Course.php
  15. 22
      src/Chamilo/CoreBundle/Entity/CourseRelUser.php
  16. 28
      src/Chamilo/CoreBundle/Entity/Session.php
  17. 16
      src/Chamilo/CoreBundle/Form/Type/CourseType.php
  18. 4
      src/Chamilo/CoreBundle/Form/Type/YesNoType.php
  19. 2
      src/Chamilo/CoreBundle/Migrations/Data/ORM/LoadPageData.php
  20. 6
      src/Chamilo/CoreBundle/Resources/config/routing.yml
  21. 3
      src/Chamilo/CoreBundle/Resources/config/services.yml
  22. 3
      src/Chamilo/CoreBundle/Resources/views/Course/add.html.twig
  23. 49
      src/Chamilo/CoreBundle/Resources/views/Course/welcome.html.twig
  24. 3
      src/Chamilo/CourseBundle/Controller/CourseInfoController.php
  25. 46
      src/Chamilo/UserBundle/Entity/User.php

@ -159,7 +159,6 @@ class AppKernel extends Kernel
new Thrace\DataGridBundle\ThraceDataGridBundle(),
//new Vich\UploaderBundle\VichUploaderBundle(),
);
if (in_array($this->getEnvironment(), array('dev', 'test'))) {

@ -403,7 +403,7 @@ class SymfonyRequirements extends RequirementCollection
);
$this->addRequirement(
is_dir(__DIR__.'/../vendor/composer'),
is_dir($this->getComposerVendorDir()),
'Vendor libraries must be installed',
'Vendor libraries are missing. Install composer following instructions from <a href="http://getcomposer.org/">http://getcomposer.org/</a>. '.
'Then run "<strong>php composer.phar install</strong>" to install them.'
@ -543,7 +543,7 @@ class SymfonyRequirements extends RequirementCollection
/* optional recommendations follow */
$this->addRecommendation(
file_get_contents(__FILE__) === file_get_contents(__DIR__.'/../vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/skeleton/app/SymfonyRequirements.php'),
file_get_contents(__FILE__) === file_get_contents($this->getComposerVendorDir().'/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/skeleton/app/SymfonyRequirements.php'),
'Requirements file should be up-to-date',
'Your requirements file is outdated. Run composer install and re-check your configuration.'
);
@ -736,4 +736,21 @@ class SymfonyRequirements extends RequirementCollection
return (int) $size;
}
}
/**
* In some special setups, the vendor/ directory isn't located in the project's
* root directory. To make this command work for every case, read Composer's
* vendor/ directory location directly from composer.json file.
*
* @return string
*/
private function getComposerVendorDir()
{
$composerJson = json_decode(file_get_contents(__DIR__.'/../composer.json'));
if (isset($composerJson->config)) {
return $composerJson->config->{'vendor-dir'};
}
return __DIR__.'/../vendor/composer';
}
}

@ -18,6 +18,7 @@ fos_user:
handler: fos_user.profile.form.handler.default
name: fos_user_profile_form
validation_groups: [ProfileCustom]
profile:
form:
type: fos_user_profile

@ -62,7 +62,7 @@
"twig/twig": "~1.0",
"twig/extensions": "~1.0",
"symfony/symfony": "~2.5",
"symfony/symfony": "~2.6",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",

@ -0,0 +1,25 @@
@course
Feature: Course creation
In order to teacher a course
As a teacher
I need to create a course
Background:
Given there are following users:
| username | email | plain_password | enabled | groups |
| student | student@example.com | student | yes | Students |
| teacher | teacher@example.com | teacher | yes | Teachers |
@javascript
Scenario: A teacher creates a course
Given I am logged in teacher
When I go to the chamilo_core_course_add page
And I fill in "course[title]" with "test"
And I press "course_save"
Then I should see "Course created"
# Scenario: A student creates a course
# Given I am logged in student
# When I add course "My course" as user "teacher"
# Then I should not find a course "My course" in the portal
#

@ -396,7 +396,7 @@ class CoreContext extends DefaultContext
'admin_behat@example.org',
'admin_behat',
'yes',
array('admins')
array('Administrators')
);
}
@ -412,7 +412,7 @@ class CoreContext extends DefaultContext
$email,
'student',
'yes',
array('students')
array('Students')
);
}
@ -423,12 +423,12 @@ class CoreContext extends DefaultContext
public function iAmLoggedInTeacher($email = 'teacher@example.com')
{
$this->iAmLoggedInAsRole(
'ROLE_USER',
'ROLE_TEACHER',
'teacher',
$email,
'teacher',
'yes',
array('teachers')
array('Teachers')
);
}

@ -266,15 +266,51 @@ class CourseContext extends DefaultContext implements Context, SnippetAcceptingC
switch ($status) {
case 'student':
$this->getSessionManager()->hasStudentInCourse($user, $course, $session);
$this->getSessionManager()->hasStudentInCourse(
$user,
$course,
$session
);
break;
case 'drh':
$this->getSessionManager()->hasDrh($user, $session);
break;
case 'coach':
$this->getSessionManager()->hasCoachInCourse($user, $course, $session);
$this->getSessionManager()->hasCoachInCourse(
$user,
$course,
$session
);
break;
}
}
/**
* @When I add course :arg1 as user :arg2
*/
public function iAddCourseAsUser($courseTitle, $username)
{
$course = $this->getCourseManager()->findOneByTitle($courseTitle);
$user = $this->getUserManager()->findUserByUsername($username);
$course->addTeacher($user);
}
/**
* @Then I should find a course :arg1 in the portal
*/
public function iShouldFindACourseInThePortal($courseTitle)
{
$course = $this->getCourseManager()->findOneByTitle($courseTitle);
assertTrue($course instanceof Course);
}
/**
* @Then I should not find a course :arg1 in the portal
*/
public function iShouldNotFindACourseInThePortal($courseTitle)
{
$course = $this->getCourseManager()->findOneByTitle($courseTitle);
assertNull($course);
}
}

@ -56,6 +56,9 @@ abstract class DefaultContext extends BaseDefaultContext
*/
protected $kernel;
/**
* Constructor
*/
public function __construct()
{
$this->faker = FakerFactory::create();
@ -246,20 +249,7 @@ abstract class DefaultContext extends BaseDefaultContext
if (is_object($page)) {
return $this->generateUrl($page, $parameters);
}
$route = str_replace(' ', '_', trim($page));
//$routes = $this->getContainer()->get('router')->getRouteCollection();
/*if (null === $routes->get($route)) {
$route = 'sylius_'.$route;
}
if (null === $routes->get($route)) {
$route = str_replace('sylius_', 'sylius_backend_', $route);
}
$route = str_replace(array_keys($this->actions), array_values($this->actions), $route);
$route = str_replace(' ', '_', $route);*/
return $this->generateUrl($route, $parameters);
}

@ -44,7 +44,7 @@ class Editor
/** @var Translator */
public $translator;
/** @var Router */
/** @var RouterInterface */
public $urlGenerator;
/** @var \Template */
@ -52,9 +52,7 @@ class Editor
/**
* @param Translator $translator
* @param Router $urlGenerator
* @param Template $template
* @param Course $course
* @param RouterInterface $urlGenerator
*/
public function __construct(
Translator $translator,

@ -224,7 +224,7 @@ abstract class BaseResourceController extends ResourceController
/**
* @inheritdoc
**/
public function isGranted($attributes, $object)
public function isGranted($attributes, $object = null)
{
return $this->get('security.authorization_checker')->isGranted($attributes, $object);
}

@ -1,13 +0,0 @@
<?php
namespace Chamilo\CoreBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Symfony\Component\HttpFoundation\Response;
use Sonata\AdminBundle\Controller\CRUDController as Controller;
class CourseAdminController extends Controller
{
}

@ -0,0 +1,67 @@
<?php
/* For licensing terms, see /license.txt */
namespace Chamilo\CoreBundle\Controller;
use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Form\Type\CourseType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Symfony\Component\HttpFoundation\Response;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
/**
* Class CourseController
* @package Chamilo\CoreBundle\Controller
*/
class CourseController extends Controller
{
/**
* @Route("/add")
* @Security("has_role('ROLE_TEACHER')")
* @Template
* @return Response
*/
public function addAction(Request $request)
{
$form = $this->createForm(new CourseType());
$form->handleRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$course = $form->getData();
$em->persist($course);
$em->flush();
$this->addFlash('sonata_flash_success', 'Course created');
return $this->redirectToRoute(
'chamilo_core_course_welcome',
array('course' => $course)
);
}
return array(
'form' => $form->createView(),
);
}
/**
* @Route("/welcome/{course}")
* @ParamConverter(
* "course",
* class="ChamiloCoreBundle:Course",
* options={"repository_method" = "findOneByCode"}
* )
* @Template
*/
public function welcomeAction(Course $course)
{
return array('course' => $course);
}
}

@ -1,13 +0,0 @@
<?php
namespace Chamilo\CoreBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Symfony\Component\HttpFoundation\Response;
use Sonata\AdminBundle\Controller\CRUDController as Controller;
class CourseRelUserAdminController extends Controller
{
}

@ -4,6 +4,7 @@
namespace Chamilo\CoreBundle\Entity;
use Chamilo\CourseBundle\Entity\CTool;
use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use Gedmo\Mapping\Annotation as Gedmo;
@ -31,7 +32,7 @@ class Course
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Column(name="id", type="integer", nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
@ -42,162 +43,165 @@ class Course
*
* @Assert\NotBlank()
*
* @ORM\Column(name="title", type="string", length=250, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="title", type="string", length=250, nullable=true, unique=false)
*/
private $title;
/**
* @var string
* @Assert\NotBlank()
* @Gedmo\Slug(fields={"title"})
* @ORM\Column(name="code", type="string", length=40, precision=0, scale=0, nullable=false, unique=true)
* @Gedmo\Slug(
* fields={"title"},
* updatable = false,
* unique = true
* )
* @ORM\Column(name="code", type="string", length=40, nullable=false, unique=true)
*/
private $code;
/**
* @var string
*
* @ORM\Column(name="directory", type="string", length=40, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="directory", type="string", length=40, nullable=true, unique=false)
*/
private $directory;
/**
* @var string
*
* @ORM\Column(name="course_language", type="string", length=20, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="course_language", type="string", length=20, nullable=true, unique=false)
*/
private $courseLanguage;
/**
* @var string
*
* @ORM\Column(name="description", type="text", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="description", type="text", nullable=true, unique=false)
*/
private $description;
/**
* @var string
*
* @ORM\Column(name="category_code", type="string", length=40, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="category_code", type="string", length=40, nullable=true, unique=false)
*/
private $categoryCode;
/**
* @var boolean
* @Assert\NotBlank()
* @ORM\Column(name="visibility", type="integer", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="visibility", type="integer", nullable=true, unique=false)
*/
private $visibility;
/**
* @var integer
*
* @ORM\Column(name="show_score", type="integer", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="show_score", type="integer", nullable=true, unique=false)
*/
private $showScore;
/**
* @var string
*
* @ORM\Column(name="tutor_name", type="string", length=200, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="tutor_name", type="string", length=200, nullable=true, unique=false)
*/
private $tutorName;
/**
* @var string
*
* @ORM\Column(name="visual_code", type="string", length=40, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="visual_code", type="string", length=40, nullable=true, unique=false)
*/
private $visualCode;
/**
* @var string
*
* @ORM\Column(name="department_name", type="string", length=30, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="department_name", type="string", length=30, nullable=true, unique=false)
*/
private $departmentName;
/**
* @var string
* @Assert\Url()
* @ORM\Column(name="department_url", type="string", length=180, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="department_url", type="string", length=180, nullable=true, unique=false)
*/
private $departmentUrl;
/**
* @var integer
*
* @ORM\Column(name="disk_quota", type="bigint", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="disk_quota", type="bigint", nullable=true, unique=false)
*/
private $diskQuota;
/**
* @var \DateTime
*
* @ORM\Column(name="last_visit", type="datetime", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="last_visit", type="datetime", nullable=true, unique=false)
*/
private $lastVisit;
/**
* @var \DateTime
*
* @ORM\Column(name="last_edit", type="datetime", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="last_edit", type="datetime", nullable=true, unique=false)
*/
private $lastEdit;
/**
* @var \DateTime
*
* @ORM\Column(name="creation_date", type="datetime", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="creation_date", type="datetime", nullable=true, unique=false)
*/
private $creationDate;
/**
* @var \DateTime
*
* @ORM\Column(name="expiration_date", type="datetime", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="expiration_date", type="datetime", nullable=true, unique=false)
*/
private $expirationDate;
/**
* @var string
*
* @ORM\Column(name="target_course_code", type="string", length=40, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="target_course_code", type="string", length=40, nullable=true, unique=false)
*/
private $targetCourseCode;
/**
* @var boolean
*
* @ORM\Column(name="subscribe", type="boolean", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="subscribe", type="boolean", nullable=true, unique=false)
*/
private $subscribe;
/**
* @var boolean
*
* @ORM\Column(name="unsubscribe", type="boolean", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="unsubscribe", type="boolean", nullable=true, unique=false)
*/
private $unsubscribe;
/**
* @var string
*
* @ORM\Column(name="registration_code", type="string", length=255, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="registration_code", type="string", length=255, nullable=true, unique=false)
*/
private $registrationCode;
/**
* @var string
*
* @ORM\Column(name="legal", type="text", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="legal", type="text", nullable=true, unique=false)
*/
private $legal;
/**
* @var integer
*
* @ORM\Column(name="activate_legal", type="integer", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="activate_legal", type="integer", nullable=true, unique=false)
*/
private $activateLegal;
@ -211,7 +215,7 @@ class Course
/**
* @var integer
*
* @ORM\Column(name="course_type_id", type="integer", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="course_type_id", type="integer", nullable=true, unique=false)
*/
private $courseTypeId;
@ -221,7 +225,7 @@ class Course
* addUsers methods need to be added.
* @ORM\OneToMany(targetEntity="CourseRelUser", mappedBy="course", cascade={"persist"}, orphanRemoval=true)
**/
private $users;
protected $users;
/**
* @ORM\OneToMany(targetEntity="AccessUrlRelCourse", mappedBy="course", cascade={"persist"}, orphanRemoval=true)
@ -269,6 +273,7 @@ class Course
public function __construct()
{
$this->creationDate = new \DateTime();
$this->users = new ArrayCollection();
}
/**
@ -368,9 +373,9 @@ class Course
}
/**
* @param $users
* @param CourseRelUser $users
*/
public function setUsers($users)
public function setUsers(CourseRelUser $users)
{
$this->users = new ArrayCollection();
@ -385,7 +390,33 @@ class Course
public function addUsers(CourseRelUser $user)
{
$user->setCourse($this);
$this->users[] = $user;
if (!$this->hasUser($user)) {
$this->users[] = $user;
}
}
/**
* @param CourseRelUser $subscription
* @return bool
*/
public function hasUser(CourseRelUser $subscription)
{
if ($this->getUsers()->count()) {
$criteria = Criteria::create()->where(
Criteria::expr()->eq("user", $subscription->getUser())
)->andWhere(
Criteria::expr()->eq("status", $subscription->getStatus())
)->andWhere(
Criteria::expr()->eq("relationType", $subscription->getRelationType())
);
$relation = $this->getUsers()->matching($criteria);
return $relation->count() > 0;
}
return false;
}
/**
@ -404,8 +435,11 @@ class Course
/**
* @param User $user
* @param string $relationType
* @param string $role
* @param string $status
*/
public function addUser(User $user, $relationType, $role, $status)
private function addUser(User $user, $relationType, $role, $status)
{
$courseRelUser = new CourseRelUser();
$courseRelUser->setCourse($this);
@ -421,7 +455,7 @@ class Course
*/
public function addTeacher(User $user)
{
$this->addUser($user, User::COURSE_MANAGER, "ROLE_TEACHER", "");
$this->addUser($user, 0, "Trainer", User::COURSE_MANAGER);
}
/**
@ -429,7 +463,7 @@ class Course
*/
public function addStudent(User $user)
{
$this->addUser($user, User::STUDENT, "ROLE_STUDENT", "");
$this->addUser($user, 0, "", User::STUDENT);
}
/**

@ -9,7 +9,13 @@ use Doctrine\ORM\Mapping as ORM;
/**
* CourseRelUser
*
* @ORM\Table(name="course_rel_user", indexes={@ORM\Index(name="course_rel_user_user_id", columns={"id", "user_id"}), @ORM\Index(name="course_rel_user_c_id_user_id", columns={"id", "c_id", "user_id"})})
* @ORM\Table(
* name="course_rel_user",
* indexes={
* @ORM\Index(name="course_rel_user_user_id", columns={"id", "user_id"}),
* @ORM\Index(name="course_rel_user_c_id_user_id", columns={"id", "c_id", "user_id"})
* }
* )
* @ORM\Entity
* @ORM\Table(name="course_rel_user")
*/
@ -91,14 +97,20 @@ class CourseRelUser
*/
protected $group;
public function __toString()
/**
* Constructor
*/
public function __construct()
{
return strval($this->getCourse()->getCode());
$this->userCourseCat = 0;
}
public function __construct()
/**
* @return string
*/
public function __toString()
{
$this->userCourseCat = 0;
return strval($this->getCourse()->getCode());
}
/**

@ -37,7 +37,7 @@ class Session
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Column(name="id", type="integer", nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
@ -46,91 +46,91 @@ class Session
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=150, precision=0, scale=0, nullable=false, unique=false)
* @ORM\Column(name="name", type="string", length=150, nullable=false, unique=false)
*/
private $name;
/**
* @var integer
*
* @ORM\Column(name="nbr_courses", type="smallint", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="nbr_courses", type="smallint", nullable=true, unique=false)
*/
private $nbrCourses;
/**
* @var integer
*
* @ORM\Column(name="nbr_users", type="integer", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="nbr_users", type="integer", nullable=true, unique=false)
*/
private $nbrUsers;
/**
* @var integer
*
* @ORM\Column(name="nbr_classes", type="integer", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="nbr_classes", type="integer", nullable=true, unique=false)
*/
private $nbrClasses;
/**
* @var integer
*
* @ORM\Column(name="session_admin_id", type="integer", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="session_admin_id", type="integer", nullable=true, unique=false)
*/
private $sessionAdminId;
/**
* @var integer
*
* @ORM\Column(name="visibility", type="integer", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Column(name="visibility", type="integer", nullable=false, unique=false)
*/
private $visibility;
/**
* @var integer
*
* @ORM\Column(name="promotion_id", type="integer", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="promotion_id", type="integer", nullable=true, unique=false)
*/
private $promotionId;
/**
* @var \DateTime
*
* @ORM\Column(name="display_start_date", type="datetime", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Column(name="display_start_date", type="datetime", nullable=false, unique=false)
*/
private $displayStartDate;
/**
* @var \DateTime
*
* @ORM\Column(name="display_end_date", type="datetime", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Column(name="display_end_date", type="datetime", nullable=false, unique=false)
*/
private $displayEndDate;
/**
* @var \DateTime
*
* @ORM\Column(name="access_start_date", type="datetime", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Column(name="access_start_date", type="datetime", nullable=false, unique=false)
*/
private $accessStartDate;
/**
* @var \DateTime
*
* @ORM\Column(name="access_end_date", type="datetime", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Column(name="access_end_date", type="datetime", nullable=false, unique=false)
*/
private $accessEndDate;
/**
* @var \DateTime
*
* @ORM\Column(name="coach_access_start_date", type="datetime", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Column(name="coach_access_start_date", type="datetime", nullable=false, unique=false)
*/
private $coachAccessStartDate;
/**
* @var \DateTime
*
* @ORM\Column(name="coach_access_end_date", type="datetime", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Column(name="coach_access_end_date", type="datetime", nullable=false, unique=false)
*/
private $coachAccessEndDate;

@ -1,13 +1,17 @@
<?php
/* For licensing terms, see /license.txt */
namespace Chamilo\CoreBundle\Form;
namespace Chamilo\CoreBundle\Form\type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Chamilo\CoreBundle\Entity\Course;
/**
* Class CourseType
* @package Chamilo\CoreBundle\Form\type
*/
class CourseType extends AbstractType
{
/**
@ -17,15 +21,15 @@ class CourseType extends AbstractType
{
$builder
->add('title', 'text')
->add('code', 'text')
//->add('code', 'text')
->add('course_language', 'locale')
->add('visibility', 'choice',
array('choices' => Course::getStatusList())
)
->add('department_name', 'text')
->add('department_url', 'url')
->add('disk_quota', 'text')
->add('expiration_date', 'sonata_type_datetime_picker')
->add('department_name', 'text', array('required' => false))
->add('department_url', 'url', array('required' => false))
//->add('disk_quota', 'text')
->add('expiration_date', 'sonata_type_datetime_picker', array('required' => false))
/* ->add('general_coach', 'entity', array(
'class' => 'ChamiloUserBundle:User',

@ -6,6 +6,10 @@ namespace Chamilo\CoreBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
/**
* Class YesNoType
* @package Chamilo\CoreBundle\Form\Type
*/
class YesNoType extends AbstractType
{
/**

@ -60,7 +60,7 @@ class LoadPageData extends AbstractFixture implements
{
$site = $this->createSite();
$this->createGlobalPage($site);
error_log('sonata.page.route.page.generator');
$generator = $this->container->get('sonata.page.route.page.generator');
$output = new ConsoleOutput();
$generator->update($site, $output);

@ -8,6 +8,12 @@ user:
type: annotation
prefix: /user
course:
resource: "@ChamiloCoreBundle/Controller/CourseController.php"
type: annotation
prefix: /course
# Legacy routes
main:
path: /main/{name}

@ -6,7 +6,6 @@ parameters:
chamilo_core.entity.session: Chamilo\CoreBundle\Entity\Session
services:
chamilo_core.manager.course:
class: %chamilo_core.entity.manager.course_manager.class%
arguments: [%chamilo_core.entity.course%, @doctrine]
@ -58,7 +57,7 @@ services:
chamilo_core.html_editor:
class: Chamilo\CoreBundle\Component\Editor\CkEditor\CkEditor
arguments: [@translator, @router]
arguments: [@translator.default, @router]
# Listeners

@ -0,0 +1,3 @@
<form action="{{ url('chamilo_core_course_add') }}" method="post" {{ form_enctype(form) }}>
{{ form_widget(form) }}
</form>

@ -0,0 +1,49 @@
{{ "You just created the training area <b>%s</b>"| trans | format(course.title) }}
<hr />
{{ 'Suggested steps to take next' | trans }}
<div id="course_thing_to_do" class="row">
<div class="span3">
<div class="thumbnail">
<img src="info.png">
<div class="caption">
<a href="" class="btn">
Add course description
</a>
</div>
</div>
</div>
<div class="span3">
<div class="thumbnail">
<img src="folder_document.png">
<div class="caption">
<a href="" class="btn">
Upload a document
</a>
</div>
</div>
</div>
<div class="span3">
<div class="thumbnail">
<img src="forum.png">
<div class="caption">
<a href="" class="btn">
Add a forum
</a>
</div>
</div>
</div>
<div class="span3">
<div class="thumbnail">
<img src="user.png">
<div class="caption">
<a href="" class="btn">
Enroll users to course
</a>
</div>
</div>
</div>
</div>

@ -33,7 +33,7 @@ class CourseInfoController extends ToolBaseController
public function indexAction(Request $request)
{
$course = $this->getCourse();
// @todo use Form\Type\CourseType
$form = $this->createFormBuilder($course)
->add('title', 'text')
->add('description', 'ckeditor')
@ -53,6 +53,7 @@ class CourseInfoController extends ToolBaseController
$em->persist($course);
$em->flush();
}
return array(
'form' => $form->createView(),
);

@ -81,28 +81,28 @@ class User extends BaseUser implements ParticipantInterface, ThemeUser
/**
* @var string
*
* @ORM\Column(name="lastname", type="string", length=60, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="lastname", type="string", length=60, nullable=true, unique=false)
*/
//protected $lastname;
/**
* @var string
*
* @ORM\Column(name="firstname", type="string", length=60, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="firstname", type="string", length=60, nullable=true, unique=false)
*/
//protected $firstname;
/**
* @var string
*
* @ORM\Column(name="password", type="string", length=50, precision=0, scale=0, nullable=false, unique=false)
* @ORM\Column(name="password", type="string", length=50, nullable=false, unique=false)
*/
//protected $password;
/**
* @var string
*
* @ORM\Column(name="auth_source", type="string", length=50, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="auth_source", type="string", length=50, nullable=true, unique=false)
*/
private $authSource;
@ -116,14 +116,14 @@ class User extends BaseUser implements ParticipantInterface, ThemeUser
/**
* @var string
*
* @ORM\Column(name="official_code", type="string", length=40, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="official_code", type="string", length=40, nullable=true, unique=false)
*/
private $officialCode;
/**
* @var string
*
* @ORM\Column(name="phone", type="string", length=30, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="phone", type="string", length=30, nullable=true, unique=false)
*/
//protected $phone;
@ -138,7 +138,7 @@ class User extends BaseUser implements ParticipantInterface, ThemeUser
/**
* @var string
* @ORM\Column(name="picture_uri", type="string", length=250, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="picture_uri", type="string", length=250, nullable=true, unique=false)
*/
//private $pictureUri;
@ -151,112 +151,112 @@ class User extends BaseUser implements ParticipantInterface, ThemeUser
/**
* @var integer
*
* @ORM\Column(name="creator_id", type="integer", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="creator_id", type="integer", nullable=true, unique=false)
*/
private $creatorId;
/**
* @var string
*
* @ORM\Column(name="competences", type="text", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="competences", type="text", nullable=true, unique=false)
*/
private $competences;
/**
* @var string
*
* @ORM\Column(name="diplomas", type="text", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="diplomas", type="text", nullable=true, unique=false)
*/
private $diplomas;
/**
* @var string
*
* @ORM\Column(name="openarea", type="text", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="openarea", type="text", nullable=true, unique=false)
*/
private $openarea;
/**
* @var string
*
* @ORM\Column(name="teach", type="text", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="teach", type="text", nullable=true, unique=false)
*/
private $teach;
/**
* @var string
*
* @ORM\Column(name="productions", type="string", length=250, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="productions", type="string", length=250, nullable=true, unique=false)
*/
private $productions;
/**
* @var integer
*
* @ORM\Column(name="chatcall_user_id", type="integer", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="chatcall_user_id", type="integer", nullable=true, unique=false)
*/
private $chatcallUserId;
/**
* @var \DateTime
*
* @ORM\Column(name="chatcall_date", type="datetime", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="chatcall_date", type="datetime", nullable=true, unique=false)
*/
private $chatcallDate;
/**
* @var string
*
* @ORM\Column(name="chatcall_text", type="string", length=50, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="chatcall_text", type="string", length=50, nullable=true, unique=false)
*/
private $chatcallText;
/**
* @var string
*
* @ORM\Column(name="language", type="string", length=40, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="language", type="string", length=40, nullable=true, unique=false)
*/
private $language;
/**
* @var \DateTime
*
* @ORM\Column(name="registration_date", type="datetime", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Column(name="registration_date", type="datetime", nullable=false, unique=false)
*/
private $registrationDate;
/**
* @var \DateTime
*
* @ORM\Column(name="expiration_date", type="datetime", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="expiration_date", type="datetime", nullable=true, unique=false)
*/
private $expirationDate;
/**
* @var boolean
*
* @ORM\Column(name="active", type="boolean", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Column(name="active", type="boolean", nullable=false, unique=false)
*/
private $active;
/**
* @var string
*
* @ORM\Column(name="openid", type="string", length=255, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="openid", type="string", length=255, nullable=true, unique=false)
*/
private $openid;
/**
* @var string
*
* @ORM\Column(name="theme", type="string", length=255, precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="theme", type="string", length=255, nullable=true, unique=false)
*/
private $theme;
/**
* @var integer
*
* @ORM\Column(name="hr_dept_id", type="smallint", precision=0, scale=0, nullable=true, unique=false)
* @ORM\Column(name="hr_dept_id", type="smallint", nullable=true, unique=false)
*/
private $hrDeptId;

Loading…
Cancel
Save