Problema al visualizar en euskera la semana de fechas de calendario en intranet

141 views
Skip to first unread message

Iker Eraña

unread,
Apr 20, 2015, 11:50:42 AM4/20/15
to symfo...@googlegroups.com

Buenos días;

Soy novato en Symfony y tengo que hacer unas modificaciones para una intranet. El código ya está terminado pero no sé que más mirar y estoy bastante perdido.
La persona que desarrolló la intranet no está disponible. Esto es lo que escribió:

 "En esta pantalla, he probado de mil formas, pero no he podido lograr los formatos pedidos. Como se ha tocado bastante por el tema del idioma. Lo encabezados de las columnas, los conforma el plugin y no he encontrado forma de cambiarlo. El titulo, tiene este formato: D [de] MMMM [de] YYYY. Donde “D” es el rango “16-22” que no pude separarlo. Podemos jugar con el orden de dicho formato, pero no admite mucho más." 

No sé si el rango para D se define en algún lado 


Adjunto pantallazo.

En la plantilla para visualizar las reservar en agendaWeek lo coge  D "la semana 20-26" pero con las declinaciones (e)tik (e)ra no lo interpreta bien
Este es el formato que se pide: YYYY[(e)ko] MMMM D[(e)tik] D[(e)ra] 


{% extends "::base.html.twig" %}

{% block title %}{{ "intranet.reservas" | trans }}{% endblock %}

{% block body %}
    <div class="col-md-12" >
        <div class="page-header">
            {% if app.request.get('categoria') == 'salas' %}
            <h2 style="display: inline;">{{ 'reservas.rsala' | trans }}</h2>
            {% endif %}
            {% if app.request.get('categoria') == 'equipamientos' %}
            <h2 style="display: inline;">{{ 'reservas.requip' | trans }}</h2>
            {% endif %}
            {% if app.request.get('categoria') == 'mobiliario' %}
            <h2 style="display: inline;">{{ 'reservas.rmob' | trans }}</h2>
            {% endif %}
            <div class="btn-group pull-right">
                {% if app.request.get('categoria') == 'salas' %}
                <a class="btn btn-default" href="{{ path ('reserva_newview', {"categoria": "salas"}) }}">
                    {{ 'reservas.realizarreserva' | trans }}
                </a>
                {% endif %}
                {% if app.request.get('categoria') == 'equipamientos' %}
                <a class="btn btn-default" href="{{ path ('reserva_newview', {"categoria": "equipamientos"}) }}">
                    {{ 'reservas.editarreserva' | trans }}
                </a>
                {% endif %}
                {% if app.request.get('categoria') == 'mobiliario' %}
                <a class="btn btn-default" href="{{ path ('reserva_newview', {"categoria": "mobiliario"}) }}">
                    {{ 'reservas.editarreserva' | trans }}
                </a>
                {% endif %}
                {% if app.user.hasRol('ROLE_ADMINISTRATOR') %}
                <a class="btn btn-default" href="{{ path ('inventario_listar') }}">
                    <span class="glyphicon glyphicon-cog"></span>
                    {{ 'reservas.gestioninventario' | trans }}
                </a>
                {% endif %}
            </div>

            <form class="form-horizontal" action="{{ path ('reserva', {'categoria': app.request.get('categoria')}) }}" method="post">
            <div class="col-md-12">
                <br />
                <div class="col-sm-12 visible-sm"><br/></div>
                <div class="form form-horizontal">
                    <div class="col-md-12">

                    <div class="col-md-5">
                    <div class="form-group">
                    <div class="col-lg-3 ">
                        <label class="control-label">{{ 'reservas.elemtinventario' | trans }}: </label>
                    </div>
                    <div class="col-lg-7 ">
                    <select class="form-control" id="elemento" name="elemento">
                        <option {% if invSelected ==  'reservas.todos' | trans %} selected="selected" {% endif %}>
                            {{ 'reservas.todos' | trans }}
                        </option>
                        {% for item in inventarioItems %}
                            <option {% if invSelected == item.nombre %} selected="selected" {% endif %}>
                                {{ item.nombre }}
                            </option>
                        {% endfor %}
                    </select>
                    </div>
                    </div>
                    </div>

                </div>
            </div>
            {% include 'NewsBundle:Shared:flashbag.html.twig' %}
        </div>
        </form>
    </div>
    <div div class="col-md-12">
        <div id="calendar">

        </div>
    </div>
{#    {% include 'CalendarioBundle:Reserva:list.html.twig' %}#}
{% endblock %}

{% block css %}
    <link rel="stylesheet" href="{{ asset('bundles/altia/public/css/fullcalendar/fullcalendar.min.css') }}"/>
{% endblock %}

{% block javascripts %}
    <script type="text/javascript" src="{{ asset ('bundles/altia/public/js/fullcalendar/moment.min.js') }}"></script>
    <script type="text/javascript" src="{{ asset ('bundles/altia/public/js/fullcalendar/fullcalendar.js') }}"></script>
    <script type="text/javascript" src="{{ asset ('bundles/altia/public/js/fullcalendar/lang/eu.js') }}"></script>
    <script type="text/javascript" src="{{ asset ('bundles/altia/public/js/fullcalendar/lang/es.js') }}"></script>
    <script type="text/javascript">
      function CreateCalendar(view)
        {
            if (view === undefined) {
                view = 'month';
            }
            $("#calendar").fullCalendar({
                lang: '{{ app.request.locale | slice(0, 2) }}',
                defaultView: view,
                header: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'month,agendaWeek'
                },
columnFormat: {
month: 'dd',
agendaWeek: 'dd'
},
titleFormat: {
agendaWeek: "YYYY[(e)ko] MMMM DD[(e)ra]"
//agendaWeek: "YYYY[(e)ko] MMMM D[(e)tik] D[(e)ra]"
},
viewRender: function(view){
currentView = view.name;
},
                allDaySlot: false,
                eventLimit: true, // allow "more" link when too many events
                eventSources: [{
                    url: "{{ path("reservas_jsonget") }}",
                    type: "post",
                    data: { categoria: '{{ app.request.get('categoria') }}', elemento: $("#elemento").val() }
                }]
            });
        }
          

        function PopulateDropDown (items)
        {
            var dropdownList = '<option>{{ "reservas.todos" | trans  }}</option>';
            for (var i = 0; i < items.length; i++)
            {
                dropdownList += '<option>'+items[i].nombre+'</option>';
            }
            $('select#elemento option').remove();
            $('select#elemento').append(dropdownList);
        }

        $(function(){
            CreateCalendar();
            $('#elemento').on("change", function(){
                $('#calendar').fullCalendar('destroy');
                CreateCalendar(currentView);
            });
        });
    </script>
{% endblock %}


A ver si me podéis ayudar.

Gracias.

Un saludo.
pantallazo.odt

Alvaro Touzon

unread,
Apr 20, 2015, 11:53:03 AM4/20/15
to symfo...@googlegroups.com
En estos casos lo mejor es hacerte tu propio plugin de twig, ahi le pasas el date en bruto( Datetime) y lo parseas como quieras.
no es para nada complicado, pero debes saber activar el servicio en el bundle.


--
--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Google Groups.
Para publicar en este grupo, envía un email a symfo...@googlegroups.com
Para darte de baja, envía un email a symfony-es+...@googlegroups.com
El resto de opciones puedes encontrarlas en http://groups.google.com/group/symfony-es?hl=es

---
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a symfony-es+...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Álvaro, Arquitect Software

Javier Eguiluz

unread,
Apr 20, 2015, 11:57:07 AM4/20/15
to symfo...@googlegroups.com
Hola Iker,

El problema no parece realmente relacionado con Symfony/Twig sino con el código JavaScript del calendario que estáis utilizando. ¿Ese mismo calendario utilizado puramente como código JavaScript funciona bien al formatear el título?

Por otra parte, el código de la plantilla tiene algún error. Te comento especialmente uno relacionado con la seguridad:


{% if app.user.hasRol('ROLE_ADMINISTRATOR') %}
    <a class="btn btn-default" href="{{ path ('inventario_listar') }}">
        <span class="glyphicon glyphicon-cog"></span>
        {{ 'reservas.gestioninventario' | trans }}
    </a>
{% endif %}

El método "hasRol()" debería ser "hasRole()" y además, el código recomendado para comprobar la seguridad de los usuarios sería:

{% if is_granted('ROLE_ADMINISTRATOR') %}
    <a class="btn btn-default" href="{{ path ('inventario_listar') }}">
        <span class="glyphicon glyphicon-cog"></span>
        {{ 'reservas.gestioninventario' | trans }}
    </a>
{% endif %}


Como dices que estás empezando con Symfony, quizás te interese echar un vistazo a la aplicación oficial de pruebas de Symfony que hemos presentado hoy mismo: http://symfony.com/blog/introducing-the-symfony-demo-application  El código de esa aplicación está hecho tal y como se recomienda oficialmente programar las aplicaciones Symfony.

Un saludo,
Javier Eguiluz

Iker Eraña

unread,
Apr 21, 2015, 3:41:45 AM4/21/15
to symfo...@googlegroups.com
Buenos días;

Gracias por responderme. He probado en otro formato la fecha y funciona bien, lo que hace mal es cuando le pongo el formato YYYY[(e)ko] MMMM D[(e)tik] D[(e)ra] donde D es un rango de la semana en este caso (20-26) lo que no interpreta bien es las declinaciones que van en euskera 20(e)tik – 26(e)ra. También soy novato en PHP así que lo tengo todo, jejeje.

Tengo más modificaciones que hacer.
Estoy con un equipo con Windows 7 y no puedo instalar la aplicación demo. 


Gracias.

Un saludo.

Iker Eraña

unread,
Apr 24, 2015, 4:13:13 AM4/24/15
to symfo...@googlegroups.com
Buenos días Javier;

He estado haciendo pruebas y no sé que más hacer. Si alguien tiene alguna sugerencia, es bienvenida.

Gracias.

Un saludo

Iker Eraña

unread,
Apr 27, 2015, 6:43:24 AM4/27/15
to symfo...@googlegroups.com
Buenos días;

Cualquier sugerencia es bienvenida. No sé que más hacer

Saludos.
Reply all
Reply to author
Forward
0 new messages