OSDN Git Service

creditable
authoryasushiito <yas@pen-chan.jp>
Mon, 14 Apr 2014 09:03:30 +0000 (18:03 +0900)
committeryasushiito <yas@pen-chan.jp>
Mon, 14 Apr 2014 09:03:30 +0000 (18:03 +0900)
16 files changed:
.gitignore
app/assets/javascripts/manifest/work/items.js.coffee.erb
app/assets/javascripts/manifest/work/models.js.coffee.erb
app/controllers/original_picture_license_groups_controller.rb
app/controllers/resource_pictures_controller.rb
app/helpers/application_helper.rb
app/models/license_group.rb
app/models/picture.rb
app/models/resource_picture.rb
app/views/resource_pictures/_form.html.erb
db/migrate/20140409094921_fix_ext_sys_pict.rb [new file with mode: 0644]
db/migrate/20140409095030_fix_ext_sys_pict_data.rb [new file with mode: 0644]
lib/peta/item.rb
lib/peta/system_resource.rb
public/local_manifest.json
public/manifest.json

index 72fab49..97f7214 100644 (file)
@@ -16,12 +16,12 @@ config/element.yml
 config/profile.json
 config/test_layout
 lib/test/temp/
-db/migrate/*_creative_commons_v??_licenses_attributes.rb
-db/migrate/*_pettan_commons_v??_licenses_attributes.rb
-db/migrate/*_pettan_protected_v??_licenses_attributes.rb
-db/migrate/*_pettan_public_v??_licenses_attributes.rb
-db/migrate/*_public_domain_v??_licenses_attributes.rb
-db/migrate/*_unknown_v??_licenses_attributes.rb
+db/migrate/*_creative_commons_v??_licenses*.rb
+db/migrate/*_pettan_commons_v??_licenses*.rb
+db/migrate/*_pettan_protected_v??_licenses*.rb
+db/migrate/*_pettan_public_v??_licenses*.rb
+db/migrate/*_public_domain_v??_licenses*.rb
+db/migrate/*_unknown_v??_licenses*.rb
 db/migrate/*_speech_balloon_speech_balloons.rb
 db/migrate/*_speech_balloon_balloons.rb
 db/migrate/*_speech_balloon_speeches.rb
index 75a4a38..f5767c5 100644 (file)
   picture: {\r
     args: {\r
       boost: {\r
+        # expand license_group_settings\r
         license_group: {\r
+          resource_name: 'license',\r
+          extend_column_name: 'license_group_classname',\r
+          settings_column_name: 'license_group_settings',\r
+          extend_model_class_name: 'License',\r
+          extend_item_name: 'license',\r
         },\r
+        # expand license_settings\r
         license: {\r
+          level: 'read',\r
+          extend_column_name: 'license_group_classname',\r
+          extend_model_class_name: 'Attribute',\r
           extend_item_name: 'attribute',\r
         },\r
         credit_picture: {\r
           level: 'read',\r
+          resource_name: 'license',\r
+          extend_column_name: 'license_group_classname',\r
+          settings_column_name: 'credit_picture_settings',\r
           extend_model_class_name: 'CreditPicture',\r
           extend_item_name: 'credit_picture',\r
-          extend_column_name: 'license_group_classname',\r
         },\r
       },\r
     },\r
   resource_picture: {\r
     args: {\r
       boost: {\r
+        # expand license_group_settings\r
         license_group: {\r
+          resource_name: 'license',\r
+          extend_column_name: 'license_group_classname',\r
+          settings_column_name: 'license_group_settings',\r
+          extend_model_class_name: 'License',\r
+          extend_item_name: 'license',\r
         },\r
+        # expand license_settings\r
         license: {\r
+          level: 'read',\r
+          extend_column_name: 'license_group_classname',\r
+          extend_model_class_name: 'Attribute',\r
           extend_item_name: 'attribute',\r
         },\r
         credit_picture: {\r
           level: 'read',\r
+          resource_name: 'license',\r
+          extend_column_name: 'license_group_classname',\r
+          settings_column_name: 'credit_picture_settings',\r
           extend_model_class_name: 'CreditPicture',\r
           extend_item_name: 'credit_picture',\r
-          extend_column_name: 'license_group_classname',\r
         },\r
       },\r
     },\r
index 9b5e62d..317a324 100644 (file)
           number: true,\r
         }\r
       },\r
+      license_group_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
       license_id: {\r
         type: 'number',\r
         rules : {\r
         rules : {\r
         }\r
       },\r
-      license_classname: {\r
+      license_group_classname: {\r
         type: 'text',\r
         rules : {\r
           required: true,\r
           number: true,\r
         }\r
       },\r
+      license_group_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
       license_id: {\r
         type: 'number',\r
         rules : {\r
           number: true,\r
         }\r
       },\r
-      license_classname: {\r
+      license_group_classname: {\r
         type: 'text',\r
         rules : {\r
           required: true,\r
index b3616fe..dff5e0b 100644 (file)
@@ -17,7 +17,7 @@ class OriginalPictureLicenseGroupsController < ApplicationController
     @original_picture = OriginalPicture.show params[:original_picture_id], @operators
     @original_picture_license_group = OriginalPictureLicenseGroup.new params[:original_picture_license_group]
     @license_group = LicenseGroup.show @original_picture_license_group.license_group_id, @operators
-    @ctl = @license_group.engine_name
+    @ctl = @license_group.my_engine_name
 
     respond_to do |format|
       if @original_picture_license_group.valid?
index 47772db..45201cb 100644 (file)
@@ -102,6 +102,7 @@ class ResourcePicturesController < ApplicationController
     end
     @resource_picture.attributes = params[:resource_picture]
     @resource_picture.overwrite @original_picture
+    @resource_picture.boosts 'post'
     @license = @resource_picture.license
 
     respond_to do |format|
index 7a6393e..aa514c7 100644 (file)
@@ -84,10 +84,10 @@ module ApplicationHelper
       javascript_include_tag wf.engine_name + "/application"
     }.join("\n") + 
     SpeechBalloonTemplate.enable_list().map {|sbt|
-      stylesheet_link_tag sbt.engine_name + "/application"
+      stylesheet_link_tag sbt.my_engine_name + "/application"
     }.join("\n") + 
     SpeechBalloonTemplate.enable_list().map {|sbt|
-      javascript_include_tag sbt.engine_name + "/application"
+      javascript_include_tag sbt.my_engine_name + "/application"
     }.join("\n")
   end
   
index b8f0ea2..cbd6fc1 100644 (file)
@@ -38,25 +38,6 @@ class LicenseGroup < Peta::SystemResource
     {:include => {:licenses => {}}}
   end
   
-  def my_engine_resource
-    Manifest.manifest.system_resources.engine_resources['system_resources']
-  end
-  
-  def engine_name
-    self.my_engine_resource.resource_items[self.classname]
-  end
-  
-  def enable?
-    self.my_engine_resource.resource_items.include? self.classname
-  end
-  
-  def engine_module_name
-    self.engine_name.camelize
-  end
-  
-  def engine
-    Object.const_get self.engine_module_name
-  end
   def self.store name, attr
     #ライセンスデータがあるとライセンスグループのデータ生成で邪魔するので移しておく
     lattr = attr["licenses_attributes"]
index c408bab..0725faf 100644 (file)
@@ -16,7 +16,7 @@ class Picture < Peta::Content
   validates :license_id, :presence => true, :numericality => true, :existence => {:both => false}
   validates :artist_id, :presence => true, :numericality => true, :existence => {:both => false}
   validates :artist_name, :presence => true
-  validates :classname, :presence => true, :length => {:maximum => 50}
+  validates :license_group_classname, :presence => true, :length => {:maximum => 50}
   
   def supply_default
   end
@@ -24,7 +24,11 @@ class Picture < Peta::Content
   def overwrite rp
     attr = {:width => rp.width, :height => rp.height, :ext => rp.ext, :filesize => rp.filesize, 
       :original_picture_id => rp.original_picture_id, :license_id => rp.license_id, :artist_id => rp.artist_id, 
-      :md5 => rp.md5, :artist_name => rp.artist_name, :classname => rp.classname, :credit => rp.credit, :settings => rp.settings
+      :md5 => rp.md5, :artist_name => rp.artist_name, 
+      :license_group_classname => rp.license_group_classname, 
+      :license_group_settings => rp.license_group_settings, 
+      :credit_picture_settings => rp.credit_picture_settings,
+      :license_settings => rp.license_settings
     }
     self.attributes = attr
     self.revision = self.new_revision   #Do not move to attr. new_revision reffernces self.original_picture_id
@@ -100,11 +104,11 @@ class Picture < Peta::Content
   end
   
   def to_gif?
-    self.ext == 'png' and self.flag_gif_convert >= 0
+    self.ext == 'png' and self.license_extend.gif_convert >= 0
   end
   
   def subdirs
-    flag_reverse < 0 ? [''] : ['', 'v', 'h', 'vh']
+    self.license_extend.reverse < 0 ? [''] : ['', 'v', 'h', 'vh']
   end
   
   def self.find_by_md5 md5
@@ -201,88 +205,11 @@ class Picture < Peta::Content
   end
   
   def credit_template
-    "#{self.classname.tableize}/attributes/credit"
+    "#{self.license_group_classname.tableize}/attributes/credit"
   end
   
   def full_credit_template
-    "#{self.classname.tableize}/attributes/full_credit"
-  end
-  
-  def credit_data
-    begin
-      @credit_data = JSON.parse(self.credit) unless @credit_data
-    rescue 
-    end
-    @credit_data
-  end
-  
-  def flags
-    return @flags if @flags
-    begin
-      @flags = JSON.parse(self.settings)
-    rescue 
-    end
-    @flags = {} unless @flags
-    @flags
-  end
-  
-  def flags=(s)
-    @flags = s
-  end
-  
-  def flag_open
-    @flag_open = (flags["open"] || -1) unless @flag_open
-    @flag_open
-  end
-  
-  def flag_commercial
-    @flag_commercial = (flags["commercial"] || -1) unless @flag_commercial
-    @flag_commercial
-  end
-  
-  def flag_official
-    @flag_official = (flags["official"] || -1) unless @flag_official
-    @flag_official
-  end
-  
-  def flag_attribution
-    @flag_attribution = (flags["attribution"] || -1) unless @flag_attribution
-    @flag_attribution
-  end
-  
-  def flag_derive
-    @flag_derive = (flags["derive"] || -1) unless @flag_derive
-    @flag_derive
-  end
-  
-  def flag_thumbnail
-    @flag_thumbnail = (flags["thumbnail"] || -1) unless @flag_thumbnail
-    @flag_thumbnail
-  end
-  
-  def flag_gif_convert
-    @flag_gif_convert = (flags["gif_convert"] || -1) unless @flag_gif_convert
-    @flag_gif_convert
-  end
-  
-  def flag_reverse
-    @flag_reverse = (flags["reverse"] || -1) unless @flag_reverse
-    @flag_reverse
-  end
-  
-  def flag_resize
-    @flag_resize = (flags["resize"] || -1) unless @flag_resize
-    @flag_resize
-  end
-  
-  def flag_sync_vh
-    @flag_sync_vh = (flags["sync_vh"] || -1) unless @flag_sync_vh
-    @flag_sync_vh
-  end
-  
-  def flag_overlap
-    @flag_overlap = (flags["overlap"] || -1) unless @flag_overlap
-    @flag_overlap
+    "#{self.license_group_classname.tableize}/attributes/full_credit"
   end
   
 end
index f2052c2..4a9f734 100644 (file)
@@ -15,7 +15,7 @@ class ResourcePicture < Peta::Content
   validates :license_id, :presence => true, :numericality => true, :existence => {:both => false}
   validates :original_picture_id, :presence => true, :numericality => true, :existence => {:both => false}
   validates :artist_name, :presence => true
-  validates :classname, :presence => true, :length => {:maximum => 50}
+  validates :license_group_classname, :presence => true, :length => {:maximum => 50}
   validates :picture_id, :presence => true, :numericality => true, :existence => {:both => false}
   
   def supply_default
@@ -50,7 +50,7 @@ class ResourcePicture < Peta::Content
   end
   
   def to_gif?
-    self.ext == 'png' and self.flag_gif_convert >= 0
+    self.ext == 'png' and self.license_extend.gif_convert >= 0
   end
   
   def thumbnail(imager)
@@ -147,7 +147,7 @@ class ResourcePicture < Peta::Content
   
   def store_picture(imager, fn)
     res = false
-    thumbnail_imager = self.flag_thumbnail >= 0 ? imager.to_thumbnail : imager
+    thumbnail_imager = self.license_extend.thumbnail >= 0 ? imager.to_thumbnail : imager
     return false unless thumbnail_imager
     begin
       PictureIO.resource_picture_io.put(thumbnail_imager.binary, fn)
@@ -191,86 +191,11 @@ class ResourcePicture < Peta::Content
   end
   
   def credit_template
-    "#{self.classname.tableize}/attributes/credit"
+    "#{self.license_group_classname.tableize}/attributes/credit"
   end
   
   def full_credit_template
-    "#{self.classname.tableize}/attributes/full_credit"
-  end
-  
-  def credit_data
-    begin
-      @credit_data = JSON.parse(self.credit) unless @credit_data
-    rescue 
-    end
-    @credit_data
-  end
-  
-  def flags
-    begin
-      @flags = JSON.parse(self.settings) unless @flags
-    rescue 
-    end
-    @flags
-  end
-  
-  def flags=(s)
-    @flags = s
-  end
-  
-  def flag_open
-    @flag_open = flags["open"] unless @flag_open
-    @flag_open
-  end
-  
-  def flag_commercial
-    @flag_commercial = flags["commercial"] unless @flag_commercial
-    @flag_commercial
-  end
-  
-  def flag_official
-    @flag_official = flags["official"] unless @flag_official
-    @flag_official
-  end
-  
-  def flag_attribution
-    @flag_attribution = flags["attribution"] unless @flag_attribution
-    @flag_attribution
-  end
-  
-  def flag_derive
-    @flag_derive = flags["derive"] unless @flag_derive
-    @flag_derive
-  end
-  
-  def flag_thumbnail
-    @flag_thumbnail = flags["thumbnail"] unless @flag_thumbnail
-    @flag_thumbnail
-  end
-  
-  def flag_gif_convert
-    @flag_gif_convert = flags["gif_convert"] unless @flag_gif_convert
-    @flag_gif_convert
-  end
-  
-  def flag_reverse
-    @flag_reverse = flags["reverse"] unless @flag_reverse
-    @flag_reverse
-  end
-  
-  def flag_resize
-    @flag_resize = flags["resize"] unless @flag_resize
-    @flag_resize
-  end
-  
-  def flag_sync_vh
-    @flag_sync_vh = flags["sync_vh"] unless @flag_sync_vh
-    @flag_sync_vh
-  end
-  
-  def flag_overlap
-    @flag_overlap = flags["overlap"] unless @flag_overlap
-    @flag_overlap
+    "#{self.license_group_classname.tableize}/attributes/full_credit"
   end
   
 end
index 1217b44..5025683 100644 (file)
@@ -9,11 +9,12 @@
   <%= f.hidden_field :original_picture_id %>
   <%= f.hidden_field :license_id %>
   <%= f.hidden_field :artist_name %>
-  <%= f.hidden_field :classname %>
-  <%= f.hidden_field :credit %>
-  <%= f.hidden_field :settings %>
+  <%= f.hidden_field :license_group_classname %>
+  <%= f.hidden_field :license_group_settings %>
+  <%= f.hidden_field :credit_picture_settings %>
+  <%= f.hidden_field :license_settings %>
 
-  <%= render  :partial => @resource_picture.classname.tableize + '/attributes/confirm' %>
+  <%= render  :partial => @resource_picture.license_group_classname.tableize + '/attributes/confirm' %>
 
   <div class="actions">
     <%= f.submit t 'resource_pictures.new.publish'  %>
diff --git a/db/migrate/20140409094921_fix_ext_sys_pict.rb b/db/migrate/20140409094921_fix_ext_sys_pict.rb
new file mode 100644 (file)
index 0000000..dfd15a0
--- /dev/null
@@ -0,0 +1,18 @@
+class FixExtSysPict < ActiveRecord::Migration
+  def up
+    rename_column :resource_pictures, :classname, :license_group_classname
+    rename_column :resource_pictures, :credit, :license_settings
+    rename_column :resource_pictures, :settings, :license_group_settings
+ #   add_column :resource_pictures, :license_group_id, :integer, :null => false, :default => 0
+    add_column :resource_pictures, :credit_picture_settings, :string
+    
+    rename_column :pictures, :classname, :license_group_classname
+    rename_column :pictures, :credit, :license_settings
+    rename_column :pictures, :settings, :license_group_settings
+ #   add_column :pictures, :license_group_id, :integer, :null => false, :default => 0
+    add_column :pictures, :credit_picture_settings, :string
+  end
+
+  def down
+  end
+end
diff --git a/db/migrate/20140409095030_fix_ext_sys_pict_data.rb b/db/migrate/20140409095030_fix_ext_sys_pict_data.rb
new file mode 100644 (file)
index 0000000..c1299f3
--- /dev/null
@@ -0,0 +1,17 @@
+class FixExtSysPictData < ActiveRecord::Migration
+  def up
+    ResourcePicture.find(:all).each do |resource_picture|
+      license = resource_picture.license
+      resource_picture.credit_picture_settings = license.credit_picture_settings
+      resource_picture.save!
+    end
+    Picture.find(:all).each do |picture|
+      license = picture.license
+      picture.credit_picture_settings = license.credit_picture_settings
+      picture.save!
+    end
+  end
+
+  def down
+  end
+end
index b2a4cb4..8025da9 100644 (file)
@@ -168,7 +168,7 @@ module Peta
     
     def boosts level
       self.class.my_peta.boost.each do |boost_name, boost_manifest|
-  #      next unless boost_manifest.level == level
+        next if level == 'read' and boost_manifest.level == 'post'
         self.boost boost_manifest
       end
     end
index b1ca3bd..f3e3694 100644 (file)
@@ -7,8 +7,10 @@ module Peta
     # ClassMethods
     
     def self.enable_list
-      self.find(:all).delete_if {|sbt|
-        sbt.enable? == false
+      self.find(:all).delete_if {|system_resource|
+      p system_resource
+      p system_resource.enable?
+        system_resource.enable? == false
       }
     end
     
@@ -19,7 +21,7 @@ module Peta
     end
     
     def my_engine_resource
-      Manifest.manifest.system_resources.engine_resources[self.item_name]
+      Manifest.manifest.system_resources.engine_resources[self.table_name]
     end
     
     def enable?
@@ -27,6 +29,10 @@ module Peta
       er.resource_items.include? self.classname
     end
     
+    def my_engine_name
+      self.my_engine_resource.resource_items[self.classname]
+    end
+    
     def own? operators
       operators.admin?
     end
index 61cb536..6bf75e8 100644 (file)
         "url"\r
       ],\r
       "extend_settings": {\r
+        "pettanr_creative_commons_v30_licenses_license": {\r
+          "columns": {},\r
+          "column_names": [\r
+            "open",\r
+            "commercial",\r
+            "official",\r
+            "attribution:",\r
+            "derive",\r
+            "thumbnail",\r
+            "gif_convert",\r
+            "reverse",\r
+            "sync_vh",\r
+            "overlap"\r
+          ]\r
+        },\r
         "pettanr_pettan_commons_v01_licenses_license": {\r
           "columns": {},\r
           "column_names": [\r
             "overlap"\r
           ]\r
         },\r
+        "pettanr_pettan_protected_v01_licenses_license": {\r
+          "columns": {},\r
+          "column_names": [\r
+            "open",\r
+            "commercial",\r
+            "official",\r
+            "attribution:",\r
+            "derive",\r
+            "thumbnail",\r
+            "gif_convert",\r
+            "reverse",\r
+            "sync_vh",\r
+            "overlap"\r
+          ]\r
+        },\r
+        "pettanr_pettan_public_v01_licenses_license": {\r
+          "columns": {},\r
+          "column_names": [\r
+            "open",\r
+            "commercial",\r
+            "official",\r
+            "attribution:",\r
+            "derive",\r
+            "thumbnail",\r
+            "gif_convert",\r
+            "reverse",\r
+            "sync_vh",\r
+            "overlap"\r
+          ]\r
+        },\r
+        "pettanr_public_domain_v01_licenses_license": {\r
+          "columns": {},\r
+          "column_names": [\r
+            "open",\r
+            "commercial",\r
+            "official",\r
+            "attribution:",\r
+            "derive",\r
+            "thumbnail",\r
+            "gif_convert",\r
+            "reverse",\r
+            "sync_vh",\r
+            "overlap"\r
+          ]\r
+        },\r
+        "pettanr_unknown_v01_licenses_license": {\r
+          "columns": {},\r
+          "column_names": [\r
+            "open",\r
+            "commercial",\r
+            "official",\r
+            "attribution:",\r
+            "derive",\r
+            "thumbnail",\r
+            "gif_convert",\r
+            "reverse",\r
+            "sync_vh",\r
+            "overlap"\r
+          ]\r
+        },\r
+        "pettanr_creative_commons_v30_licenses_credit_picture": {\r
+          "columns": {},\r
+          "column_names": [\r
+            "source_url_btn_id",\r
+            "source_url_off_btn_id"\r
+          ]\r
+        },\r
         "pettanr_pettan_commons_v01_licenses_credit_picture": {\r
           "columns": {},\r
           "column_names": [\r
             "source_url_btn_id",\r
             "source_url_off_btn_id"\r
           ]\r
+        },\r
+        "pettanr_pettan_protected_v01_licenses_credit_picture": {\r
+          "columns": {},\r
+          "column_names": [\r
+            "source_url_btn_id",\r
+            "source_url_off_btn_id"\r
+          ]\r
+        },\r
+        "pettanr_pettan_public_v01_licenses_credit_picture": {\r
+          "columns": {},\r
+          "column_names": [\r
+            "source_url_btn_id",\r
+            "source_url_off_btn_id"\r
+          ]\r
+        },\r
+        "pettanr_public_domain_v01_licenses_credit_picture": {\r
+          "columns": {},\r
+          "column_names": [\r
+            "source_url_btn_id",\r
+            "source_url_off_btn_id"\r
+          ]\r
+        },\r
+        "pettanr_unknown_v01_licenses_credit_picture": {\r
+          "columns": {},\r
+          "column_names": [\r
+            "source_url_btn_id",\r
+            "source_url_off_btn_id"\r
+          ]\r
         }\r
       },\r
       "associations": {\r
index fb0d9d9..a7cacb1 100644 (file)
     "resource_picture": {\r
       "args": {\r
         "boost": {\r
-          "license_group": {},\r
+          "license_group": {\r
+            "resource_name": "license",\r
+            "extend_column_name": "license_group_classname",\r
+            "settings_column_name": "license_group_settings",\r
+            "extend_model_class_name": "License",\r
+            "extend_item_name": "license"\r
+          },\r
           "license": {\r
+            "level": "read",\r
+            "extend_column_name": "license_group_classname",\r
+            "extend_model_class_name": "Attribute",\r
             "extend_item_name": "attribute"\r
           },\r
           "credit_picture": {\r
             "level": "read",\r
+            "resource_name": "license",\r
+            "extend_column_name": "license_group_classname",\r
+            "settings_column_name": "credit_picture_settings",\r
             "extend_model_class_name": "CreditPicture",\r
-            "extend_item_name": "credit_picture",\r
-            "extend_column_name": "license_group_classname"\r
+            "extend_item_name": "credit_picture"\r
           }\r
         }\r
       }\r