module Spyro::ActionViewExtension::ProjectsHelper
Public Instance Methods
get_project_status(project, user = current_user, opts = {})
click to toggle source
Va renvoyer juste le texte, avec du cache
# File lib/spyro/helpers/action_view_extension.rb, line 527 def get_project_status project, user = current_user, opts = {} cache [project, user.id, (!project.begin_at.nil? and project.begin_at.future?), opts] do get_uncached_project_status project, current_user, opts end end
get_project_status_icon(project, user = current_user, opts = {})
click to toggle source
# File lib/spyro/helpers/action_view_extension.rb, line 490 def get_project_status_icon project, user = current_user, opts = {} # @TODO mettre des vraies icons, fuck pour l'instant "" end
get_project_status_text(project, user = current_user, opts = {class: ""})
click to toggle source
# File lib/spyro/helpers/action_view_extension.rb, line 495 def get_project_status_text project, user = current_user, opts = {class: ""} s = get_project_status(project, user, opts) get_uncached_project_status_text(s, project) end
get_uncached_project_status(project, user = current_user, opts = {})
click to toggle source
Va renvoyer juste le texte
# File lib/spyro/helpers/action_view_extension.rb, line 535 def get_uncached_project_status project, user = current_user, opts = {} raise "The hash need has_children, team and pu keys" unless (opts.has_key?(:has_children) and opts.has_key?(:team) and opts.has_key?(:pu)) if opts[:pu].nil? :not_registered elsif opts[:team].nil? and not opts[:has_children]# and user.teams.where(:project_id => project.id).empty? :searching_a_group elsif opts[:team] if opts[:team].closed? if opts[:team].final_mark :finished elsif opts[:has_children] :in_progress else :waiting_for_correction end elsif opts[:team].locked? if project.begin_at and project.begin_at.future? :waiting_to_start else :in_progress end else :creating_group end elsif opts[:has_children] :parent else :unknown end end
get_uncached_project_status_text(status, project, opts = {class: ""})
click to toggle source
# File lib/spyro/helpers/action_view_extension.rb, line 500 def get_uncached_project_status_text status, project, opts = {class: ""} case status when :not_registered "<span class='#{opts[:class]} #{opts[:class]}-default'>Not registered</span>" when :searching_a_group "<span class='#{opts[:class]} #{opts[:class]}-default'>searching a group</span>" when :finished "<span class='#{opts[:class]} #{opts[:class]}-success'>finished</span>" when :in_progress "<span class='#{opts[:class]} #{opts[:class]}-warning'>in progress</span>" when :waiting_for_correction "<span class='#{opts[:class]} #{opts[:class]}-success'>waiting for correction</span>" when :waiting_to_start "<span class='#{opts[:class]} #{opts[:class]}-default'>waiting to start (<span data-long-date='#{project.begin_at}'></span>)</span>" when :in_progress "<span class='#{opts[:class]} #{opts[:class]}-warning'>in progress</span>" when :creating_group "<span class='#{opts[:class]} #{opts[:class]}-default'>creating group</span>" when :parent "<span class='project-status-icon project-status-parent'></span>" else "<span class='project-status-icon project-status-no-idea'></span>" end end
project_progress_percentage(project, user = User.current_user)
click to toggle source
View Helper.……
# File lib/spyro/helpers/action_view_extension.rb, line 568 def project_progress_percentage project, user = User.current_user progr = {:recommended_pct => 0, :warning_pct => 0, :success_pct => 0} has_estimations = (project.estimate_time) has_begin_at = !project.begin_at.nil? has_project_user = project.ar_projects_user(user).any? return progr unless (has_estimations or project.begin_at) and has_project_user if project.begin_at start = Time.zone.now.to_i - project.begin_at.to_i progr[:recommended_pct] = ((start * 100) / (project.end_at.to_i - project.begin_at.to_i)) progr[:recommended_pct] = 100 if progr[:recommended_pct] > 100 else start = Time.zone.now - project.ar_projects_user(user).first.created_at progr[:recommended_pct] = (start * 100) / project.estimate_time if progr[:recommended_pct] > 100 progr[:recommended_pct] = ((project.estimate_time * 100) / project.estimate_time) progr[:warning_pct] = ((start * 100) / project.estimate_time) - progr[:recommended_pct] progr[:warning_pct] = 100 - progr[:recommended_pct] if progr[:warning_pct] > (100 - progr[:recommended_pct]) end if project.finished? progr[:success_pct] = 100 - (progr[:recommended_pct] + progr[:warning_pct]) end end return progr end