list_name: 'public',\r
},\r
},\r
+ new: {\r
+ type: 'new',\r
+ },\r
+ edit: {\r
+ type: 'edit',\r
+ },\r
},\r
},\r
writing_formats: {\r
count_by_system_picture: {\r
type: 'count',\r
},\r
+ new: {\r
+ type: 'new',\r
+ },\r
+ edit: {\r
+ type: 'edit',\r
+ },\r
},\r
},\r
license_groups: {\r
list_name: 'public',\r
},\r
},\r
+ new: {\r
+ type: 'new',\r
+ },\r
+ edit: {\r
+ type: 'edit',\r
+ },\r
},\r
},\r
licenses: {\r
count_by_system_picture: {\r
type: 'count',\r
},\r
+ new: {\r
+ type: 'new',\r
+ },\r
+ edit: {\r
+ type: 'edit',\r
+ },\r
},\r
},\r
authors: {\r
type: 'none',\r
},\r
edit: {\r
- type: 'none',\r
},\r
},\r
writing_format: {\r
type: 'none',\r
},\r
edit: {\r
- type: 'none',\r
},\r
},\r
license_group: {\r
type: 'none',\r
},\r
edit: {\r
- type: 'none',\r
},\r
},\r
license: {\r
summary: {\r
},\r
edit: {\r
- type: 'none',\r
},\r
},\r
author: {\r
'z',\r
't',\r
]\r
+ },\r
+ speech_balloon_template: {\r
+ fields: {\r
+ id: {\r
+ args: {\r
+ label: {\r
+ type: 'none',\r
+ },\r
+ tag: {\r
+ type: 'hidden',\r
+ },\r
+ },\r
+ },\r
+ name: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ classname: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ caption: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ t: {\r
+ args: {\r
+ tag: {\r
+ type: 'number',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ system_picture_id: {\r
+ args: {\r
+ tag: {\r
+ type: 'number',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ settings: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ },\r
+ field_names: [\r
+ 'id',\r
+ 'name',\r
+ 'classname',\r
+ 'caption',\r
+ 't',\r
+ 'system_picture_id',\r
+ 'settings',\r
+ ]\r
+ },\r
+ writing_format: {\r
+ fields: {\r
+ id: {\r
+ args: {\r
+ label: {\r
+ type: 'none',\r
+ },\r
+ tag: {\r
+ type: 'hidden',\r
+ },\r
+ },\r
+ },\r
+ name: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ classname: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ caption: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ system_picture_id: {\r
+ args: {\r
+ tag: {\r
+ type: 'number',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ settings: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ },\r
+ field_names: [\r
+ 'id',\r
+ 'name',\r
+ 'classname',\r
+ 'caption',\r
+ 'system_picture_id',\r
+ 'settings',\r
+ ]\r
+ },\r
+ license_group: {\r
+ fields: {\r
+ id: {\r
+ args: {\r
+ label: {\r
+ type: 'none',\r
+ },\r
+ tag: {\r
+ type: 'hidden',\r
+ },\r
+ },\r
+ },\r
+ name: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ classname: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ caption: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ url: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ },\r
+ field_names: [\r
+ 'id',\r
+ 'name',\r
+ 'classname',\r
+ 'caption',\r
+ 'url',\r
+ ]\r
+ },\r
+ license: {\r
+ fields: {\r
+ id: {\r
+ args: {\r
+ label: {\r
+ type: 'none',\r
+ },\r
+ tag: {\r
+ type: 'hidden',\r
+ },\r
+ },\r
+ },\r
+ license_group_id: {\r
+ args: {\r
+ label: {\r
+ type: 'none',\r
+ },\r
+ tag: {\r
+ type: 'hidden',\r
+ },\r
+ },\r
+ },\r
+ license_group_classname: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ name: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ caption: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ system_picture_id: {\r
+ args: {\r
+ tag: {\r
+ type: 'number',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ url: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ license_group_settings: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ credit_picture_settings: {\r
+ args: {\r
+ tag: {\r
+ type: 'text',\r
+ },\r
+ row_break: true,\r
+ },\r
+ },\r
+ },\r
+ field_names: [\r
+ 'id',\r
+ 'license_group_id',\r
+ 'license_group_classname',\r
+ 'name',\r
+ 'caption',\r
+ 'system_picture_id',\r
+ 'url',\r
+ 'icense_group_settings',\r
+ 'credit_picture_settings',\r
+ ]\r
}\r
author: {\r
fields: {\r
rules : {\r
}\r
},\r
- credit_pictures: {\r
+ credit_picture_settings: {\r
type: 'text',\r
rules : {\r
}\r
authenticate_user! unless @operators.user?
end
- def authenticate_resource_reader
- authenticate_user! unless @operators.resource_reader?
+ def authenticate_user
+ authenticate_user! unless @operators.user?
+ end
+
+ def authenticate_admin
+ authenticate_admin! unless @operators.admin?
end
def authenticate_author
class LicenseGroupsController < ApplicationController
- before_filter :authenticate_admin!, :only => []
+ before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
def self.model
LicenseGroup
list_count
end
+ def new
+ form_new
+ end
+
+ def edit
+ form_edit
+ end
+
end
before_filter :authenticate_resource_reader, :only => [
:by_license_group, :by_system_picture, :count_by_license_group, :count_by_system_picture
]
+ before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
def self.model
License
list_count
end
+ def new
+ form_new
+ end
+
+ def edit
+ form_edit
+ end
+
end
]
before_filter :authenticate_user, :only => []
end
- before_filter :authenticate_admin!, :only => [:destroy]
+ before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
def self.model
SpeechBalloonTemplate
list_count
end
+ def new
+ form_new
+ end
+
+ def edit
+ form_edit
+ end
+
def destroy
@speech_balloon_template = SpeechBalloonTemplate.find(params[:id])
@speech_balloon_template.destroy
before_filter :authenticate_reader, :only => [:index, :show, :count]
before_filter :authenticate_user, :only => []
end
- before_filter :authenticate_admin!, :only => [:destroy]
+ before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
def self.model
WritingFormat
show_json_format format
end
end
-
+
def count
list_count
end
+ def new
+ form_new
+ end
+
+ def edit
+ form_edit
+ end
+
end
validates :height, :presence => true, :numericality => true, :natural_number => true
validates :r, :presence => true, :numericality => true
# validates :caption, :presence => true
- validates :speech_balloon_template_settings, :extend_balloon => true
+ validates :speech_balloon_template_settings, :boost => {:resource_name => :speech_balloon_template}
def url
'/system_pictures/' + self.system_picture.filename
#
-class License < Peta::Item
+class License < Peta::SystemResource
load_manifest
belongs_to :license_group
belongs_to :system_picture
validates :width, :presence => true, :numericality => true, :natural_number => true
validates :height, :presence => true, :numericality => true, :natural_number => true
validates :quotes, :length => {:maximum => 15}, :quotes_even => true
- validates :speech_balloon_template_settings, :extend_speech => true
+ validates :speech_balloon_template_settings, :boost => {:resource_name => :speech_balloon_template}
#validates :writing_format_settings
@@text_align_texts = ['left', 'left', 'right', 'center']
validates :speech_balloon_template_classname, :presence => true, :length => {:maximum => 50}
validates :z, :presence => true, :numericality => {:greater_than => 0}
validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
- validates :speech_balloon_template_settings, :extend_speech_balloon => true
+ validates :speech_balloon_template_settings, :boost => {:resource_name => :speech_balloon_template}
def self.by_author_list_includes
{
reverse: は反転できません。
sync_vh: は縦横比を変更できません。
quotes_even: はカッコの開きと閉じを空白区切りのペアで入力してください。
- speech_balloon_extend: バリデーションに失敗しました。
- balloon_extend: バリデーションに失敗しました。
- speech_extend: バリデーションに失敗しました。
+ extend_settings: 拡張データのバリデーションに失敗しました。
template:
body: 次の項目を確認してください。
header:
def initialize manifest, item
@manifest = manifest
@item = item
+ raise 'blank foreign_key' + @manifest.name unless self.check_resource
# no check
# return false unless self.resource.enable?
- @item.extend self.engine_extend_module
- @item.__send__ @manifest.setter_method_name, self.parsed_settings
+ if extendable?
+ @item.extend self.engine_extend_module
+ @item.__send__ @manifest.setter_method_name, self.parsed_settings
+ end
@boosted = true
end
Object.const_get self.class_name
end
+ def extendable?
+ self.engine_module.constants.include? @manifest.extend_module_name
+ end
+
# extend module in engine
# ex) CircleSpeechBalloon::SpeechBalloonModule
def engine_extend_module
self.engine_module.const_get @manifest.extend_model_name
end
+ def check_resource
+ @item.attributes[@manifest.foreign_key].blank? == false
+ end
+
# get system resource instance
def resource
- r = @item.__send__ @manifest.name
- raise 'resource not found' unless r
+ r = @item.__send__ @manifest.resource_name
+ raise 'resource not found' + @manifest.resource_name unless r
r
end
module Manifest
module ItemModule
class Boost < ManifestBase::NameValues
- attr :level, :extend_column_name, :settings_column_name,
+ attr :level, :resource_name, :extend_column_name, :settings_column_name,
:foreign_key, :extend_model_class_name, :extend_item_name,
:setter_method_name, :getter_method_name,
:extend_module_name
def set_default
super
@values['level'] ||= 'post'
- @values['extend_column_name'] ||= @name + '_classname'
- @values['settings_column_name'] ||= @name + '_settings'
- @values['foreign_key'] ||= @name + '_id'
+ @values['resource_name'] ||= @name
+ @values['extend_column_name'] ||= @values['resource_name'] + '_classname'
+ @values['settings_column_name'] ||= @values['resource_name'] + '_settings'
+ @values['foreign_key'] ||= @values['resource_name'] + '_id'
end
def init
raise ActiveRecord::Forbidden unless content.own?(operators)
content
end
+
# Instance Methods
def owner_model
}
end
+ def self.edit system_resource_id, operators
+ system_resource = self.find system_resource_id, self.show_opt
+ raise ActiveRecord::Forbidden unless system_resource.own?(operators)
+ system_resource
+ end
+
def my_engine_resource
Manifest.manifest.system_resources.engine_resources[self.item_name]
end
er.resource_items.include? self.classname
end
+ def own? operators
+ operators.admin?
+ end
+
end
end
--- /dev/null
+class BoostValidator < ActiveModel::EachValidator\r
+ def validate_each(record, attribute, value)\r
+ resource = record.boosters[options[:resource_name].to_s].resource\r
+ msg = options[:message] || I18n.t('activerecord.errors.messages.extend_settings')\r
+ record.errors[attribute] << msg unless resource.valid?\r
+ end\r
+end\r
+\r
+++ /dev/null
-class ExtendBalloonValidator < ActiveModel::EachValidator\r
- def validate_each(record, attribute, value)\r
- record.errors[attribute] << (options[:message] || I18n.t('activerecord.errors.messages.balloon_extend')) unless true #record.extend_balloon.valid?\r
- end\r
-end\r
-\r
+++ /dev/null
-class ExtendSpeechBalloonValidator < ActiveModel::EachValidator\r
- def validate_each(record, attribute, value)\r
- record.errors[attribute] << (options[:message] || I18n.t('activerecord.errors.messages.speech_balloon_extend')) unless record.extend_speech_balloon.valid?\r
- end\r
-end\r
-\r
+++ /dev/null
-class ExtendSpeechValidator < ActiveModel::EachValidator\r
- def validate_each(record, attribute, value)\r
- record.errors[attribute] << (options[:message] || I18n.t('activerecord.errors.messages.speech_extend')) unless true # record.extend_speech.valid?\r
- end\r
-end\r
-\r
}\r
},\r
"speech_balloon": {\r
+ "columns": {\r
+ "speech_balloon_template_settings": {\r
+ "type": "extend"\r
+ }\r
+ },\r
"column_names": [\r
"panel_id",\r
+ "caption",\r
"speech_balloon_template_id",\r
"speech_balloon_template_classname",\r
"z",\r
"t",\r
- "speech_balloon_template_settings",\r
- "caption"\r
+ "speech_balloon_template_settings"\r
],\r
"associations": {\r
"belongs_to": [\r
}\r
},\r
"speech": {\r
+ "columns": {\r
+ "speech_balloon_template_settings": {\r
+ "type": "extend"\r
+ }\r
+ },\r
"column_names": [\r
"speech_balloon_id",\r
"speech_balloon_template_id",\r
}\r
},\r
"balloon": {\r
+ "columns": {\r
+ "speech_balloon_template_settings": {\r
+ "type": "extend"\r
+ }\r
+ },\r
"column_names": [\r
"speech_balloon_id",\r
"speech_balloon_template_id",\r
"system_picture_id",\r
"settings"\r
],\r
+ "extend_settings": {\r
+ "circle_speech_balloon_speech_balloon": {\r
+ "columns": {},\r
+ "column_names": []\r
+ },\r
+ "circle_speech_balloon_balloon": {\r
+ "columns": {},\r
+ "column_names": []\r
+ },\r
+ "circle_speech_balloon_speech": {\r
+ "columns": {},\r
+ "column_names": []\r
+ },\r
+ "plain_speech_balloon_speech_balloon": {\r
+ "columns": {},\r
+ "column_names": []\r
+ },\r
+ "square_speech_balloon_speech_balloon": {\r
+ "columns": {},\r
+ "column_names": []\r
+ }\r
+ },\r
"associations": {\r
"belongs_to": [\r
"system_picture"\r
"system_picture_id",\r
"settings"\r
],\r
+ "extend_settings": {\r
+ "pettanr_simple_format_writing_format": {\r
+ "columns": {},\r
+ "column_names": []\r
+ }\r
+ },\r
"associations": {\r
"belongs_to": [\r
"system_picture"\r
"caption",\r
"url"\r
],\r
+ "extend_settings": {\r
+ "pettanr_pettan_commons_v01_licenses": {\r
+ "columns": {\r
+ "open": {},\r
+ "commercial": {},\r
+ "official": {},\r
+ "attribution": {},\r
+ "derive": {},\r
+ "thumbnail": {},\r
+ "gif_convert": {},\r
+ "reverse": {},\r
+ "sync_vh": {},\r
+ "overlap": {}\r
+ },\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
+ },\r
"associations": {\r
"has_many": [\r
"licenses.by_license_group"\r
}\r
},\r
"license": {\r
+ "columns": {\r
+ "license_group_id": {},\r
+ "license_group_classname": {},\r
+ "name": {},\r
+ "caption": {},\r
+ "system_picture_id": {},\r
+ "url": {},\r
+ "license_group_settings": {\r
+ "type": "extend"\r
+ }\r
+ },\r
"column_names": [\r
"license_group_id",\r
"license_group_classname",\r
"summary": {\r
"type": "none"\r
},\r
- "edit": {\r
- "type": "none"\r
- }\r
+ "edit": {}\r
},\r
"writing_format": {\r
"symbol": {},\r
"summary": {\r
"type": "none"\r
},\r
- "edit": {\r
- "type": "none"\r
- }\r
+ "edit": {}\r
},\r
"license_group": {\r
"symbol": {},\r
"summary": {\r
"type": "none"\r
},\r
- "edit": {\r
- "type": "none"\r
- }\r
+ "edit": {}\r
},\r
"license": {\r
"symbol": {},\r
}\r
},\r
"summary": {},\r
- "edit": {\r
- "type": "none"\r
- }\r
+ "edit": {}\r
},\r
"author": {\r
"symbol": {},\r
"t"\r
]\r
},\r
+ "speech_balloon_template": {\r
+ "fields": {\r
+ "id": {\r
+ "args": {\r
+ "label": {\r
+ "type": "none"\r
+ },\r
+ "tag": {\r
+ "type": "hidden"\r
+ }\r
+ }\r
+ },\r
+ "name": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "classname": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "caption": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "t": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "number"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "system_picture_id": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "number"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "settings": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ }\r
+ },\r
+ "field_names": [\r
+ "id",\r
+ "name",\r
+ "classname",\r
+ "caption",\r
+ "t",\r
+ "system_picture_id",\r
+ "settings"\r
+ ]\r
+ },\r
+ "writing_format": {\r
+ "fields": {\r
+ "id": {\r
+ "args": {\r
+ "label": {\r
+ "type": "none"\r
+ },\r
+ "tag": {\r
+ "type": "hidden"\r
+ }\r
+ }\r
+ },\r
+ "name": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "classname": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "caption": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "system_picture_id": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "number"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "settings": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ }\r
+ },\r
+ "field_names": [\r
+ "id",\r
+ "name",\r
+ "classname",\r
+ "caption",\r
+ "system_picture_id",\r
+ "settings"\r
+ ]\r
+ },\r
+ "license_group": {\r
+ "fields": {\r
+ "id": {\r
+ "args": {\r
+ "label": {\r
+ "type": "none"\r
+ },\r
+ "tag": {\r
+ "type": "hidden"\r
+ }\r
+ }\r
+ },\r
+ "name": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "classname": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "caption": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "url": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ }\r
+ },\r
+ "field_names": [\r
+ "id",\r
+ "name",\r
+ "classname",\r
+ "caption",\r
+ "url"\r
+ ]\r
+ },\r
+ "license": {\r
+ "fields": {\r
+ "id": {\r
+ "args": {\r
+ "label": {\r
+ "type": "none"\r
+ },\r
+ "tag": {\r
+ "type": "hidden"\r
+ }\r
+ }\r
+ },\r
+ "license_group_id": {\r
+ "args": {\r
+ "label": {\r
+ "type": "none"\r
+ },\r
+ "tag": {\r
+ "type": "hidden"\r
+ }\r
+ }\r
+ },\r
+ "license_group_classname": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "name": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "caption": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "system_picture_id": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "number"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "url": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "license_group_settings": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ },\r
+ "credit_picture_settings": {\r
+ "args": {\r
+ "tag": {\r
+ "type": "text"\r
+ },\r
+ "row_break": true\r
+ }\r
+ }\r
+ },\r
+ "field_names": [\r
+ "id",\r
+ "license_group_id",\r
+ "license_group_classname",\r
+ "name",\r
+ "caption",\r
+ "system_picture_id",\r
+ "url",\r
+ "icense_group_settings",\r
+ "credit_picture_settings"\r
+ ]\r
+ },\r
"author": {\r
"fields": {\r
"id": {\r
"args": {\r
"parent_model_name": "license_group",\r
"boost": {\r
- "license_group": {}\r
+ "license_group": {},\r
+ "credit_picture": {\r
+ "extend_item_name": "credit_picture",\r
+ "extend_column_name": "license_group_classname"\r
+ }\r
}\r
}\r
},\r
"args": {\r
"list_name": "public"\r
}\r
+ },\r
+ "new": {\r
+ "type": "new"\r
+ },\r
+ "edit": {\r
+ "type": "edit"\r
}\r
}\r
},\r
},\r
"count_by_system_picture": {\r
"type": "count"\r
+ },\r
+ "new": {\r
+ "type": "new"\r
+ },\r
+ "edit": {\r
+ "type": "edit"\r
}\r
}\r
},\r
"args": {\r
"list_name": "public"\r
}\r
+ },\r
+ "new": {\r
+ "type": "new"\r
+ },\r
+ "edit": {\r
+ "type": "edit"\r
}\r
}\r
},\r
},\r
"count_by_system_picture": {\r
"type": "count"\r
+ },\r
+ "new": {\r
+ "type": "new"\r
+ },\r
+ "edit": {\r
+ "type": "edit"\r
}\r
}\r
},\r