create a first set of export framework

- create interfaces
- create an export manager
- add a compiler pass to gather services tagged for export
This commit is contained in:
2016-01-02 16:44:30 +01:00
parent 876a656bd2
commit b40b85527a
16 changed files with 1070 additions and 16 deletions

View File

@@ -13,6 +13,10 @@ chill_main_admin_scope:
chill_main_admin:
resource: "@ChillMainBundle/Resources/config/routing/center.yml"
prefix: "{_locale}/admin/center"
chill_main_exports:
resource: "@ChillMainBundle/Resources/config/routing/exports.yml"
prefix: "{_locale}/exports"
root:
path: /
@@ -35,15 +39,6 @@ chill_main_homepage:
label: Homepage
icons: [home]
chill_main_export_index:
path: /{_locale}/export
defaults: { _controller: ChillMainBundle:Export:index }
options:
menus:
section:
order: 20
label: Export Menu
icons: [upload]
chill_main_admin_central:
path: /{_locale}/admin

View File

@@ -0,0 +1,18 @@
chill_main_export_index:
path: /
defaults: { _controller: ChillMainBundle:Export:index }
options:
menus:
section:
order: 20
label: Export Menu
icons: [upload]
chill_main_export_new:
path: /new/{alias}
defaults: { _controller: ChillMainBundle:Export:new }
chill_main_export_generate:
path: /generate/{alias}
defaults: { _controller: ChillMainBundle:Export:generate }
methods: [GET]

View File

@@ -148,3 +148,16 @@ services:
- "@chill.main.helper.translatable_string"
tags:
- { name: form.type }
chill.main.export_manager:
class: Chill\MainBundle\Export\ExportManager
arguments:
- "@logger"
- "@doctrine.orm.entity_manager"
chill.main.form.type.export:
class: Chill\MainBundle\Form\Type\Export\ExportType
arguments:
- "@chill.main.export_manager"
tags:
- { name: form.type }

View File

@@ -18,6 +18,8 @@
{% extends "ChillMainBundle::layoutWithVerticalMenu.html.twig" %}
{% block title %}{{ 'Exports list'|trans }}{% endblock %}
{% block vertical_menu_content %}
{{ chill_menu('export', {
'layout': 'ChillMainBundle::Menu/export.html.twig',
@@ -25,7 +27,20 @@
{% endblock %}
{% block layout_wvm_content %}
{% block export_content %}<!-- block personcontent empty -->
Welcome to the Export section !
{% block export_content %}
<h1>{{ 'Exports list'|trans }}</h1>
{% for export_alias,export in exports %}
<div class="export">
<h2>{{ export.title|trans }}</h2>
<p>{{ export.description|trans }}</p>
<p>
<a class="sc-button bt-action" href="{{ path('chill_main_export_new', { 'alias': export_alias } ) }}">
{{ 'Create an export'|trans }}
</a>
</p>
</div>
{% endfor %}
{% endblock %}
{% endblock %}

View File

@@ -0,0 +1,51 @@
{#
* Copyright (C) 2014-2015, Champs Libres Cooperative SCRLFS,
<info@champs-libres.coop> / <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "ChillMainBundle::layoutWithVerticalMenu.html.twig" %}
{% block title %}{{ export.title|trans }}{% endblock %}
{% block layout_wvm_content %}
<h1>{{ export.title|trans }}</h1>
<p>{{ export.description|trans }}</p>
{{ form_start(form) }}
<div>
<h2>{{ 'Filters'| trans }}</h2>
{% for filter_form in form.children.filters %}
{{ form_label(filter_form) }}
{{ form_row(filter_form.enabled) }}
{{ form_widget(filter_form.form) }}
{% endfor %}
</div>
<div>
<h2>{{ 'Aggregators'| trans }}</h2>
{% for aggregator_form in form.children.aggregators %}
{{ form_label(aggregator_form) }}
{{ form_row(aggregator_form.order) }}
{{ form_widget(aggregator_form.form) }}
{% endfor %}
</div>
<p>{{ form_widget(form.submit, { 'attr' : { 'class' : 'sc-button btn-action' } } ) }}</p>
{{ form_end(form) }}
{% endblock layout_wvm_content %}