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("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');
if (!$table->hasColumn('duration')) {
$this->addSql("ALTER TABLE session_rel_user ADD duration INT DEFAULT NULL");

@ -83,8 +83,14 @@ sonata_admin:
items:
- sonata.page.admin.page
- 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_question
sonata.admin.group.administration:
label: sonata_administration

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

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

@ -45,7 +45,8 @@ class QuestionAdmin extends Admin
->add('_action', 'actions',
array(
'actions' => array(
'show' => array(),
//'show' => array(),
'preview' => array('template' => 'ChamiloFaqBundle:Faq:preview_question_partial.html.twig'),
'edit' => array(),
'delete' => array()
)
@ -59,16 +60,17 @@ class QuestionAdmin extends Admin
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('headline', null, array('attr' => array('class' => 'span12')))
->add('body', null, array('required' => false, 'attr' => array('class' => 'span12')))
->add('headline')
->add('body', null, array('required' => true))
->add('category', null, array(
'expanded' => true,
'required' => true,
'attr' => array('class' => 'radio-list vertical')
))
->add('rank', null, array('required' => false, 'attr' => array('class' => 'span12')))
->add('slug', null, array('required' => false, 'attr' => array('class' => 'span12')))
->add('rank', null, array('required' => false))
->add('slug', null, array('required' => false))
->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>
<h2>Categories</h2>
<ul>
{% for category in categories %}
{% if selectedCategory.slug is defined and selectedCategory.slug == category.slug%}
<li class="active" >
<li class="active">
<strong>{{ category.headline|e }}</strong>
</li>
{% 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