プロジェクト

全般

プロフィール

ダウンロード (2.2 KB) 統計
| ブランチ: | タグ: | リビジョン:
fd7c3c3d TAKAHASHI,Toru
require 'csv'

5785342c Toru Takahashi
class GlossaryTerm < ActiveRecord::Base
96155a96 Toru Takahashi
belongs_to :category, class_name: 'GlossaryCategory', foreign_key: 'category_id'
e1ee6f8f Toru Takahashi
belongs_to :project
c30fdae6 TAKAHASHI,Toru
belongs_to :author, class_name: 'User', foreign_key: 'author_id'
517decb4 TAKAHASHI,Toru
belongs_to :updater, class_name: 'User', foreign_key: 'updater_id'
b1b7d669 Toru Takahashi
fe492e04 Toru Takahashi
# class method from Redmine::Acts::Attachable::ClassMethods
517decb4 TAKAHASHI,Toru
acts_as_attachable view_permission: :view_glossary_terms, edit_permission: :manage_glossary_terms,
delete_permission: :manage_glossary_terms
1292a948 Toru Takahashi
acts_as_event datetime: :updated_at,
description: :description,
author: nil,
title: Proc.new {|o| "#{l(:glossary_title)} ##{o.id} - #{o.name}" },
url: Proc.new {|o| { controller: 'glossary_terms',
action: 'show',
id: o.id,
project_id: o.project }
}

517decb4 TAKAHASHI,Toru
acts_as_searchable columns: [ "#{table_name}.name", "#{table_name}.description", "#{table_name}.rubi"],
preload: [:project ],
date_column: "#{table_name}.created_at",
scope: joins(:project),
permission: :view_glossary_terms

1292a948 Toru Takahashi
acts_as_activity_provider scope: joins(:project),
type: 'glossary_terms',
517decb4 TAKAHASHI,Toru
permission: :view_glossary_terms,
1292a948 Toru Takahashi
timestamp: :updated_at
517decb4 TAKAHASHI,Toru
b1b7d669 Toru Takahashi
scope :search_by_name, -> (keyword) {
where 'name like ?', "#{sanitize_sql_like(keyword)}%"
}

f78775ac Toru Takahashi
scope :search_by_rubi, -> (keyword) {
where 'rubi like ?', "#{sanitize_sql_like(keyword)}%"
}

fd7c3c3d TAKAHASHI,Toru
def self.csv_attributes
["name", "name_en", "datatype", "codename", "description", "rubi", "abbr_whole"]
end

def self.import(file, project)
CSV.foreach(file.path, headers: true, encoding: "CP932:UTF-8" ) do |row|
term = new
term.attributes = row.to_hash.slice(*csv_attributes)
term.project = project
unless row["category"].blank?
term.category = GlossaryCategory.find_by(name: row["category"]) ||
GlossaryCategory.create(name: row["category"], project: project)
end
term.save!
end
end

5785342c Toru Takahashi
end