18
18
use App \Model \Settings \Settings ;
19
19
use App \Model \User \Commands \RegisterProgram ;
20
20
use App \Model \User \Commands \UnregisterProgram ;
21
+ use App \Model \User \Queries \UserRegisteredProgramAtQuery ;
21
22
use App \Model \User \Repositories \UserRepository ;
22
23
use App \Model \User \User ;
23
24
use App \Services \CommandBus ;
24
25
use App \Services \ISettingsService ;
26
+ use App \Services \QueryBus ;
27
+ use App \Utils \Helpers ;
25
28
use Doctrine \ORM \EntityManagerInterface ;
26
29
use Doctrine \ORM \QueryBuilder ;
27
30
use Nette \Application \AbortException ;
@@ -56,6 +59,8 @@ class ProgramAttendeesGridControl extends Control
56
59
57
60
private CommandBus $ commandBus ;
58
61
62
+ private QueryBus $ queryBus ;
63
+
59
64
private ISettingsService $ settingsService ;
60
65
61
66
private EntityManagerInterface $ em ;
@@ -66,13 +71,15 @@ public function __construct(
66
71
UserRepository $ userRepository ,
67
72
Session $ session ,
68
73
CommandBus $ commandBus ,
74
+ QueryBus $ queryBus ,
69
75
ISettingsService $ settingsService ,
70
76
EntityManagerInterface $ em
71
77
) {
72
78
$ this ->translator = $ translator ;
73
79
$ this ->programRepository = $ programRepository ;
74
80
$ this ->userRepository = $ userRepository ;
75
81
$ this ->commandBus = $ commandBus ;
82
+ $ this ->queryBus = $ queryBus ;
76
83
$ this ->settingsService = $ settingsService ;
77
84
$ this ->em = $ em ;
78
85
@@ -125,7 +132,7 @@ public function createComponentProgramAttendeesGrid(string $name): void
125
132
$ grid ->addColumnText ('displayName ' , 'admin.program.blocks.attendees.column.name ' )
126
133
->setFilterText ();
127
134
128
- $ grid ->addColumnText ('attends ' , 'admin.program.blocks.attendees.column.attends ' , ' pa ' )
135
+ $ grid ->addColumnText ('attends ' , 'admin.program.blocks.attendees.column.attends ' )
129
136
->setRenderer (function (User $ user ) {
130
137
return $ user ->isAttendee ($ this ->program )
131
138
? $ this ->translator ->translate ('admin.common.yes ' )
@@ -143,7 +150,7 @@ public function createComponentProgramAttendeesGrid(string $name): void
143
150
})
144
151
->setTranslateOptions ();
145
152
146
- $ grid ->addColumnText ('alternates ' , 'admin.program.blocks.attendees.column.alternates ' , ' pa ' )
153
+ $ grid ->addColumnText ('alternates ' , 'admin.program.blocks.attendees.column.alternates ' )
147
154
->setRenderer (function (User $ user ) {
148
155
return $ user ->isAlternate ($ this ->program )
149
156
? $ this ->translator ->translate ('admin.common.yes ' )
@@ -161,6 +168,13 @@ public function createComponentProgramAttendeesGrid(string $name): void
161
168
})
162
169
->setTranslateOptions ();
163
170
171
+ $ grid ->addColumnDateTime ('registeredAt ' , 'admin.program.blocks.attendees.column.registered_at ' )
172
+ ->setRenderer (function (User $ user ) {
173
+ $ registeredAt = $ this ->queryBus ->handle (new UserRegisteredProgramAtQuery ($ user , $ this ->program ));
174
+
175
+ return $ registeredAt === null ? null : $ registeredAt ->format (Helpers::DATETIME_FORMAT );
176
+ });
177
+
164
178
$ grid ->setDefaultFilter (['attends ' => 'yes ' ], false );
165
179
166
180
if ($ user ->isAllowed (SrsResource::USERS , Permission::MANAGE )) {
0 commit comments