Views+Date: Группировка по произвольному формату даты (месяц год)

Аватар пользователя popovtv popovtv 16 декабря 2011 в 15:42

Подскажите пожалуйста,

Арсенал:
Drupal 7.10, Date 7.x-2.0-alpha5, Views 7.x-3.0-rc3.
Свой тип данных event, дата начала, дата конца, чекбокс на весь день.

Задача очень простая:
Вывести события с группировкой по форме "Месяц Год"

Проблема:

1. Делаю свой формат даты Month Year = "F Y" и добавляю дополнительный Field для Views. Первое, что наталкивает на сомнения, это когда выбираешь формат отображения поля во Views, ставишь Formatter: "Дата и время", Choose how users view dates and times: "Month Year (16, Декабрь 2011 - 13:26)". Формат есть, но он категорически не соответствует моему шаблону (добавилось число и время). В качестве значения выбираем только дату начала события.

Формат дат в порядке:

А вот что мы видим во Views:

2. Ок, соглашаюсь. В списке событий отображается все правильно "Май 2011" "Декабрь 2011", НО не группирует - у каждой записи свой заголовок "Май 2011".

3. Если двум и более событиям поставить абсолютно одинаковые даты - они группируются. Значит проблема в правильном выборе значения поля из базы. Но больше нет других полей, где бы это можно было поправить.

На всякий случай запрос базы такой:

SELECT node.nid AS nid, node.title AS node_title, field_data_field_date.field_date_value AS field_data_field_date_field_date_value, 'node' AS field_data_field_date_node_entity_type, 'node' AS field_data_field_image_node_entity_type, 'node' AS field_data_field_place_node_entity_type, 'node' AS field_data_body_node_entity_type
FROM
{node} node
LEFT JOIN {field_data_field_date} field_data_field_date ON node.nid = field_data_field_date.entity_id AND (field_data_field_date.entity_type = 'node' AND field_data_field_date.deleted = '0')
WHERE (( (node.status = '1') AND (node.type IN  ('event')) ))
ORDER BY field_data_field_date_field_date_value ASC
LIMIT 25 OFFSET 0
ВложениеРазмер
Иконка изображения 1.png7.43 КБ
Иконка изображения 2.png13.22 КБ
Иконка изображения 3.png26.22 КБ

Комментарии

Аватар пользователя q2_faith q2_faith 16 декабря 2011 в 17:57

поле с датой скрываете, в настройках отображения делаете группировку по этому полю

Аватар пользователя popovtv popovtv 16 декабря 2011 в 20:48

q2_faith wrote:
поле с датой скрываете, в настройках отображения делаете группировку по этому полю

да, разумеется, у меня 2 поля с датой во Views: одно полноформатное как на картинке 3.png, а второе скрытое - для группировки.
На всех моих предыдущих проектах на D6 это не вызывало проблем и все работает по сей день - а тут вот такая незадача на D7.

Аватар пользователя popovtv popovtv 17 декабря 2011 в 1:35

Нашел вариант решения:

Если откатить модуль date с -alpha5 до -alpha4 - тогда Views начинает предлагать варианты даты именно в тех форматах, шаблоны которых я задал до того, а не выдумывать их сам. При этом группировка не работает все равно.

Если откатить модуль date с -alpha4 до -alpha3 - тогда начинает работать группировка. Но пропадает чекбокс на весь день. Ну это можно пережить.

Вывод таков, что альфа есть альфа. Напишу issue в модуль.

Аватар пользователя q2_faith q2_faith 17 декабря 2011 в 1:55

"popovtv" wrote:
Вывод таков, что альфа есть альфа. Напишу issue в модуль.

ну еще дев версию попробуйте

Аватар пользователя shevgeny shevgeny 14 мая 2017 в 18:05
1

Если у кого-то по-прежнему такая проблема, нужно отметить галочкой "Удалить теги из обработанного вывода" в настройках группировке. Мне помогло Smile