Maarten van den Berg 7 年 前
コミット
f39a477427
共有3 個のファイルを変更した16 個の追加7 個の削除を含む
  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
 module DashboardHelper
1
 module DashboardHelper
2
   def xeditable? obj = nil
2
   def xeditable? obj = nil
3
-    obj.activity.may_change? current_person
4
-    true
3
+    obj.may_change?(current_person)
5
   end
4
   end
6
 end
5
 end

+ 5 - 0
app/models/participant.rb

36
       "warning"
36
       "warning"
37
     end
37
     end
38
   end
38
   end
39
+
40
+  def may_change?(person)
41
+    self.activity.may_change?(person) ||
42
+    self.person == person
43
+  end
39
 end
44
 end

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

1
+- all_buttons = @activity.may_change?(current_person)
1
 .row
2
 .row
2
   .col-md-9
3
   .col-md-9
3
     .panel.panel-default
4
     .panel.panel-default
4
       .panel-heading
5
       .panel-heading
5
         = @activity.name
6
         = @activity.name
6
-        - if @activity.may_change?(current_person)
7
+        - if all_buttons
7
           = link_to edit_group_activity_path(@group, @activity), class: 'pull-right' do
8
           = link_to edit_group_activity_path(@group, @activity), class: 'pull-right' do
8
             %i.fa.fa-pencil
9
             %i.fa.fa-pencil
9
 
10
 
80
           = 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
           = 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
         %td
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
 .hidden-sm.hidden-md.hidden-lg
87
 .hidden-sm.hidden-md.hidden-lg
86
   .panel.panel-default.panel-success
88
   .panel.panel-default.panel-success
107
                 %i.fa.fa-star-o
109
                 %i.fa.fa-star-o
108
 
110
 
109
             %td
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
           %tr{data: {person_id: p.person_id, activity_id: @activity.id}}
115
           %tr{data: {person_id: p.person_id, activity_id: @activity.id}}
113
             %td{colspan: "2"}
116
             %td{colspan: "2"}
139
                 %i.fa.fa-star-o
142
                 %i.fa.fa-star-o
140
 
143
 
141
             %td
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
           %tr{data: {person_id: p.person_id, activity_id: @activity.id}}
148
           %tr{data: {person_id: p.person_id, activity_id: @activity.id}}
145
             %td{colspan: "2"}
149
             %td{colspan: "2"}
170
                 %i.fa.fa-star-o
174
                 %i.fa.fa-star-o
171
 
175
 
172
             %td
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
           %tr{data: {person_id: p.person_id, activity_id: @activity.id}}
180
           %tr{data: {person_id: p.person_id, activity_id: @activity.id}}
176
             %td{colspan: "2"}
181
             %td{colspan: "2"}