OSDN Git Service

fix form extend
authoryasushiito <yas@pen-chan.jp>
Sun, 20 Apr 2014 02:08:35 +0000 (11:08 +0900)
committeryasushiito <yas@pen-chan.jp>
Sun, 20 Apr 2014 02:08:35 +0000 (11:08 +0900)
16 files changed:
app/assets/javascripts/manifest/work/forms.js.coffee.erb
app/assets/javascripts/manifest/work/items.js.coffee.erb
app/assets/javascripts/manifest/work/models.js.coffee.erb
app/assets/javascripts/manifest/work/profilers.js.coffee.erb
app/controllers/licenses_controller.rb
app/views/templates/r/form/_extend_form.html.erb
config/locales/pettanr.ja.yml
lib/local_manifest/form/field.rb
lib/locmare/booster.rb
lib/locmare/form.rb
lib/locmare/form/extend_field.rb
lib/locmare/form/field.rb
lib/manifest/item/boost.rb
lib/peta/item.rb
public/local_manifest.json
public/manifest.json

index 9df9ebc..f01e5a7 100644 (file)
         row_break: true,\r
       },\r
       license_group_settings: {\r
-        boost_name: 'license_group',\r
+        boost_name: 'license_group',\r
         row_break: true,\r
       },\r
       credit_picture_settings: {\r
-        boost_name: 'credit_picture',\r
+        boost_name: 'credit_picture',\r
         row_break: true,\r
       },\r
     },\r
       'open', \r
       'commercial', \r
       'official', \r
-      'attribution:', \r
+      'attribution', \r
       'derive', \r
       'thumbnail', \r
       'gif_convert', \r
         },\r
         row_break: true,\r
       }, \r
+      trackback: {\r
+        tag: {\r
+          type: 'number',\r
+        },\r
+        row_break: true,\r
+      }, \r
     },\r
     field_names: [\r
       'open', \r
       'commercial', \r
       'official', \r
-      'attribution:', \r
+      'attribution', \r
       'derive', \r
       'thumbnail', \r
       'gif_convert', \r
       'reverse', \r
       'sync_vh', \r
       'overlap', \r
+      'trackback', \r
     ],\r
   },\r
   pettanr_pettan_protected_v01_licenses_credit_picture: {\r
         },\r
         row_break: true,\r
       }, \r
+      trackback: {\r
+        tag: {\r
+          type: 'number',\r
+        },\r
+        row_break: true,\r
+      }, \r
     },\r
     field_names: [\r
       'open', \r
       'commercial', \r
       'official', \r
-      'attribution:', \r
+      'attribution', \r
       'derive', \r
       'thumbnail', \r
       'gif_convert', \r
       'reverse', \r
       'sync_vh', \r
       'overlap', \r
+      'trackback', \r
     ],\r
   },\r
   pettanr_pettan_public_v01_licenses_credit_picture: {\r
         },\r
         row_break: true,\r
       }, \r
-      source_url_off_btn_id: {\r
-        tag: {\r
-          type: 'number',\r
-        },\r
-        row_break: true,\r
-      }, \r
     },\r
     field_names: [\r
       'source_url_btn_id', \r
-      'source_url_off_btn_id', \r
     ],\r
   },\r
   pettanr_public_domain_v01_licenses_license: {\r
         },\r
         row_break: true,\r
       }, \r
+      trackback: {\r
+        tag: {\r
+          type: 'number',\r
+        },\r
+        row_break: true,\r
+      }, \r
     },\r
     field_names: [\r
       'open', \r
       'commercial', \r
       'official', \r
-      'attribution:', \r
+      'attribution', \r
       'derive', \r
       'thumbnail', \r
       'gif_convert', \r
       'reverse', \r
       'sync_vh', \r
       'overlap', \r
+      'trackback', \r
     ],\r
   },\r
   pettanr_public_domain_v01_licenses_credit_picture: {\r
         },\r
         row_break: true,\r
       }, \r
+      trackback: {\r
+        tag: {\r
+          type: 'number',\r
+        },\r
+        row_break: true,\r
+      }, \r
     },\r
     field_names: [\r
       'open', \r
       'commercial', \r
       'official', \r
-      'attribution:', \r
+      'attribution', \r
       'derive', \r
       'thumbnail', \r
       'gif_convert', \r
       'reverse', \r
       'sync_vh', \r
       'overlap', \r
+      'trackback', \r
     ],\r
   },\r
   pettanr_unknown_v01_licenses_credit_picture: {\r
index 2f99bda..39ebab3 100644 (file)
         # expand license_group_settings\r
         license_group: {\r
           resource_name: 'license',\r
+          engine_resource_name: 'license_groups',\r
+          engine_resource_extend_column_name: 'license_group_classname',\r
           extend_column_name: 'license_group_classname',\r
           settings_column_name: 'license_group_settings',\r
           extend_model_class_name: 'License',\r
         # expand license_settings\r
         license: {\r
           level: 'read',\r
+          engine_resource_name: 'license_groups',\r
+          engine_resource_extend_column_name: 'license_group_classname',\r
           extend_column_name: 'license_group_classname',\r
           extend_model_class_name: 'Attribute',\r
           extend_item_name: 'attribute',\r
         credit_picture: {\r
           level: 'read',\r
           resource_name: 'license',\r
+          engine_resource_name: 'license_groups',\r
+          engine_resource_extend_column_name: 'license_group_classname',\r
           extend_column_name: 'license_group_classname',\r
           settings_column_name: 'credit_picture_settings',\r
           extend_model_class_name: 'CreditPicture',\r
index 317a324..206aeda 100644 (file)
       },\r
     },\r
   },\r
+  pettanr_creative_commons_v30_licenses_license: {\r
+    attributes: {\r
+      open: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      commercial: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      official: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      attribution: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      derive: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      thumbnail: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      gif_convert: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      reverse: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      sync_vh: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      overlap: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+    },\r
+  },\r
+  pettanr_creative_commons_v30_licenses_credit_picture: {\r
+    attributes: {\r
+      source_url_btn_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      source_url_off_btn_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+    },\r
+  },\r
+  pettanr_creative_commons_v30_licenses_attribute: {\r
+    attributes: {\r
+      license_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      system_picture_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      artist_name: {\r
+        type: 'text',\r
+        rules : {\r
+          required: true,\r
+        }\r
+      },\r
+      caption: {\r
+        type: 'text',\r
+        rules : {\r
+        }\r
+      },\r
+      artist_url: {\r
+        type: 'text',\r
+        rules : {\r
+        }\r
+      },\r
+      source_url: {\r
+        type: 'text',\r
+        rules : {\r
+        }\r
+      },\r
+      more_permission_url: {\r
+        type: 'text',\r
+        rules : {\r
+        }\r
+      },\r
+    },\r
+  },\r
   pettanr_pettan_commons_v01_licenses_license: {\r
     attributes: {\r
       open: {\r
           number: true,\r
         }\r
       },\r
+      system_picture_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      artist_name: {\r
+        type: 'text',\r
+        rules : {\r
+          required: true,\r
+        }\r
+      },\r
+      caption: {\r
+        type: 'text',\r
+        rules : {\r
+          required: true,\r
+        }\r
+      },\r
+      sources: {\r
+        type: 'text',\r
+        rules : {\r
+          required: true,\r
+        }\r
+      },\r
+    },\r
+  },\r
+  pettanr_pettan_protected_v01_licenses_license: {\r
+    attributes: {\r
+      open: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      commercial: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      official: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      attribution: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      derive: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      thumbnail: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      gif_convert: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      reverse: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      sync_vh: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      overlap: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      trackback: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+    },\r
+  },\r
+  pettanr_pettan_protected_v01_licenses_credit_picture: {\r
+    attributes: {\r
+      source_url_btn_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      source_url_off_btn_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+    },\r
+  },\r
+  pettanr_pettan_protected_v01_licenses_attribute: {\r
+    attributes: {\r
+      license_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      system_picture_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      artist_name: {\r
+        type: 'text',\r
+        rules : {\r
+          required: true,\r
+        }\r
+      },\r
+      caption: {\r
+        type: 'text',\r
+        rules : {\r
+          required: true,\r
+        }\r
+      },\r
+      sources: {\r
+        type: 'text',\r
+        rules : {\r
+          required: true,\r
+        }\r
+      },\r
+    },\r
+  },\r
+  pettanr_pettan_public_v01_licenses_license: {\r
+    attributes: {\r
+      open: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      commercial: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      official: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      attribution: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      derive: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      thumbnail: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      gif_convert: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      reverse: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      sync_vh: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      overlap: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      trackback: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+    },\r
+  },\r
+  pettanr_pettan_public_v01_licenses_credit_picture: {\r
+    attributes: {\r
+      source_url_btn_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+    },\r
+  },\r
+  pettanr_pettan_public_v01_licenses_attribute: {\r
+    attributes: {\r
+      license_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      system_picture_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      artist_name: {\r
+        type: 'text',\r
+        rules : {\r
+          required: true,\r
+        }\r
+      },\r
+      caption: {\r
+        type: 'text',\r
+        rules : {\r
+          required: true,\r
+        }\r
+      },\r
+      sources: {\r
+        type: 'text',\r
+        rules : {\r
+          required: true,\r
+        }\r
+      },\r
+    },\r
+  },\r
+  pettanr_public_domain_v01_licenses_license: {\r
+    attributes: {\r
+      open: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      commercial: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      official: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      attribution: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      derive: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      thumbnail: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      gif_convert: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      reverse: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      sync_vh: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      overlap: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      trackback: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+    },\r
+  },\r
+  pettanr_public_domain_v01_licenses_credit_picture: {\r
+    attributes: {\r
+      source_url_btn_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      source_url_off_btn_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+    },\r
+  },\r
+  pettanr_public_domain_v01_licenses_attribute: {\r
+    attributes: {\r
+      license_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      system_picture_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      artist_name: {\r
+        type: 'text',\r
+        rules : {\r
+          required: true,\r
+        }\r
+      },\r
+      source_url: {\r
+        type: 'text',\r
+        rules : {\r
+          required: true,\r
+        }\r
+      },\r
+      note: {\r
+        type: 'text',\r
+        rules : {\r
+          required: true,\r
+        }\r
+      },\r
+    },\r
+  },\r
+  pettanr_unknown_v01_licenses_license: {\r
+    attributes: {\r
+      open: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      commercial: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      official: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      attribution: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      derive: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      thumbnail: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      gif_convert: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      reverse: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      sync_vh: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      overlap: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      trackback: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+    },\r
+  },\r
+  pettanr_unknown_v01_licenses_credit_picture: {\r
+    attributes: {\r
+      source_url_btn_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+      source_url_off_btn_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
+    },\r
+  },\r
+  pettanr_unknown_v01_licenses_attribute: {\r
+    attributes: {\r
+      license_id: {\r
+        type: 'number',\r
+        rules : {\r
+          required: true,\r
+          number: true,\r
+        }\r
+      },\r
       artist_name: {\r
         type: 'text',\r
         rules : {\r
index d3ecf66..3af686b 100644 (file)
     }, \r
   },\r
   picture: {\r
+    columns: {\r
+      license_group_settings: {\r
+        type: 'extend',\r
+      }, \r
+      credit_picture_settings: {\r
+        type: 'extend',\r
+      }, \r
+      license_settings: {\r
+        type: 'extend',\r
+      }, \r
+    },\r
     column_names: [\r
       'original_picture_id', \r
       'revision', \r
       'license_id', \r
       'md5', \r
       'artist_name', \r
-      'credit', \r
-      'settings', \r
-      'classname', \r
+      'license_group_settings', \r
+      'credit_picture_settings', \r
+      'license_settings', \r
+      'license_group_classname', \r
     ],\r
     associations: {\r
       belongs_to: [\r
     }, \r
   },\r
   resource_picture: {\r
+    columns: {\r
+      license_group_settings: {\r
+        type: 'extend',\r
+        args: {\r
+          boost_name: 'license_group',\r
+        },\r
+      }, \r
+      credit_picture_settings: {\r
+        type: 'extend',\r
+        args: {\r
+          boost_name: 'credit_picture',\r
+        },\r
+      }, \r
+      license_settings: {\r
+        type: 'extend',\r
+        args: {\r
+          boost_name: 'license',\r
+        },\r
+      }, \r
+    },\r
     column_names: [\r
       'original_picture_id', \r
       'revision', \r
       'license_id', \r
       'md5', \r
       'artist_name', \r
-      'credit', \r
-      'settings', \r
+      'license_group_settings', \r
+      'credit_picture_settings', \r
+      'license_settings', \r
       'picture_id', \r
-      'classname', \r
+      'license_group_classname', \r
     ],\r
     associations: {\r
       belongs_to: [\r
       'url', \r
     ],\r
     extend_settings: {\r
+      pettanr_creative_commons_v30_licenses_license: {\r
+        columns: {\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
+      pettanr_creative_commons_v30_licenses_credit_picture: {\r
+        columns: {\r
+        },\r
+        column_names: [\r
+          'source_url_btn_id', \r
+          'source_url_off_btn_id', \r
+        ],\r
+      },\r
       pettanr_pettan_commons_v01_licenses_license: {\r
         columns: {\r
         },\r
           'open', \r
           'commercial', \r
           'official', \r
-          'attribution:', \r
+          'attribution', \r
           'derive', \r
           'thumbnail', \r
           'gif_convert', \r
           'source_url_off_btn_id', \r
         ],\r
       },\r
+      pettanr_pettan_protected_v01_licenses_license: {\r
+        columns: {\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
+          'trackback', \r
+        ],\r
+      },\r
+      pettanr_pettan_protected_v01_licenses_credit_picture: {\r
+        columns: {\r
+        },\r
+        column_names: [\r
+          'source_url_btn_id', \r
+          'source_url_off_btn_id', \r
+        ],\r
+      },\r
+      pettanr_pettan_public_v01_licenses_license: {\r
+        columns: {\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
+          'trackback', \r
+        ],\r
+      },\r
+      pettanr_pettan_public_v01_licenses_credit_picture: {\r
+        columns: {\r
+        },\r
+        column_names: [\r
+          'source_url_btn_id', \r
+        ],\r
+      },\r
+      pettanr_public_domain_v01_licenses_license: {\r
+        columns: {\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
+          'trackback', \r
+        ],\r
+      },\r
+      pettanr_public_domain_v01_licenses_credit_picture: {\r
+        columns: {\r
+        },\r
+        column_names: [\r
+          'source_url_btn_id', \r
+          'source_url_off_btn_id', \r
+        ],\r
+      },\r
+      pettanr_unknown_v01_licenses_license: {\r
+        columns: {\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
+          'trackback', \r
+        ],\r
+      },\r
+      pettanr_unknown_v01_licenses_credit_picture: {\r
+        columns: {\r
+        },\r
+        column_names: [\r
+          'source_url_btn_id', \r
+          'source_url_off_btn_id', \r
+        ],\r
+      },\r
     },\r
     associations: {\r
       has_many: [\r
         },\r
       }, \r
     },\r
+    extend_settings: {\r
+      pettanr_creative_commons_v30_licenses_attribute: {\r
+        columns: {\r
+        },\r
+        column_names: [\r
+        ],\r
+      },\r
+      pettanr_pettan_commons_v01_licenses_attribute: {\r
+        columns: {\r
+        },\r
+        column_names: [\r
+        ],\r
+      },\r
+      pettanr_pettan_protected_v01_licenses_attribute: {\r
+        columns: {\r
+        },\r
+        column_names: [\r
+        ],\r
+      },\r
+      pettanr_pettan_public_v01_licenses_attribute: {\r
+        columns: {\r
+        },\r
+        column_names: [\r
+        ],\r
+      },\r
+      pettanr_public_domain_v01_licenses_attribute: {\r
+        columns: {\r
+        },\r
+        column_names: [\r
+        ],\r
+      },\r
+      pettanr_unknown_v01_licenses_attribute: {\r
+        columns: {\r
+        },\r
+        column_names: [\r
+        ],\r
+      },\r
+    },\r
     column_names: [\r
       'license_group_id', \r
       'license_group_classname', \r
index 8456d6e..fe93071 100644 (file)
@@ -64,4 +64,50 @@ class LicensesController < ApplicationController
     form_edit
   end
   
+  def create
+    @item = self.class.model.new
+    @item.supply_default 
+    @item.attributes = params[:license]
+    @item.overwrite @operators
+
+    if @item.save
+      respond_to do |format|
+        flash[:notice] = I18n.t('flash.notice.created', :model => self.class.model.model_name.human)
+        format.html { redirect_to @item }
+        format.json { render json: @item.to_json(self.class.model.show_json_opt), status: :created, location: @item }
+      end
+    else
+      flash[:notice] = I18n.t('flash.notice.not_created', :model => self.class.model.model_name.human)
+      render_new
+        format.html { render action: "new" }
+        format.json { render json: @item.errors, status: :unprocessable_entity }
+    end
+  end
+
+  def update
+    @item = self.class.model.edit(params[:id], @operators)
+    self.class.model.fold_extend_settings params
+    @item.attributes = params[:license]
+    @item.overwrite 
+    respond_to do |format|
+      if @item.save
+        flash[:notice] = I18n.t('flash.notice.updated', :model => self.class.model.model_name.human)
+        format.html { redirect_to @item }
+        format.json { head :ok }
+      else
+        flash[:notice] = I18n.t('flash.notice.not_updated', :model => self.class.model.model_name.human)
+        format.html { render action: "edit" }
+        format.json { render json: @item.errors, status: :unprocessable_entity }
+      end
+    end
+  end
+
+  def destroy
+    @item = self.class.model.edit(params[:id], @operators)
+    respond_to do |format|
+        flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => self.class.model.model_name.human)
+        format.html { redirect_to @item }
+        format.json { render json: @item.errors, status: :unprocessable_entity }
+    end
+  end
 end
index b9868b6..2432c7d 100644 (file)
@@ -1,4 +1,4 @@
-<%= form_for(form.item) do |f| %>
+<%= fields_for(form.field_name, form.item) do |sf| %>
   <%= render 'system/error_explanation', :obj => form.item %>
-  <%= render form.fields_template_name, :form => form, :f => f %>
+  <%= render form.fields_template_name, :form => form %>
 <% end %>
index 0581854..a254fb1 100644 (file)
@@ -369,6 +369,8 @@ ja:
       provider_original_picture:
         created_at: 作成
         updated_at: 更新
+      pettanr_unknown_v01_licenses/license:
+          open: ライセンス
   picture_io:
     error: 画像保管庫との手続きで異常が発生しました。
   select_items:
index a6edd11..83c59d3 100644 (file)
@@ -6,7 +6,7 @@ module LocalManifest
     class Field < ManifestBase::NameValues
       include FieldModule
       
-      attr :label, :tag, :helpers, :row_break
+      attr :label, :tag, :helpers, :row_break, :boost_name
       
       def set_default
         super
@@ -22,16 +22,13 @@ module LocalManifest
         @tag = ManifestBase.load_type_args self, @values, 'tag', TagFactory
         @helpers = ManifestBase.load_type_name_args self, @values, 'helpers', HelperFactory
         @row_break = @values['row_break']
+        # @boost_name = @values['boost_name']
       end
       
       def part?
         @part_name != nil 
       end
       
-      def form_field_name
-        form_name + '[' + @name + ']'
-      end
-      
       def form_name
         @parent.name
       end
index be7736f..a8201d4 100644 (file)
@@ -13,16 +13,25 @@ module Locmare
       end
     end
     
+    def engine_resource_name
+      @manifest.engine_resource_name || self.resource.table_name
+    end
+    
     # get engine resource from system resource manifest
     def my_engine_resource
-      Manifest.manifest.system_resources.engine_resources[self.resource.table_name]
+      Manifest.manifest.system_resources.engine_resources[self.engine_resource_name]
+    end
+    
+    def engine_classname
+      return self.resource.classname unless @manifest.engine_resource_extend_column_name
+      self.resource.attributes[@manifest.engine_resource_extend_column_name]
     end
     
     # get snake_case engine name
     # ex) circle_speech_balloon
     # use to url, model_name generating
     def engine_name
-      self.my_engine_resource.resource_items[self.resource.classname]
+      self.my_engine_resource.resource_items[self.engine_classname]
     end
     
     def model_name
index ce92660..d2463d3 100644 (file)
@@ -54,10 +54,9 @@ module Locmare
     def init_fields
       @manifest.each_field do |field_name, field_manifest| 
         if boost_name = @item.class.find_boost_name(field_name)
-        p [field_name]
           extend_form_name = @item.boosters[boost_name].model_name
           extend_item = @item.boosters[boost_name].extend_item
-          @fields[field_name] = ExtendForm.new self, extend_form_name, extend_item, @mounted, @operators
+          @fields[field_name] = ExtendForm.new self, extend_form_name, extend_item, @mounted, @operators, field_name
         else
           @fields[field_name] = Field.new self, field_name, field_manifest
         end
@@ -87,10 +86,11 @@ module Locmare
   end
   
   class ExtendForm < FormBase
-    attr :parent
+    attr :parent, :field_name
     
-    def initialize parent, form_name, item, mounted, operators
+    def initialize parent, form_name, item, mounted, operators, field_name
       @parent = parent
+      @field_name = field_name
       super form_name, item, mounted, operators
       self.init_fields
     end
index 01abed5..22bd521 100644 (file)
@@ -38,7 +38,7 @@ module Locmare
       end
       
       def form_field_name
-        @field_manifest.form_field_name
+        self.form.parent.form_name + '[' + self.form.field_name + '][' + @field_name + ']'
       end
       
       def form_name
index 5fa970b..605e01c 100644 (file)
@@ -41,7 +41,7 @@ module Locmare
       end
       
       def form_field_name
-        @field_manifest.form_field_name
+        self.form_name + '[' + @field_name + ']'
       end
       
       def form_name
index 2c9215e..60509e8 100644 (file)
@@ -1,7 +1,8 @@
 module Manifest
   module ItemModule
     class Boost < ManifestBase::NameValues
-      attr :level, :resource_name, :extend_column_name, :settings_column_name, 
+      attr :level, :resource_name, :engine_resource_name, :engine_resource_extend_column_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
@@ -10,6 +11,10 @@ module Manifest
         super
         @values['level'] ||= 'post'
         @values['resource_name'] ||= @name
+        # do refactoring!
+        # resource_picture profiler extend by license group through license
+        # @values['engine_resource_name'] ||= @name # suppling booster
+        # @values['engine_resource_extend_column_name'] ||= @name # suppling booster
         @values['extend_column_name'] ||= @values['resource_name'] + '_classname'
         @values['settings_column_name'] ||= @values['resource_name'] + '_settings'
         @values['foreign_key'] ||= @values['resource_name'] + '_id'
@@ -19,6 +24,8 @@ module Manifest
         super
         @level = @values['level']
         @resource_name = @values['resource_name']
+        @engine_resource_name = @values['engine_resource_name']
+        @engine_resource_extend_column_name = @values['engine_resource_extend_column_name']
         @extend_column_name = @values['extend_column_name']
         @settings_column_name = @values['settings_column_name']
         @foreign_key = @values['foreign_key']
index 0fd4b80..0a3ba0b 100644 (file)
@@ -175,12 +175,12 @@ module Peta
     
     def boost boost_manifest
       @boosters ||= {}
-      @boosters[boost_manifest.name] = Locmare::Booster.new(boost_manifest, self)
+      @boosters[boost_manifest.name] ||= Locmare::Booster.new(boost_manifest, self)
     end
     
     def boosters
       @boosters
-          end
+    end
     
     def extend_column? column_name
       self.class.extend_column? column_name
index 02780a3..9f48230 100644 (file)
       }\r
     },\r
     "picture": {\r
+      "columns": {\r
+        "license_group_settings": {\r
+          "type": "extend"\r
+        },\r
+        "credit_picture_settings": {\r
+          "type": "extend"\r
+        },\r
+        "license_settings": {\r
+          "type": "extend"\r
+        }\r
+      },\r
       "column_names": [\r
         "original_picture_id",\r
         "revision",\r
         "license_id",\r
         "md5",\r
         "artist_name",\r
-        "credit",\r
-        "settings",\r
-        "classname"\r
+        "license_group_settings",\r
+        "credit_picture_settings",\r
+        "license_settings",\r
+        "license_group_classname"\r
       ],\r
       "associations": {\r
         "belongs_to": [\r
       }\r
     },\r
     "resource_picture": {\r
+      "columns": {\r
+        "license_group_settings": {\r
+          "type": "extend",\r
+          "args": {\r
+            "boost_name": "license_group"\r
+          }\r
+        },\r
+        "credit_picture_settings": {\r
+          "type": "extend",\r
+          "args": {\r
+            "boost_name": "credit_picture"\r
+          }\r
+        },\r
+        "license_settings": {\r
+          "type": "extend",\r
+          "args": {\r
+            "boost_name": "license"\r
+          }\r
+        }\r
+      },\r
       "column_names": [\r
         "original_picture_id",\r
         "revision",\r
         "license_id",\r
         "md5",\r
         "artist_name",\r
-        "credit",\r
-        "settings",\r
+        "license_group_settings",\r
+        "credit_picture_settings",\r
+        "license_settings",\r
         "picture_id",\r
-        "classname"\r
+        "license_group_classname"\r
       ],\r
       "associations": {\r
         "belongs_to": [\r
       }\r
     },\r
     "writing_format": {\r
+      "columns": {\r
+        "settings": {\r
+          "type": "json"\r
+        }\r
+      },\r
       "column_names": [\r
         "name",\r
         "classname",\r
         "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_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_license": {\r
           "columns": {},\r
           "column_names": [\r
             "open",\r
             "commercial",\r
             "official",\r
-            "attribution:",\r
+            "attribution",\r
             "derive",\r
             "thumbnail",\r
             "gif_convert",\r
             "source_url_btn_id",\r
             "source_url_off_btn_id"\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
+            "trackback"\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_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
+            "trackback"\r
+          ]\r
+        },\r
+        "pettanr_pettan_public_v01_licenses_credit_picture": {\r
+          "columns": {},\r
+          "column_names": [\r
+            "source_url_btn_id"\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
+            "trackback"\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_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
+            "trackback"\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
           }\r
         }\r
       },\r
+      "extend_settings": {\r
+        "pettanr_creative_commons_v30_licenses_attribute": {\r
+          "columns": {},\r
+          "column_names": []\r
+        },\r
+        "pettanr_pettan_commons_v01_licenses_attribute": {\r
+          "columns": {},\r
+          "column_names": []\r
+        },\r
+        "pettanr_pettan_protected_v01_licenses_attribute": {\r
+          "columns": {},\r
+          "column_names": []\r
+        },\r
+        "pettanr_pettan_public_v01_licenses_attribute": {\r
+          "columns": {},\r
+          "column_names": []\r
+        },\r
+        "pettanr_public_domain_v01_licenses_attribute": {\r
+          "columns": {},\r
+          "column_names": []\r
+        },\r
+        "pettanr_unknown_v01_licenses_attribute": {\r
+          "columns": {},\r
+          "column_names": []\r
+        }\r
+      },\r
       "column_names": [\r
         "license_group_id",\r
         "license_group_classname",\r
         "open",\r
         "commercial",\r
         "official",\r
-        "attribution:",\r
+        "attribution",\r
         "derive",\r
         "thumbnail",\r
         "gif_convert",\r
             "type": "number"\r
           },\r
           "row_break": true\r
+        },\r
+        "trackback": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
         }\r
       },\r
       "field_names": [\r
         "open",\r
         "commercial",\r
         "official",\r
-        "attribution:",\r
+        "attribution",\r
         "derive",\r
         "thumbnail",\r
         "gif_convert",\r
         "reverse",\r
         "sync_vh",\r
-        "overlap"\r
+        "overlap",\r
+        "trackback"\r
       ]\r
     },\r
     "pettanr_pettan_protected_v01_licenses_credit_picture": {\r
             "type": "number"\r
           },\r
           "row_break": true\r
+        },\r
+        "trackback": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
         }\r
       },\r
       "field_names": [\r
         "open",\r
         "commercial",\r
         "official",\r
-        "attribution:",\r
+        "attribution",\r
         "derive",\r
         "thumbnail",\r
         "gif_convert",\r
         "reverse",\r
         "sync_vh",\r
-        "overlap"\r
+        "overlap",\r
+        "trackback"\r
       ]\r
     },\r
     "pettanr_pettan_public_v01_licenses_credit_picture": {\r
             "type": "number"\r
           },\r
           "row_break": true\r
-        },\r
-        "source_url_off_btn_id": {\r
-          "tag": {\r
-            "type": "number"\r
-          },\r
-          "row_break": true\r
         }\r
       },\r
       "field_names": [\r
-        "source_url_btn_id",\r
-        "source_url_off_btn_id"\r
+        "source_url_btn_id"\r
       ]\r
     },\r
     "pettanr_public_domain_v01_licenses_license": {\r
             "type": "number"\r
           },\r
           "row_break": true\r
+        },\r
+        "trackback": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
         }\r
       },\r
       "field_names": [\r
         "open",\r
         "commercial",\r
         "official",\r
-        "attribution:",\r
+        "attribution",\r
         "derive",\r
         "thumbnail",\r
         "gif_convert",\r
         "reverse",\r
         "sync_vh",\r
-        "overlap"\r
+        "overlap",\r
+        "trackback"\r
       ]\r
     },\r
     "pettanr_public_domain_v01_licenses_credit_picture": {\r
             "type": "number"\r
           },\r
           "row_break": true\r
+        },\r
+        "trackback": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
         }\r
       },\r
       "field_names": [\r
         "open",\r
         "commercial",\r
         "official",\r
-        "attribution:",\r
+        "attribution",\r
         "derive",\r
         "thumbnail",\r
         "gif_convert",\r
         "reverse",\r
         "sync_vh",\r
-        "overlap"\r
+        "overlap",\r
+        "trackback"\r
       ]\r
     },\r
     "pettanr_unknown_v01_licenses_credit_picture": {\r
index 26f1525..d229729 100644 (file)
         "boost": {\r
           "license_group": {\r
             "resource_name": "license",\r
+            "engine_resource_name": "license_groups",\r
+            "engine_resource_extend_column_name": "license_group_classname",\r
             "extend_column_name": "license_group_classname",\r
             "settings_column_name": "license_group_settings",\r
             "extend_model_class_name": "License",\r
           },\r
           "license": {\r
             "level": "read",\r
+            "engine_resource_name": "license_groups",\r
+            "engine_resource_extend_column_name": "license_group_classname",\r
             "extend_column_name": "license_group_classname",\r
             "extend_model_class_name": "Attribute",\r
             "extend_item_name": "attribute"\r
           "credit_picture": {\r
             "level": "read",\r
             "resource_name": "license",\r
+            "engine_resource_name": "license_groups",\r
+            "engine_resource_extend_column_name": "license_group_classname",\r
             "extend_column_name": "license_group_classname",\r
             "settings_column_name": "credit_picture_settings",\r
             "extend_model_class_name": "CreditPicture",\r
         }\r
       }\r
     },\r
+    "pettanr_creative_commons_v30_licenses_license": {\r
+      "attributes": {\r
+        "open": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "commercial": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "official": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "attribution": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "derive": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "thumbnail": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "gif_convert": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "reverse": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "sync_vh": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "overlap": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "pettanr_creative_commons_v30_licenses_credit_picture": {\r
+      "attributes": {\r
+        "source_url_btn_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "source_url_off_btn_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "pettanr_creative_commons_v30_licenses_attribute": {\r
+      "attributes": {\r
+        "license_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "system_picture_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "artist_name": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "artist_url": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "source_url": {\r
+          "type": "text",\r
+          "rules": {}\r
+        },\r
+        "more_permission_url": {\r
+          "type": "text",\r
+          "rules": {}\r
+        }\r
+      }\r
+    },\r
     "pettanr_pettan_commons_v01_licenses_license": {\r
       "attributes": {\r
         "open": {\r
             "number": true\r
           }\r
         },\r
+        "system_picture_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "artist_name": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "sources": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "pettanr_pettan_protected_v01_licenses_license": {\r
+      "attributes": {\r
+        "open": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "commercial": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "official": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "attribution": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "derive": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "thumbnail": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "gif_convert": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "reverse": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "sync_vh": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "overlap": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "trackback": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "pettanr_pettan_protected_v01_licenses_credit_picture": {\r
+      "attributes": {\r
+        "source_url_btn_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "source_url_off_btn_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "pettanr_pettan_protected_v01_licenses_attribute": {\r
+      "attributes": {\r
+        "license_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "system_picture_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "artist_name": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "sources": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "pettanr_pettan_public_v01_licenses_license": {\r
+      "attributes": {\r
+        "open": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "commercial": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "official": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "attribution": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "derive": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "thumbnail": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "gif_convert": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "reverse": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "sync_vh": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "overlap": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "trackback": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "pettanr_pettan_public_v01_licenses_credit_picture": {\r
+      "attributes": {\r
+        "source_url_btn_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "pettanr_pettan_public_v01_licenses_attribute": {\r
+      "attributes": {\r
+        "license_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "system_picture_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "artist_name": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "caption": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "sources": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "pettanr_public_domain_v01_licenses_license": {\r
+      "attributes": {\r
+        "open": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "commercial": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "official": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "attribution": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "derive": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "thumbnail": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "gif_convert": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "reverse": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "sync_vh": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "overlap": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "trackback": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "pettanr_public_domain_v01_licenses_credit_picture": {\r
+      "attributes": {\r
+        "source_url_btn_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "source_url_off_btn_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "pettanr_public_domain_v01_licenses_attribute": {\r
+      "attributes": {\r
+        "license_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "system_picture_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "artist_name": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "source_url": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        },\r
+        "note": {\r
+          "type": "text",\r
+          "rules": {\r
+            "required": true\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "pettanr_unknown_v01_licenses_license": {\r
+      "attributes": {\r
+        "open": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "commercial": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "official": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "attribution": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "derive": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "thumbnail": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "gif_convert": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "reverse": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "sync_vh": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "overlap": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "trackback": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "pettanr_unknown_v01_licenses_credit_picture": {\r
+      "attributes": {\r
+        "source_url_btn_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
+        "source_url_off_btn_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "pettanr_unknown_v01_licenses_attribute": {\r
+      "attributes": {\r
+        "license_id": {\r
+          "type": "number",\r
+          "rules": {\r
+            "required": true,\r
+            "number": true\r
+          }\r
+        },\r
         "artist_name": {\r
           "type": "text",\r
           "rules": {\r