diff options
| author | Robert | 2018-01-09 10:09:28 +0100 |
|---|---|---|
| committer | Robert | 2018-01-09 10:09:28 +0100 |
| commit | 7ea0a6079017c561aa8286198bd77b258cb2d240 (patch) | |
| tree | 325c3b799bc6399ffc46dd03303dea04a91ee14f | |
| parent | 09e818a6a63ebe5ae08045a2c67e20ae578f640e (diff) | |
| download | chouette-core-7ea0a6079017c561aa8286198bd77b258cb2d240.tar.bz2 | |
Refs: #5413@0.3h; Fix bug in newapplciation helper unarchive link creation
| -rw-r--r-- | app/helpers/newapplication_helper.rb | 2 | ||||
| -rw-r--r-- | app/policies/application_policy.rb | 28 |
2 files changed, 24 insertions, 6 deletions
diff --git a/app/helpers/newapplication_helper.rb b/app/helpers/newapplication_helper.rb index 3100450c9..c1a1c189e 100644 --- a/app/helpers/newapplication_helper.rb +++ b/app/helpers/newapplication_helper.rb @@ -151,7 +151,7 @@ module NewapplicationHelper content_tag :li, link_to(t("actions.#{action}"), polymorph_url, method: :put) end elsif action == :unarchive - if item.archived_or_finalised? + if item.archived? && !item.finalised? content_tag :li, link_to(t("actions.#{action}"), polymorph_url, method: :put) end else diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb index 68007b133..7b4d1b0c0 100644 --- a/app/policies/application_policy.rb +++ b/app/policies/application_policy.rb @@ -76,9 +76,18 @@ class ApplicationPolicy # Custom Permissions # ------------------ + def archived? + return @is_archived if instance_variable_defined?(:@is_archived) + @is_archived = is_archived + end + + def finalised? + return @is_finalised if instance_variable_defined?(:@is_finalised) + @is_finalised = is_finalised + end + def archived_or_finalised? - return @is_archived_or_finalised if instance_variable_defined?(:@is_archived_or_finalised) - @is_archived_or_finalised = is_archived_or_finalised + archived? || finalised? end @@ -117,12 +126,21 @@ class ApplicationPolicy end private - def is_archived_or_finalised + def is_archived + !!case referential + when Referential + referential.archived_at + else + current_referential.try(:archived_at) + end + end + + def is_finalised !!case referential when Referential - referential.archived_at || referential.in_referential_suite? + referential.in_referential_suite? else - current_referential.try(:archived_at) || current_referential.try(:in_referential_suite?) + current_referential.try(:in_referential_suite?) end end end |
