Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

sorting-Flag in ParentView wird ignoriert. #3090

Closed
issue-bot opened this Issue Nov 29, 2011 · 22 comments

Comments

Projects
None yet
5 participants
Collaborator

issue-bot commented Nov 29, 2011

Ich habe ein ParentView für tl_member erstellt, welches Transaktionen nach Datum absteigend sortiert und nach Jahr gruppiert darstellen soll.
Gruppierung funktioniert mit Sortierflag 10 (und 9) wunderbar, aber Flag 10 wird trotzdem aufsteigend sortiert.

        'sorting' => array(
            'mode'          => 4,
            'flag'          => 10,
            'fields'        => array('tstamp'),
            'headerFields'  => array('username', 'firstname', 'lastname'),
            'panelLayout'   => 'search',
            'child_record_callback' => array('PointsDCA', 'generateTransactionListRecord'),
        ),

Ändere ich das Sortierfeld in folgendes:

        'sorting' => array(
            'mode'          => 4,
            'flag'          => 10,
            'fields'        => array('tstamp DESC'),
            'headerFields'  => array('username', 'firstname', 'lastname'),
            'panelLayout'   => 'search',
            'child_record_callback' => array('PitPointsDCA', 'generateTransactionListRecord'),
        ),

dann sortiert er zwar richtig herum, aber zerpflückt das Grouping (jeder tstamp bekommt eigenen Header, der gleich dem tstamp ist)

Ich hab das mal als Feature gepostet, da ich es als "fehlendes" Feature ansehe (zumindest die obere Variante).

--- Originally created by backbone on May 18th, 2011, at 04:56pm (ID 3090)

Member

aschempp commented Nov 29, 2011

Das Grouping kannst du mit "disableGrouping" ausschalten (siehe DCA-Doku).

--- Originally created on May 18th, 2011, at 06:18pm

Collaborator

issue-bot commented Nov 29, 2011

Das ist mir schon klar, aber ich will das Grouping haben.
Soll so aussehen:

2011
- transaktion 3/2011
- transaktion 2/2011
- transaktion 1/2011
2010
- transaktion 2/2010
- transaktion 1/2010

Also gruppiert nach Jahren und absteigend sortiert. Also entsprechend der DCA-Referenz wäre das Sortierflag 10
Allerdings sind die Flags 9 und 10 vom Ergebnis das gleiche: Richtig gruppiert, aber - im Hinblick auf Flag 10 falsch - sortiert und zwar aufsteigend.

--- Originally created by backbone on May 18th, 2011, at 09:36pm

Owner

leofeyer commented Nov 29, 2011

Wie kann ich das im Core reproduzieren?

--- Originally created on August 25th, 2011, at 06:45pm

Collaborator

issue-bot commented Nov 29, 2011

Versuch die News mit Sortierflag 10, sollte aufsteigend und nicht absteigend sortiert sein, was laut Doku falsch ist.

--- Originally created by backbone on August 26th, 2011, at 01:25am

Member

aschempp commented Nov 29, 2011

Ist mir auch schon aufgefallen. Kann es sein dass es funktioniert wenn du den Flag auf das entsprechende Feld setzt (statt in der sorting)?

--- Originally created on August 26th, 2011, at 09:59am

Collaborator

issue-bot commented Nov 29, 2011

Hallo auch von mir.

Um mich mal einzuklinken: Ich habe das selbe Problem mit dem "parent view". Die Sortierungen desc werde komplett ignoriert. Bei allen Flags.

Es hilft auch nicht, den Flag auf das Feld zu setzen (sowohl nur bei dem Feld, als auch das Flag in beiden Bereichen).

Gibt es eine Variante, das Sortieren anders zu beeinflussen?

Lg

--- Originally created by CulexCoding on September 14th, 2011, at 02:18pm

Member

aschempp commented Nov 29, 2011

@leo: pending?

--- Originally created on September 14th, 2011, at 06:50pm

Owner

leofeyer commented Nov 29, 2011

"Pending" und "Incomplete" ist dasselbe (nur indiziert "Incomplete" zusätzlich, dass nicht alle Informationen mitgeliefert wurden).

--- Originally created on September 14th, 2011, at 07:18pm

Member

aschempp commented Nov 29, 2011

Ich habe das nun nachvollziehen können, und aus meiner Sicht ist es kein (gravierender) Fehler. Die Sortierung im Mode 4 wird in der Session (durch das Sortierungs-Dropdown) gespeichert. Wenn du also im DCA den Sorting-Modus änderst, musst du deine Session aktualisieren (oranger Button), und dann stimmt es auch.

--- Originally created on September 15th, 2011, at 08:07pm

Collaborator

issue-bot commented Nov 29, 2011

Funktioniert leider dennoch nicht. Ich änder die Einstellung nicht. Selbst nach erneutem Einloggen (wobei dann die Session mit Sicherheit neu ist, oder?) ist die Sortierung nach wie vor unverändert. Ich habe folgende Einstellungen beim Sorting:

'mode' => 4, 'flag' => 8, 'fields' => array('date'), // auch mit tstamp versucht 'disableGrouping' => false, // auch ohne diesen Wert versucht 'headerFields' => array('name', 'id'), 'panelLayout' => 'search,limit', // auch mit dem sort layout versucht 'child_record_callback' => array('tl_culex_guestbook_entries', 'renderEntryField')

--- Originally created by CulexCoding on September 15th, 2011, at 09:36pm

Member

aschempp commented Nov 29, 2011

Nein die Sortierung/Session bleibt zwischen den Logins erhalten. Klick mal auf den Refresh-Button, dann siehst du es ;-)

--- Originally created on September 16th, 2011, at 07:32am

Collaborator

issue-bot commented Nov 29, 2011

Ja hatte ich auch probiert. Funktioniert dennoch nicht.

--- Originally created by CulexCoding on September 16th, 2011, at 12:18pm

Member

aschempp commented Nov 29, 2011

Ich glaube ich hatte noch was vergessen. Bei den News steht standardmässig "date DESC" in den Sortierkonfiguration. Das DESC solltest du da womöglich entfernen, damit es geht.

--- Originally created on September 16th, 2011, at 01:00pm

Collaborator

issue-bot commented Nov 29, 2011

Okay das war etwas verwirrend.

Es funktioniert jetzt mit folgenden Einstellungen:
sorting: mode = 4, kein flag setzen, fields aber auf 'date DESC',
dann beim "fields"-Array den Flag bei "date" setzen.

Ich hatte mir das zwar immer im News-Modul angeschaut, allerdings hatte nicht nicht genau die Konstellation versucht.

Danke für den letzten Hinweis. Unabhängig von der jetzigen Lösung ist das doch dennoch ein Bug oder?

--- Originally created by CulexCoding on September 16th, 2011, at 02:12pm

Owner

leofeyer commented Nov 29, 2011

Nein, das Verhalten ist korrekt. Die Standardsortierung (noch bevor überhaupt irgendetwas in der Session geschrieben wurde) legst Du mittels 'date DESC' fest. Sobald Du dann nach einem Feld sortieren lässt, nimmt Contao immer das Flag aus der Feldkonfiguration und nicht das aus dem Sorting-Header.

--- Originally created on November 1st, 2011, at 02:06pm

Collaborator

issue-bot commented Nov 29, 2011

Ok, das ursprüngliche Ticket hatte aber nix mit der OT Diskussion hier zu tun!

Fakt ist, das es nicht möglich ist, eine Standardsortierung nach tstamp absteigend gruppiert nach Jahren (flag 10) umzusetzen.

--- Originally created by backbone on November 1st, 2011, at 02:35pm

psren commented Nov 29, 2011

Habe das selbe Problem.
Der gelde reload-Pfeil bringt auch nichts, da es sich um die Grundsortierung handelt.
Bei mir kommt das so zu Stande:

'sorting' => array
        (
            'mode'                    => 4,
            'flag'                    => 11,
            'fields'                  => array('createdOn'),
            'headerFields'            => array('title','deadline'),
            'child_record_callback'   => array('tl_project_task', 'listTasks'),
            'panelLayout'             => 'filter,limit;search',
        ),

Egal welche flag ich eingebe. es ändert sich nichts.

--- Originally created on November 17th, 2011, at 05:54pm

Owner

leofeyer commented Nov 29, 2011

--- Originally closed on November 1st, 2011, at 02:06pm

@leofeyer leofeyer closed this Nov 29, 2011

Wie wurde das Problem gelöst? In der aktuellen stable Version 2.11.2 hat "flag" keinen Einfluss auf die Sortierung in einer ParentView. (mode 4)
Siehe dazu DC_Table Zeile 3548!

Hier gehört zumindest folgendes danach hin:

if (($GLOBALS['TL_DCA'][$this->strTable]['list']['sorting']['flag'] % 2) == 0){
   $query .= " DESC";
}
Member

aschempp commented Apr 24, 2012

@PhilWaldmann Die Auswahl wird in deiner Benutzersession gespeichert. Du musst also explizit die Sortierung umstellen und zurückstellen! Ausserdem ggf. deine Benutzersession löschen.

Das kann nichts mit der session zu tun haben, wenn man sich die Funktion parentView genau anschaut! (Zeile 3515 - 3549)

$orderBy = $GLOBALS['TL_DCA'][$this->strTable]['list']['sorting']['fields'];
....
if (is_array($orderBy) && !empty($orderBy)){
   $query .= " ORDER BY " . implode(', ', $orderBy);
}
Owner

leofeyer commented Apr 30, 2012

Ich habe es eben noch mal getestet und kann keinen Fehler feststellen.

  1. Wie das Feld gruppiert wird, bestimmt das Flag beim Feld (['fields']['date']['flag']).
  2. Ob die Datensätze anfänglich auf- oder absteigend sortiert werden, bestimmt nur der Zusatz " DESC".

Das Flag in ['list']['sorting']['mode'] hat im Darstellungsmodus 4 keine Funktion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment