Improve FAQ UI

ofaj
jmontoyaa 10 years ago
parent 2d2785100b
commit be9c9c127a
  1. 4
      app/Migrations/Schema/V111/Version111.php
  2. 8
      app/config/sonata/sonata_admin.yml
  3. 4
      src/Chamilo/CoreBundle/Menu/NavBuilder.php
  4. 10
      src/Chamilo/FaqBundle/Admin/CategoryAdmin.php
  5. 14
      src/Chamilo/FaqBundle/Admin/QuestionAdmin.php
  6. 6
      src/Chamilo/FaqBundle/Resources/views/Faq/index.html.twig
  7. 5
      src/Chamilo/FaqBundle/Resources/views/Faq/preview_category_partial.html.twig
  8. 5
      src/Chamilo/FaqBundle/Resources/views/Faq/preview_question_partial.html.twig

@ -48,6 +48,10 @@ class Version111 extends AbstractMigrationChamilo
$this->addSql("CREATE TABLE c_quiz_rel_category (iid BIGINT AUTO_INCREMENT NOT NULL, c_id INT NOT NULL, category_id INT NOT NULL, exercise_id INT NOT NULL, count_questions INT NOT NULL, PRIMARY KEY(iid))"); $this->addSql("CREATE TABLE c_quiz_rel_category (iid BIGINT AUTO_INCREMENT NOT NULL, c_id INT NOT NULL, category_id INT NOT NULL, exercise_id INT NOT NULL, count_questions INT NOT NULL, PRIMARY KEY(iid))");
$this->addSql("ALTER TABLE c_quiz ADD COLUMN question_selection_type INT"); $this->addSql("ALTER TABLE c_quiz ADD COLUMN question_selection_type INT");
$this->addSql("CREATE TABLE genj_faq_category (id INT AUTO_INCREMENT NOT NULL, headline VARCHAR(255) NOT NULL, body LONGTEXT DEFAULT NULL, rank INT NOT NULL, is_active TINYINT(1) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, slug VARCHAR(50) NOT NULL, INDEX is_active_idx (is_active), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;");
$this->addSql("CREATE TABLE genj_faq_question (id INT AUTO_INCREMENT NOT NULL, category_id INT DEFAULT NULL, headline VARCHAR(255) NOT NULL, body LONGTEXT DEFAULT NULL, rank INT NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, slug VARCHAR(50) NOT NULL, INDEX IDX_375D163F12469DE2 (category_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;");
$this->addSql("ALTER TABLE genj_faq_question ADD CONSTRAINT FK_375D163F12469DE2 FOREIGN KEY (category_id) REFERENCES genj_faq_category (id);");
$table = $schema->getTable('session_rel_user'); $table = $schema->getTable('session_rel_user');
if (!$table->hasColumn('duration')) { if (!$table->hasColumn('duration')) {
$this->addSql("ALTER TABLE session_rel_user ADD duration INT DEFAULT NULL"); $this->addSql("ALTER TABLE session_rel_user ADD duration INT DEFAULT NULL");

@ -83,8 +83,14 @@ sonata_admin:
items: items:
- sonata.page.admin.page - sonata.page.admin.page
- sonata.page.admin.site - sonata.page.admin.site
- sonata.admin.faq_question
sonata.admin.group.faq:
label: FAQ
label_catalogue: Faq
#icon: '<i class="fa fa-puzzle-piece"></i>'
items:
- sonata.admin.faq_category - sonata.admin.faq_category
- sonata.admin.faq_question
sonata.admin.group.administration: sonata.admin.group.administration:
label: sonata_administration label: sonata_administration

@ -65,7 +65,7 @@ class NavBuilder extends ContainerAware
if ($checker->isGranted('IS_AUTHENTICATED_FULLY')) { if ($checker->isGranted('IS_AUTHENTICATED_FULLY')) {
$menu->addChild( /*$menu->addChild(
$translator->trans('MyCourses'), $translator->trans('MyCourses'),
array('route' => 'userportal') array('route' => 'userportal')
); );
@ -117,7 +117,7 @@ class NavBuilder extends ContainerAware
'route' => 'administration', 'route' => 'administration',
) )
); );
} }*/
} }
return $menu; return $menu;

@ -40,10 +40,12 @@ class CategoryAdmin extends Admin
{ {
$listMapper $listMapper
->add('headline', null, array('identifier' => true)) ->add('headline', null, array('identifier' => true))
->add('rank')
->add('_action', 'actions', ->add('_action', 'actions',
array( array(
'actions' => array( 'actions' => array(
'show' => array(), //'show' => array(),
'preview' => array('template' => 'ChamiloFaqBundle:Faq:preview_category_partial.html.twig'),
'edit' => array(), 'edit' => array(),
'delete' => array() 'delete' => array()
) )
@ -58,9 +60,9 @@ class CategoryAdmin extends Admin
protected function configureFormFields(FormMapper $formMapper) protected function configureFormFields(FormMapper $formMapper)
{ {
$formMapper $formMapper
->add('headline', null, array('attr' => array('class' => 'span12'))) ->add('headline')
->add('body', null, array('required' => false, 'attr' => array('class' => 'span12'))) ->add('body', null, array('required' => false))
->add('rank', null, array('required' => false, 'attr' => array('class' => 'span12'))) ->add('rank', null, array('required' => false))
->add('slug') ->add('slug')
->add('isActive') ->add('isActive')
->end(); ->end();

@ -45,7 +45,8 @@ class QuestionAdmin extends Admin
->add('_action', 'actions', ->add('_action', 'actions',
array( array(
'actions' => array( 'actions' => array(
'show' => array(), //'show' => array(),
'preview' => array('template' => 'ChamiloFaqBundle:Faq:preview_question_partial.html.twig'),
'edit' => array(), 'edit' => array(),
'delete' => array() 'delete' => array()
) )
@ -59,16 +60,17 @@ class QuestionAdmin extends Admin
protected function configureFormFields(FormMapper $formMapper) protected function configureFormFields(FormMapper $formMapper)
{ {
$formMapper $formMapper
->add('headline', null, array('attr' => array('class' => 'span12'))) ->add('headline')
->add('body', null, array('required' => false, 'attr' => array('class' => 'span12'))) ->add('body', null, array('required' => true))
->add('category', null, array( ->add('category', null, array(
'expanded' => true, 'expanded' => true,
'required' => true, 'required' => true,
'attr' => array('class' => 'radio-list vertical') 'attr' => array('class' => 'radio-list vertical')
)) ))
->add('rank', null, array('required' => false, 'attr' => array('class' => 'span12'))) ->add('rank', null, array('required' => false))
->add('slug', null, array('required' => false, 'attr' => array('class' => 'span12'))) ->add('slug', null, array('required' => false))
->add('onlyAuthUsers') ->add('onlyAuthUsers')
->end(); ->end()
;
} }
} }

@ -1,13 +1,13 @@
{% extends 'SonataPageBundle::layout.html.twig' %} {% extends '@ChamiloCore/layout_cms.html.twig' %}
{% block page_content %} {% block sonata_page_container %}
<h1>FAQ</h1> <h1>FAQ</h1>
<h2>Categories</h2> <h2>Categories</h2>
<ul> <ul>
{% for category in categories %} {% for category in categories %}
{% if selectedCategory.slug is defined and selectedCategory.slug == category.slug%} {% if selectedCategory.slug is defined and selectedCategory.slug == category.slug%}
<li class="active" > <li class="active">
<strong>{{ category.headline|e }}</strong> <strong>{{ category.headline|e }}</strong>
</li> </li>
{% else %} {% else %}

@ -0,0 +1,5 @@
<a target = "_blank" href="{{ url('faq', {'categorySlug': object.slug}) }}" class="btn btn-sm btn-default" title="{{ 'Preview'|trans({}, 'SonataAdminBundle') }}">
<i class="fa fa-external-link"></i>
{{ 'Preview'|trans({}, 'SonataAdminBundle') }}
</a>

@ -0,0 +1,5 @@
<a target = "_blank" href="{{ url('faq', {'categorySlug': object.category.slug, 'questionSlug' : object.slug }) }}" class="btn btn-sm btn-default" title="{{ 'Preview'|trans({}, 'SonataAdminBundle') }}">
<i class="fa fa-external-link"></i>
{{ 'Preview'|trans({}, 'SonataAdminBundle') }}
</a>
Loading…
Cancel
Save