Sprankelprachtig aan/afmeldsysteem

show.html.haml 5.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. .row
  2. .col-md-9
  3. .panel.panel-default
  4. .panel-heading
  5. = @activity.name
  6. - if @activity.may_change?(current_person)
  7. = link_to edit_group_activity_path(@group, @activity), class: 'pull-right' do
  8. %i.fa.fa-pencil
  9. %table.table
  10. %tr
  11. %td
  12. = t 'activities.attrs.organizers'
  13. %td
  14. = @organizers
  15. %tr
  16. %td
  17. = t 'activities.attrs.description'
  18. %td
  19. = @activity.description
  20. %tr
  21. %td
  22. = t 'activities.attrs.where'
  23. %td
  24. = @activity.location
  25. %tr
  26. %td
  27. = t 'activities.attrs.when'
  28. %td
  29. = l @activity.start, format: :long
  30. - if @activity.end
  31. \-
  32. - if @activity.end.to_date == @activity.start.to_date
  33. = l @activity.end, format: '%H:%M'
  34. - else
  35. = l @activity.end, format: :long
  36. %tr
  37. %td
  38. = t 'activities.attrs.deadline'
  39. %td
  40. - if @activity.deadline
  41. = l @activity.deadline, format: :long
  42. - if @ownparticipant
  43. .col-md-3
  44. .panel.panel-default
  45. .panel-heading
  46. = t 'activities.participant.yourresponse'
  47. .panel-body
  48. = render partial: "activities/wide_presence_buttons", locals: {activity: @activity, person: @ownparticipant.person, state: @ownparticipant.attending}
  49. = editable @ownparticipant,
  50. :notes,
  51. url: presence_group_activity_path(@activity.group, @activity, person_id: @ownparticipant.person_id),
  52. title: t('activities.participant.notes'),
  53. value: @ownparticipant.notes,
  54. emptytext: t('activities.participant.add_notes')
  55. .hidden-xs
  56. %h2
  57. = @num_participants
  58. = t 'activities.participant.plural'
  59. = render partial: "state_counts", locals: {counts: @counts}
  60. %table.table.table-bordered
  61. - @participants.each do |p|
  62. %tr{class: p.row_class, data: {person_id: p.person.id, activity_id: @activity.id}}
  63. %td
  64. = p.person.full_name
  65. - if p.is_organizer
  66. %i.fa.fa-star-o
  67. %td
  68. = editable p, :notes, url: presence_group_activity_path(@activity.group, @activity, person_id: p.person_id), title: t('activities.participant.notes'), value: p.notes, emptytext: "--"
  69. %td
  70. = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
  71. .hidden-sm.hidden-md.hidden-lg
  72. .panel.panel-default.panel-success
  73. .panel-heading
  74. %a{role: 'button', href: '#present-collapse', data: {toggle: 'collapse'}, 'aria-expanded': 'false'}
  75. %span.sv-show-collapsed
  76. %i.fa.fa-angle-down
  77. %span.sv-show-expanded
  78. %i.fa.fa-angle-up
  79. = t 'activities.state.present'
  80. %span.badge
  81. = @counts[true] || "0"
  82. %table.table.collapse#present-collapse
  83. %tbody
  84. - @participants.where(attending: true).each do |p|
  85. %tr{data: {person_id: p.person.id, activity_id: @activity.id}}
  86. %td
  87. = p.person.full_name
  88. - if p.is_organizer
  89. %i.fa.fa-star-o
  90. %td
  91. = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
  92. %tr{data: {person_id: p.person_id, activity_id: @activity.id}}
  93. %td{colspan: "2"}
  94. = editable p, :notes, url: presence_group_activity_path(@activity.group, @activity, person_id: p.person_id), title: t('activities.participant.notes'), value: p.notes, emptytext: "--"
  95. .panel.panel-default
  96. .panel-heading
  97. %a{role: 'button', href: '#unknown-collapse', data: {toggle: 'collapse'}, 'aria-expanded': 'false'}
  98. %span.sv-show-collapsed
  99. %i.fa.fa-angle-down
  100. %span.sv-show-expanded
  101. %i.fa.fa-angle-up
  102. = t 'activities.state.need_response'
  103. %span.badge
  104. = @counts[nil] || "0"
  105. %table.table.collapse#unknown-collapse
  106. %tbody
  107. - @participants.where(attending: nil).each do |p|
  108. %tr{data: {person_id: p.person.id, activity_id: @activity.id}}
  109. %td
  110. = p.person.full_name
  111. - if p.is_organizer
  112. %i.fa.fa-star-o
  113. %td
  114. = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
  115. %tr{data: {person_id: p.person_id, activity_id: @activity.id}}
  116. %td{colspan: "2"}
  117. = editable p, :notes, url: presence_group_activity_path(@activity.group, @activity, person_id: p.person_id), title: t('activities.participant.notes'), value: p.notes, emptytext: "--"
  118. .panel.panel-default.panel-danger
  119. .panel-heading
  120. %a{role: 'button', href: '#absent-collapse', data: {toggle: 'collapse'}, 'aria-expanded': 'false'}
  121. %span.sv-show-collapsed
  122. %i.fa.fa-angle-down
  123. %span.sv-show-expanded
  124. %i.fa.fa-angle-up
  125. = t 'activities.state.absent'
  126. %span.badge
  127. = @counts[false] || "0"
  128. %table.table.collapse#absent-collapse
  129. %tbody
  130. - @participants.where(attending: false).each do |p|
  131. %tr{data: {person_id: p.person.id, activity_id: @activity.id}}
  132. %td
  133. = p.person.full_name
  134. - if p.is_organizer
  135. %i.fa.fa-star-o
  136. %td
  137. = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
  138. %tr{data: {person_id: p.person_id, activity_id: @activity.id}}
  139. %td{colspan: "2"}
  140. = editable p, :notes, url: presence_group_activity_path(@activity.group, @activity, person_id: p.person_id), title: t('activities.participant.notes'), value: p.notes, emptytext: "--"