From: yasushiito Date: Thu, 20 Dec 2012 09:59:16 +0000 (+0900) Subject: t#30138:create original pictures status X-Git-Url: http://git.osdn.net/view?p=pettanr%2Fpettanr.git;a=commitdiff_plain;h=942917e0411a283c3a6ffb151c91053731f7bff7 t#30138:create original pictures status --- diff --git a/app/models/original_picture.rb b/app/models/original_picture.rb index cfe85405..33de4f20 100644 --- a/app/models/original_picture.rb +++ b/app/models/original_picture.rb @@ -56,6 +56,22 @@ class OriginalPicture < ActiveRecord::Base {:src => self.url, :width => tw, :height => th} end + def unpublished? + self.pictures.empty? + end + + def stopped? + self.pictures.any? and self.resource_picture == nil + end + + def unlicensed? + self.pictures.any? and self.resource_picture and self.updated_at > self.pictures.first.head.updated_at + end + + def published? + self.pictures.any? and self.resource_picture and self.updated_at < self.pictures.first.head.updated_at + end + def self.default_page_size 25 end diff --git a/app/views/original_pictures/index.html.erb b/app/views/original_pictures/index.html.erb index 8905130a..530ea570 100644 --- a/app/views/original_pictures/index.html.erb +++ b/app/views/original_pictures/index.html.erb @@ -23,6 +23,22 @@ <% end %> + <% case true %> + <% when original_picture.unpublished? %> + <%= t('original_pictures.unpublished') %> + <% when original_picture.stopped? %> + <%= t('original_pictures.stopped') %> + <% when original_picture.unlicensed? %> + <%= t('original_pictures.unlicensed') %> + <% when original_picture.published? %> + <%= t('original_pictures.published') %> + <% end %> + + + <% if original_picture.resource_picture %> + <%= link_to tag(:img, original_picture.resource_picture.tmb_opt_img_tag), original_picture.resource_picture %> + <% else %> + <% end %> <% if original_picture.resource_picture %> diff --git a/app/views/original_pictures/show.html.erb b/app/views/original_pictures/show.html.erb index d24737f8..cd21ee13 100644 --- a/app/views/original_pictures/show.html.erb +++ b/app/views/original_pictures/show.html.erb @@ -8,6 +8,20 @@ <%= link_to tag(:img, @original_picture.opt_img_tag), @original_picture.url %>

+ <%= t 'original_pictures.index.status' -%>: + <% case true %> + <% when @original_picture.unpublished? %> + <%= t('original_pictures.unpublished') %> + <% when @original_picture.stopped? %> + <%= t('original_pictures.stopped') %> + <% when @original_picture.unlicensed? %> + <%= t('original_pictures.unlicensed') %> + <% when @original_picture.published? %> + <%= t('original_pictures.published') %> + <% end %> +

+ +

<%= t_m 'OriginalPicture.ext' -%>: <%= @original_picture.ext %>

diff --git a/config/locales/pettanr.ja.yml b/config/locales/pettanr.ja.yml index 74229963..841c469d 100644 --- a/config/locales/pettanr.ja.yml +++ b/config/locales/pettanr.ja.yml @@ -499,6 +499,10 @@ ja: history: title: 公開履歴 upload: 投稿する + unpublished: 未公開 + stopped: 停止中 + unlicensed: ライセンス待ち + published: 公開中 pictures: show: title: 実素材詳細 diff --git a/spec/models/original_picture_spec.rb b/spec/models/original_picture_spec.rb index 28b81194..2a9a964c 100644 --- a/spec/models/original_picture_spec.rb +++ b/spec/models/original_picture_spec.rb @@ -293,6 +293,122 @@ describe OriginalPicture do end end + describe '未公開に於いて' do + before do + @op = FactoryGirl.create :original_picture, :artist_id => @artist.id + end + context '実素材がゼロのとき' do + it 'Trueを返す' do + r = @op.unpublished? + r.should be_true + end + end + context '実素材がゼロではないとき' do + it 'Falseを返す' do + @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id + r = @op.unpublished? + r.should be_false + end + end + end + + describe '停止中に於いて' do + before do + @op = FactoryGirl.create :original_picture, :artist_id => @artist.id + end + context '未公開ではないが、素材がないとき' do + it 'Trueを返す' do + @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id + r = @op.stopped? + r.should be_true + end + end + context '未公開のとき' do + it 'Falseを返す' do + r = @op.stopped? + r.should be_false + end + end + context '未公開ではなく、素材もあるとき' do + it 'falseを返す' do + @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id + @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :picture_id => @p.id + r = @op.stopped? + r.should be_false + end + end + end + + describe 'ライセンス待ちに於いて' do + before do + @op = FactoryGirl.create :original_picture, :artist_id => @artist.id + end + context '未公開ではなく、素材もあるが、原画の更新日時が実素材のheadのそれより後のとき' do + it 'Trueを返す' do + @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :updated_at => Time.now - 1000 + @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :picture_id => @p.id + r = @op.unlicensed? + r.should be_true + end + end + context '未公開のとき' do + it 'Falseを返す' do + r = @op.unlicensed? + r.should be_false + end + end + context '未公開ではないが、素材がないとき' do + it 'Falseを返す' do + @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id + r = @op.unlicensed? + r.should be_false + end + end + context '未公開ではなく、素材もあり、実素材のheadの更新日時が原画のそれより後のとき' do + it 'Falseを返す' do + @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :updated_at => Time.now + 1000 + @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :picture_id => @p.id + r = @op.unlicensed? + r.should be_false + end + end + end + + describe '公開中に於いて' do + before do + @op = FactoryGirl.create :original_picture, :artist_id => @artist.id + end + context '未公開ではなく、素材もあり、実素材のheadの更新日時が原画のそれより後のとき' do + it 'Trueを返す' do + @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :updated_at => Time.now + 1000 + @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :picture_id => @p.id + r = @op.published? + r.should be_true + end + end + context '未公開のとき' do + it 'Falseを返す' do + r = @op.published? + r.should be_false + end + end + context '未公開ではないが、素材がないとき' do + it 'falseを返す' do + @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id + r = @op.published? + r.should be_false + end + end + context '未公開ではなく、素材もあるが、原画の更新日時が実素材のheadのそれより後のとき' do + it 'falseを返す' do + @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :updated_at => Time.now - 1000 + @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :picture_id => @p.id + r = @op.published? + r.should be_false + end + end + end + describe '一覧取得に於いて' do before do @op = FactoryGirl.create :original_picture, :artist_id => @artist.id