Browse Source

LESS BUTTONS

Maarten van den Berg 7 years ago
parent
commit
f39a477427
3 changed files with 16 additions and 7 deletions
  1. 1 2
      app/helpers/dashboard_helper.rb
  2. 5 0
      app/models/participant.rb
  3. 10 5
      app/views/activities/show.html.haml

+ 1 - 2
app/helpers/dashboard_helper.rb

@@ -1,6 +1,5 @@
1 1
 module DashboardHelper
2 2
   def xeditable? obj = nil
3
-    obj.activity.may_change? current_person
4
-    true
3
+    obj.may_change?(current_person)
5 4
   end
6 5
 end

+ 5 - 0
app/models/participant.rb

@@ -36,4 +36,9 @@ class Participant < ApplicationRecord
36 36
       "warning"
37 37
     end
38 38
   end
39
+
40
+  def may_change?(person)
41
+    self.activity.may_change?(person) ||
42
+    self.person == person
43
+  end
39 44
 end

+ 10 - 5
app/views/activities/show.html.haml

@@ -1,9 +1,10 @@
1
+- all_buttons = @activity.may_change?(current_person)
1 2
 .row
2 3
   .col-md-9
3 4
     .panel.panel-default
4 5
       .panel-heading
5 6
         = @activity.name
6
-        - if @activity.may_change?(current_person)
7
+        - if all_buttons
7 8
           = link_to edit_group_activity_path(@group, @activity), class: 'pull-right' do
8 9
             %i.fa.fa-pencil
9 10
 
@@ -80,7 +81,8 @@
80 81
           = 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: "--"
81 82
 
82 83
         %td
83
-          = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
84
+          - if p.person.id == current_person.id || all_buttons
85
+            = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
84 86
 
85 87
 .hidden-sm.hidden-md.hidden-lg
86 88
   .panel.panel-default.panel-success
@@ -107,7 +109,8 @@
107 109
                 %i.fa.fa-star-o
108 110
 
109 111
             %td
110
-              = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
112
+              - if p.person.id == current_person.id || all_buttons
113
+                = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
111 114
 
112 115
           %tr{data: {person_id: p.person_id, activity_id: @activity.id}}
113 116
             %td{colspan: "2"}
@@ -139,7 +142,8 @@
139 142
                 %i.fa.fa-star-o
140 143
 
141 144
             %td
142
-              = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
145
+              - if p.person.id == current_person.id || all_buttons
146
+                = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
143 147
 
144 148
           %tr{data: {person_id: p.person_id, activity_id: @activity.id}}
145 149
             %td{colspan: "2"}
@@ -170,7 +174,8 @@
170 174
                 %i.fa.fa-star-o
171 175
 
172 176
             %td
173
-              = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
177
+              - if p.person.id == current_person.id || all_buttons
178
+                = render partial: "activities/presence_buttons", locals: {activity: @activity, person: p.person, state: p.attending}
174 179
 
175 180
           %tr{data: {person_id: p.person_id, activity_id: @activity.id}}
176 181
             %td{colspan: "2"}