# File app/models/project.rb, line 142 def self.projects_for_user(user_id) projects = Array.new groups = ProjectGroup.where("user_id = ?", user_id) unless groups.nil? then groups.each do |group| unless group.project.nil? then projects << group.project end end end return projects end
# File app/models/project.rb, line 115 def administerable_by(user_id) user = project_groups.find_by_user_id(user_id) if (! user.nil?) && user.project_administrator then return true else return false end end
# File app/models/project.rb, line 111 def assign_administrator(user_id) add_user(user_id, true, true) end
# File app/models/project.rb, line 99 def assign_creator(user_id) add_user(user_id, true, true, true) end
# File app/models/project.rb, line 103 def assign_editor(user_id) add_user(user_id, true) end
# File app/models/project.rb, line 107 def assign_reader(user_id) add_user(user_id) end
# File app/models/project.rb, line 155 def created_by(user_id) user = project_groups.find_by_user_id(user_id) if (! user.nil?) && user.project_creator then return true else return false end end
# File app/models/project.rb, line 124 def editable_by(user_id) user = project_groups.find_by_user_id(user_id) if (! user.nil?) && user.project_editor then return true else return false end end
# File app/models/project.rb, line 39 def funder if dmptemplate.nil? then return nil end template_org = dmptemplate.organisation if template_org.organisation_type.name == I18n.t('helpers.org_type.funder').downcase return template_org else return nil end end
# File app/models/project.rb, line 27 def funder_id if dmptemplate.nil? then return nil end template_org = dmptemplate.organisation if template_org.organisation_type.name == I18n.t('helpers.org_type.funder').downcase return template_org.id else return nil end end
# File app/models/project.rb, line 18 def funder_id=(new_funder_id) if new_funder_id != "" then new_funder = Organisation.find(new_funder_id); if new_funder.dmptemplates.count == 1 then dmptemplate = new_funder.dmptemplates.first end end end
# File app/models/project.rb, line 51 def funder_name if self.funder.nil? return read_attribute(:funder_name) else return self.funder.name end end
# File app/models/project.rb, line 59 def funder_name=(new_funder_name) write_attribute(:funder_name, new_funder_name) org_table = Organisation.arel_table existing_org = Organisation.where(org_table[:name].matches(new_funder_name)) if existing_org.nil? existing_org = Organisation.where(org_table[:abbreviation].matches(new_funder_name)) end unless existing_org.empty? self.funder_id=existing_org.id end end
# File app/models/project.rb, line 77 def institution_id if organisation.nil? return nil else return organisation.root.id end end
# File app/models/project.rb, line 71 def institution_id=(new_institution_id) if organisation.nil? then self.organisation_id = new_institution_id end end
# File app/models/project.rb, line 183 def last_edited self.latest_update.to_date end
# File app/models/project.rb, line 164 def latest_update latest_update = updated_at plans.each do |plan| if plan.latest_update > latest_update then latest_update = plan.latest_update end end return latest_update end
Getters to match 'My plans' columns
# File app/models/project.rb, line 175 def name self.title end
# File app/models/project.rb, line 179 def owner self.project_groups.find_by_project_creator(true).try(:user) end
# File app/models/project.rb, line 133 def readable_by(user_id) user = project_groups.find_by_user_id(user_id) if (! user.nil?) then return true else return false end end
# File app/models/project.rb, line 193 def template_owner self.dmptemplate.try(:organisation).try(:abbreviation) end
# File app/models/project.rb, line 91 def unit_id if organisation.nil? || organisation.parent_id.nil? return nil else return organisation_id end end
# File app/models/project.rb, line 85 def unit_id=(new_unit_id) unless new_unit_id.nil? ||new_unit_id == "" self.organisation_id = new_unit_id end end
# File app/models/project.rb, line 199 def add_user(user_id, is_editor = false, is_administrator = false, is_creator = false) group = ProjectGroup.new group.user_id = user_id group.project_creator = is_creator group.project_editor = is_editor group.project_administrator = is_administrator project_groups << group end
# File app/models/project.rb, line 208 def create_plans dmptemplate.phases.each do |phase| latest_published_version = phase.latest_published_version unless latest_published_version.nil? new_plan = Plan.new new_plan.version = latest_published_version plans << new_plan end end end