OSDN Git Service

670c9164e40612b1761e88b45bff4556044cf174
[pettanr/pettanr.git] / app / assets / javascripts / manifest / work / models.js.coffee.erb
1 #マニフェスト\r
2 @models = {\r
3   scroll: {\r
4     associations: {\r
5       belongs_to: {\r
6         author: {\r
7         }, \r
8       },\r
9       has_many: {\r
10         scroll_panels: {\r
11         }, \r
12         panels: {\r
13           through: 'scroll_panel',\r
14         }, \r
15       },\r
16     },\r
17     attributes: {\r
18       title: {\r
19         type: 'text',\r
20         rules : {\r
21           required: true,\r
22         }\r
23       },\r
24       description: {\r
25         type: 'text',\r
26         rules : {\r
27         }\r
28       },\r
29       visible: {\r
30         type: 'number',\r
31         rules : {\r
32           required: true,\r
33           number: true,\r
34         },\r
35         source: {\r
36           type: 'magic_number',\r
37           args: {\r
38             select_item_name: 'scroll_visible_items',\r
39           },\r
40         },\r
41       },\r
42       author_id: {\r
43         type: 'number',\r
44         rules : {\r
45           required: true,\r
46           number: true,\r
47         },\r
48       },\r
49     },\r
50     lists: {\r
51       public: {\r
52         type: 'public',\r
53       },\r
54       private: {\r
55         type: 'private',\r
56       },\r
57       by_author: {\r
58         type: 'filter',\r
59         args: {\r
60         },\r
61       },\r
62       by_panel: {\r
63         type: 'through_filter',\r
64         args: {\r
65           through: 'scroll_panels',\r
66         },\r
67       },\r
68       play: {\r
69         type: 'play',\r
70         args: {\r
71           filter_item_name: 'scroll',\r
72           filter_model_name: 'scroll_panel',\r
73           filter_key: 'scroll_id',\r
74         },\r
75       },\r
76     },\r
77   },\r
78   scroll_panel: {\r
79     associations: {\r
80       belongs_to: {\r
81         panel: {\r
82         }, \r
83         scroll: {\r
84         }, \r
85       },\r
86       has_many: {\r
87       },\r
88     },\r
89     attributes: {\r
90       scroll_id: {\r
91         type: 'number',\r
92         rules : {\r
93           required: true,\r
94           number: true,\r
95         }\r
96       },\r
97       panel_id: {\r
98         type: 'number',\r
99         rules : {\r
100           required: true,\r
101           number: true,\r
102         }\r
103       },\r
104       t: {\r
105         type: 'number',\r
106         rules : {\r
107           required: true,\r
108           number: true,\r
109           min: 0,\r
110         }\r
111       },\r
112       author_id: {\r
113         type: 'number',\r
114         rules : {\r
115           required: true,\r
116           number: true,\r
117         }\r
118       },\r
119     },\r
120     tree: {\r
121       owner: 'scroll',\r
122     },\r
123     lists: {\r
124       public: {\r
125         type: 'public',\r
126       },\r
127       private: {\r
128         type: 'private',\r
129       },\r
130       by_scroll: {\r
131         type: 'filter',\r
132       },\r
133       by_panel: {\r
134         type: 'filter',\r
135       },\r
136     },\r
137   },\r
138   comic: {\r
139     associations: {\r
140       belongs_to: {\r
141         author: {\r
142         }, \r
143       },\r
144       has_many: {\r
145         stories: {\r
146         }, \r
147       },\r
148     },\r
149     attributes: {\r
150       title: {\r
151         type: 'text',\r
152         rules : {\r
153           required: true,\r
154         }\r
155       },\r
156       description: {\r
157         type: 'text',\r
158         rules : {\r
159         }\r
160       },\r
161       visible: {\r
162         type: 'number',\r
163         rules : {\r
164           required: true,\r
165           number: true,\r
166         },\r
167         source: {\r
168           type: 'magic_number',\r
169           args: {\r
170             select_item_name: 'comic_visible_items',\r
171           },\r
172         },\r
173       },\r
174       author_id: {\r
175         type: 'number',\r
176         rules : {\r
177           required: true,\r
178           number: true,\r
179         }\r
180       },\r
181     },\r
182     lists: {\r
183       public: {\r
184         type: 'public',\r
185       },\r
186       private: {\r
187         type: 'private',\r
188       },\r
189       by_author: {\r
190         type: 'filter',\r
191       },\r
192     },\r
193   },\r
194   story: {\r
195     associations: {\r
196       belongs_to: {\r
197         comic: {\r
198         }, \r
199       },\r
200       has_many: {\r
201         story_sheets: {\r
202         }, \r
203         sheets: {\r
204           through: 'story_sheets',\r
205         }, \r
206       },\r
207     },\r
208     attributes: {\r
209       comic_id: {\r
210         type: 'number',\r
211         rules : {\r
212           number: true,\r
213         }\r
214       },\r
215       title: {\r
216         type: 'text',\r
217         rules : {\r
218         }\r
219       },\r
220       description: {\r
221         type: 'text',\r
222         rules : {\r
223         }\r
224       },\r
225       t: {\r
226         type: 'number',\r
227         rules : {\r
228           required: true,\r
229           number: true,\r
230           min: 0,\r
231         }\r
232       },\r
233       visible: {\r
234         type: 'number',\r
235         rules : {\r
236           required: true,\r
237           number: true,\r
238         },\r
239         source: {\r
240           type: 'magic_number',\r
241           args: {\r
242             select_item_name: 'story_visible_items',\r
243           },\r
244         },\r
245       },\r
246     },\r
247     tree: {\r
248       owner: 'comic',\r
249     },\r
250     lists: {\r
251       public: {\r
252         type: 'public',\r
253       },\r
254       private: {\r
255         type: 'private',\r
256       },\r
257       by_comic: {\r
258         type: 'filter',\r
259       },\r
260       by_sheet: {\r
261         type: 'through_filter',\r
262         args: {\r
263           through: 'story_sheets',\r
264         },\r
265       },\r
266       by_author: {\r
267         type: 'foreign_filter',\r
268       },\r
269       play: {\r
270         type: 'play',\r
271       },\r
272     },\r
273   },\r
274   story_sheet: {\r
275     associations: {\r
276       belongs_to: {\r
277         story: {\r
278         }, \r
279         sheet: {\r
280         }, \r
281       },\r
282       has_many: {\r
283       },\r
284     },\r
285     attributes: {\r
286       story_id: {\r
287         type: 'number',\r
288         rules : {\r
289           number: true,\r
290         }\r
291       },\r
292       sheet_id: {\r
293         type: 'number',\r
294         rules : {\r
295           number: true,\r
296         }\r
297       },\r
298       t: {\r
299         type: 'number',\r
300         rules : {\r
301           required: true,\r
302           number: true,\r
303           min: 0,\r
304         }\r
305       },\r
306       author_id: {\r
307         type: 'number',\r
308         rules : {\r
309           required: true,\r
310           number: true,\r
311         }\r
312       },\r
313     },\r
314     tree: {\r
315       owner: 'story',\r
316     },\r
317     lists: {\r
318       public: {\r
319         type: 'public',\r
320       },\r
321       private: {\r
322         type: 'private',\r
323       },\r
324       by_story: {\r
325         type: 'filter',\r
326       },\r
327       by_sheet: {\r
328         type: 'filter',\r
329       },\r
330     },\r
331   },\r
332   sheet: {\r
333     associations: {\r
334       belongs_to: {\r
335         author: {\r
336         }, \r
337       },\r
338       has_many: {\r
339         story_sheets: {\r
340         }, \r
341         stories: {\r
342           through: 'story_sheets',\r
343         }, \r
344         sheet_panels: {\r
345         }, \r
346         panels: {\r
347           through: 'sheet_panels',\r
348         }, \r
349       },\r
350     },\r
351     attributes: {\r
352       caption: {\r
353         type: 'text',\r
354         rules : {\r
355         }\r
356       },\r
357       width: {\r
358         type: 'number',\r
359         rules : {\r
360           required: true,\r
361           number: true,\r
362         }\r
363       },\r
364       height: {\r
365         type: 'number',\r
366         rules : {\r
367           required: true,\r
368           number: true,\r
369         }\r
370       },\r
371       visible: {\r
372         type: 'number',\r
373         rules : {\r
374           required: true,\r
375           number: true,\r
376         },\r
377         source: {\r
378           type: 'magic_number',\r
379           args: {\r
380             select_item_name: 'sheet_visible_items',\r
381           },\r
382         },\r
383       },\r
384       author_id: {\r
385         type: 'number',\r
386         rules : {\r
387           required: true,\r
388           number: true,\r
389         }\r
390       },\r
391     },\r
392     lists: {\r
393       public: {\r
394         type: 'public',\r
395       },\r
396       private: {\r
397         type: 'private',\r
398       },\r
399       by_story: {\r
400         type: 'through_filter',\r
401         args: {\r
402           through: 'story_sheets',\r
403         },\r
404       },\r
405       by_panel: {\r
406         type: 'through_filter',\r
407         args: {\r
408           through: 'sheet_panels',\r
409         },\r
410       },\r
411       by_author: {\r
412         type: 'filter',\r
413       },\r
414       play: {\r
415         type: 'play',\r
416       },\r
417     },\r
418   },\r
419   sheet_panel: {\r
420     associations: {\r
421       belongs_to: {\r
422         sheet: {\r
423         }, \r
424         panel: {\r
425         }, \r
426       },\r
427       has_many: {\r
428       },\r
429     },\r
430     attributes: {\r
431       sheet_id: {\r
432         type: 'number',\r
433         rules : {\r
434           number: true,\r
435         }\r
436       },\r
437       panel_id: {\r
438         type: 'number',\r
439         rules : {\r
440           number: true,\r
441         }\r
442       },\r
443       x: {\r
444         type: 'number',\r
445         rules : {\r
446           required: true,\r
447           number: true,\r
448         }\r
449       },\r
450       y: {\r
451         type: 'number',\r
452         rules : {\r
453           required: true,\r
454           number: true,\r
455         }\r
456       },\r
457       z: {\r
458         type: 'number',\r
459         rules : {\r
460           required: true,\r
461           number: true,\r
462           min: 1,\r
463         }\r
464       },\r
465       t: {\r
466         type: 'number',\r
467         rules : {\r
468           required: true,\r
469           number: true,\r
470           min: 0,\r
471         }\r
472       },\r
473       author_id: {\r
474         type: 'number',\r
475         rules : {\r
476           number: true,\r
477         }\r
478       },\r
479     },\r
480     tree: {\r
481       owner: 'sheet',\r
482     },\r
483     lists: {\r
484       public: {\r
485         type: 'public',\r
486       },\r
487       private: {\r
488         type: 'private',\r
489       },\r
490       by_sheet: {\r
491         type: 'filter',\r
492       },\r
493       by_panel: {\r
494         type: 'filter',\r
495       },\r
496     },\r
497   },\r
498   panel: {\r
499     associations: {\r
500       belongs_to: {\r
501         author: {\r
502         }, \r
503       },\r
504       has_many: {\r
505         scroll_panels: {\r
506         }, \r
507         scrolls: {\r
508           through: 'scroll_panels',\r
509         }, \r
510         sheet_panels: {\r
511         }, \r
512         sheets: {\r
513           through: 'sheet_panels',\r
514         }, \r
515         panel_pictures: {\r
516         }, \r
517         speech_balloons: {\r
518         }, \r
519         ground_pictures: {\r
520         }, \r
521         ground_colors: {\r
522         }, \r
523       },\r
524     },\r
525     attributes: {\r
526       width: {\r
527         type: 'number',\r
528         rules : {\r
529           required: true,\r
530           number: true,\r
531           min: 1,\r
532         }\r
533       },\r
534       height: {\r
535         type: 'number',\r
536         rules : {\r
537           required: true,\r
538           number: true,\r
539           min: 1,\r
540         }\r
541       },\r
542       border: {\r
543         type: 'number',\r
544         rules : {\r
545           required: true,\r
546           number: true,\r
547           min: 0,\r
548         }\r
549       },\r
550       caption: {\r
551         type: 'text',\r
552         rules : {\r
553         }\r
554       },\r
555       publish: {\r
556         type: 'number',\r
557         rules : {\r
558           required: true,\r
559           number: true,\r
560         },\r
561         source: {\r
562           type: 'magic_number',\r
563           args: {\r
564             select_item_name: 'panel_visible_items',\r
565           },\r
566         },\r
567       },\r
568       author_id: {\r
569         type: 'number',\r
570         rules : {\r
571           required: true,\r
572           number: true,\r
573         }\r
574       },\r
575     },\r
576     lists: {\r
577       public: {\r
578         type: 'public',\r
579       },\r
580       private: {\r
581         type: 'private',\r
582       },\r
583       by_scroll: {\r
584         type: 'through_filter',\r
585         args: {\r
586           through: 'scroll_panels',\r
587         },\r
588       },\r
589       by_sheet: {\r
590         type: 'through_filter',\r
591         args: {\r
592           through: 'sheet_panels',\r
593         },\r
594       },\r
595       by_author: {\r
596         type: 'filter',\r
597       },\r
598       by_speech_balloon_template: {\r
599         type: 'through_filter',\r
600       },\r
601     },\r
602   },\r
603   panel_picture: {\r
604     associations: {\r
605       belongs_to: {\r
606         panel: {\r
607         }, \r
608       },\r
609       has_many: {\r
610       },\r
611     },\r
612     attributes: {\r
613       panel_id: {\r
614         type: 'number',\r
615         rules : {\r
616           number: true,\r
617         }\r
618       },\r
619       picture_id: {\r
620         type: 'number',\r
621         rules : {\r
622           required: true,\r
623           number: true,\r
624         }\r
625       },\r
626       caption: {\r
627         type: 'text',\r
628         rules : {\r
629         }\r
630       },\r
631       x: {\r
632         type: 'number',\r
633         rules : {\r
634           required: true,\r
635           number: true,\r
636         }\r
637       },\r
638       y: {\r
639         type: 'number',\r
640         rules : {\r
641           required: true,\r
642           number: true,\r
643         }\r
644       },\r
645       width: {\r
646         type: 'number',\r
647         rules : {\r
648           required: true,\r
649           number: true,\r
650         }\r
651       },\r
652       height: {\r
653         type: 'number',\r
654         rules : {\r
655           required: true,\r
656           number: true,\r
657         }\r
658       },\r
659       link: {\r
660         type: 'text',\r
661         rules : {\r
662           url: true,\r
663         }\r
664       },\r
665       z: {\r
666         type: 'number',\r
667         rules : {\r
668           required: true,\r
669           number: true,\r
670           min: 1,\r
671         }\r
672       },\r
673       t: {\r
674         type: 'number',\r
675         rules : {\r
676           required: true,\r
677           number: true,\r
678           min: 0,\r
679         }\r
680       },\r
681     },\r
682     tree: {\r
683       owner: 'panel',\r
684       panel: 'panel',\r
685     },\r
686     lists: {\r
687       public: {\r
688         type: 'public',\r
689       },\r
690       private: {\r
691         type: 'private',\r
692       },\r
693       by_panel: {\r
694         type: 'filter',\r
695       },\r
696       by_author: {\r
697         type: 'foreign_filter',\r
698       },\r
699     },\r
700   },\r
701   speech_balloon: {\r
702     extend_column_name: 'classname', \r
703     associations: {\r
704       belongs_to: {\r
705         panel: {\r
706         }, \r
707       },\r
708       has_many: {\r
709       },\r
710       has_one: {\r
711         balloon: {\r
712         }, \r
713         speech: {\r
714         }, \r
715       },\r
716     },\r
717     attributes: {\r
718       panel_id: {\r
719         type: 'number',\r
720         rules : {\r
721           number: true,\r
722         }\r
723       },\r
724       speech_balloon_template_id: {\r
725         type: 'number',\r
726         rules : {\r
727           required: true,\r
728           number: true,\r
729         }\r
730       },\r
731       classname: {\r
732         type: 'text',\r
733         rules : {\r
734           required: true,\r
735         }\r
736       },\r
737       z: {\r
738         type: 'number',\r
739         rules : {\r
740           required: true,\r
741           number: true,\r
742           min: 1,\r
743         }\r
744       },\r
745       t: {\r
746         type: 'number',\r
747         rules : {\r
748           required: true,\r
749           number: true,\r
750           min: 0,\r
751         }\r
752       },\r
753       settings: {\r
754         type: 'text',\r
755         rules : {\r
756         }\r
757       },\r
758       caption: {\r
759         type: 'text',\r
760         rules : {\r
761         }\r
762       },\r
763     },\r
764     tree: {\r
765       owner: 'panel',\r
766       panel: 'panel',\r
767     },\r
768     lists: {\r
769       public: {\r
770         type: 'public',\r
771       },\r
772       private: {\r
773         type: 'private',\r
774       },\r
775       by_panel: {\r
776         type: 'filter',\r
777       },\r
778       by_speech_balloon_template: {\r
779         type: 'filter',\r
780       },\r
781       by_author: {\r
782         type: 'foreign_filter',\r
783       },\r
784     },\r
785   }, \r
786   balloon: {\r
787     associations: {\r
788       belongs_to: {\r
789         speech_balloon: {\r
790         }, \r
791         system_picture: {\r
792         }, \r
793       },\r
794       has_many: {\r
795       },\r
796     },\r
797     attributes: {\r
798       speech_balloon_id: {\r
799         type: 'number',\r
800         rules : {\r
801           number: true,\r
802         }\r
803       },\r
804       system_picture_id: {\r
805         type: 'number',\r
806         rules : {\r
807           required: true,\r
808           number: true,\r
809         }\r
810       },\r
811       x: {\r
812         type: 'number',\r
813         rules : {\r
814           required: true,\r
815           number: true,\r
816         }\r
817       },\r
818       y: {\r
819         type: 'number',\r
820         rules : {\r
821           required: true,\r
822           number: true,\r
823         }\r
824       },\r
825       width: {\r
826         type: 'number',\r
827         rules : {\r
828           required: true,\r
829           number: true,\r
830           min: 1,\r
831         }\r
832       },\r
833       height: {\r
834         type: 'number',\r
835         rules : {\r
836           required: true,\r
837           number: true,\r
838           min: 1,\r
839         }\r
840       },\r
841       r: {\r
842         type: 'number',\r
843         rules : {\r
844           required: true,\r
845           number: true,\r
846         }\r
847       },\r
848       settings: {\r
849         type: 'text',\r
850         rules : {\r
851         }\r
852       },\r
853     },\r
854     tree: {\r
855       owner: 'speech_balloon',\r
856       panel: 'speech_balloon',\r
857     },\r
858     lists: {\r
859       public: {\r
860         type: 'public',\r
861       },\r
862       private: {\r
863         type: 'private',\r
864       },\r
865       by_panel: {\r
866         type: 'filter',\r
867       },\r
868       by_speech_balloon: {\r
869         type: 'filter',\r
870       },\r
871       by_author: {\r
872         type: 'foreign_filter',\r
873       },\r
874     },\r
875   },\r
876   speech: {\r
877     associations: {\r
878       belongs_to: {\r
879         speech_balloon: {\r
880         }, \r
881         writing_format: {\r
882         }, \r
883       },\r
884       has_many: {\r
885       },\r
886     },\r
887     attributes: {\r
888       speech_balloon_id: {\r
889         type: 'number',\r
890         rules : {\r
891           number: true,\r
892         }\r
893       },\r
894       writing_format_id: {\r
895         type: 'number',\r
896         source: {\r
897           type: 'model',\r
898         },\r
899         rules : {\r
900           required: true,\r
901           number: true,\r
902         }\r
903       },\r
904       content: {\r
905         type: 'text',\r
906         rules : {\r
907         }\r
908       },\r
909       font_size: {\r
910         type: 'float',\r
911         rules : {\r
912           required: true,\r
913           number: true,\r
914           min: 0,\r
915         },\r
916         source: {\r
917           type: 'magic_number',\r
918           args: {\r
919             select_item_name: 'speech_font_size_items',\r
920           },\r
921         },\r
922       },\r
923       text_align: {\r
924         type: 'number',\r
925         rules : {\r
926           required: true,\r
927           number: true,\r
928           range: [0, 3],\r
929         },\r
930         source: {\r
931           type: 'magic_number',\r
932           args: {\r
933             select_item_name: 'speech_text_align_items',\r
934           },\r
935         },\r
936       },\r
937       fore_color: {\r
938         type: 'number',\r
939         rules : {\r
940           required: true,\r
941           number: true,\r
942           range: [0, 0xffffff],\r
943         }\r
944       },\r
945       x: {\r
946         type: 'number',\r
947         rules : {\r
948           required: true,\r
949           number: true,\r
950         }\r
951       },\r
952       y: {\r
953         type: 'number',\r
954         rules : {\r
955           required: true,\r
956           number: true,\r
957         }\r
958       },\r
959       width: {\r
960         type: 'number',\r
961         rules : {\r
962           required: true,\r
963           number: true,\r
964           min: 1,\r
965         }\r
966       },\r
967       height: {\r
968         type: 'number',\r
969         rules : {\r
970           required: true,\r
971           number: true,\r
972           min: 1,\r
973         }\r
974       },\r
975       quotes: {\r
976         type: 'text',\r
977         rules : {\r
978         }\r
979       },\r
980       settings: {\r
981         type: 'text',\r
982         rules : {\r
983         }\r
984       },\r
985     },\r
986     tree: {\r
987       owner: 'speech_balloon',\r
988       panel: 'speech_balloon',\r
989     },\r
990     lists: {\r
991       public: {\r
992         type: 'public',\r
993       },\r
994       by_speech_balloon: {\r
995         type: 'filter',\r
996       },\r
997       by_writing_format: {\r
998         type: 'filter',\r
999       },\r
1000     },\r
1001   },\r
1002   ground_picture: {\r
1003     associations: {\r
1004       belongs_to: {\r
1005         panel: {\r
1006         }, \r
1007       },\r
1008       has_many: {\r
1009       },\r
1010     },\r
1011     attributes: {\r
1012       panel_id: {\r
1013         type: 'number',\r
1014         rules : {\r
1015           number: true,\r
1016         }\r
1017       },\r
1018       picture_id: {\r
1019         type: 'number',\r
1020         rules : {\r
1021           required: true,\r
1022           number: true,\r
1023         }\r
1024       },\r
1025       caption: {\r
1026         type: 'text',\r
1027         rules : {\r
1028         }\r
1029       },\r
1030       repeat: {\r
1031         type: 'number',\r
1032         rules : {\r
1033           required: true,\r
1034           number: true,\r
1035           range: [0, 3],\r
1036         },\r
1037         source: {\r
1038           type: 'magic_number',\r
1039           args: {\r
1040             select_item_name: 'ground_picture_repeat_items',\r
1041           },\r
1042         },\r
1043       },\r
1044       x: {\r
1045         type: 'number',\r
1046         rules : {\r
1047           required: true,\r
1048           number: true,\r
1049         }\r
1050       },\r
1051       y: {\r
1052         type: 'number',\r
1053         rules : {\r
1054           required: true,\r
1055           number: true,\r
1056         }\r
1057       },\r
1058       z: {\r
1059         type: 'number',\r
1060         rules : {\r
1061           required: true,\r
1062           number: true,\r
1063           min: 1,\r
1064         }\r
1065       },\r
1066       t: {\r
1067         type: 'number',\r
1068         rules : {\r
1069           required: true,\r
1070           number: true,\r
1071           min: 0,\r
1072         }\r
1073       },\r
1074     },\r
1075     tree: {\r
1076       owner: 'panel',\r
1077       panel: 'panel',\r
1078     },\r
1079     lists: {\r
1080       public: {\r
1081         type: 'public',\r
1082       },\r
1083       private: {\r
1084         type: 'private',\r
1085       },\r
1086       by_panel: {\r
1087         type: 'filter',\r
1088       },\r
1089       by_author: {\r
1090         type: 'foreign_filter',\r
1091       },\r
1092     },\r
1093   },\r
1094   ground_color: {\r
1095     associations: {\r
1096       belongs_to: {\r
1097         panel: {\r
1098         }, \r
1099       },\r
1100       has_many: {\r
1101       },\r
1102     },\r
1103     attributes: {\r
1104       panel_id: {\r
1105         type: 'number',\r
1106         rules : {\r
1107           number: true,\r
1108         }\r
1109       },\r
1110       caption: {\r
1111         type: 'text',\r
1112         rules : {\r
1113         }\r
1114       },\r
1115       code: {\r
1116         type: 'number',\r
1117         rules : {\r
1118           required: true,\r
1119           number: true,\r
1120           range: [0, 0xffffff],\r
1121         }\r
1122       },\r
1123       orientation: {\r
1124         type: 'number',\r
1125         rules : {\r
1126           required: true,\r
1127           number: true,\r
1128           range: [0, 1],\r
1129         },\r
1130         source: {\r
1131           type: 'magic_number',\r
1132           args: {\r
1133             select_item_name: 'ground_color_orientation_items',\r
1134           },\r
1135         },\r
1136       },\r
1137       xy: {\r
1138         type: 'number',\r
1139         rules : {\r
1140           number: true,\r
1141         }\r
1142       },\r
1143       wh: {\r
1144         type: 'number',\r
1145         rules : {\r
1146           number: true,\r
1147         }\r
1148       },\r
1149       z: {\r
1150         type: 'number',\r
1151         rules : {\r
1152           required: true,\r
1153           number: true,\r
1154           min: 1,\r
1155         }\r
1156       },\r
1157       t: {\r
1158         type: 'number',\r
1159         rules : {\r
1160           required: true,\r
1161           number: true,\r
1162           min: 0,\r
1163         }\r
1164       },\r
1165     },\r
1166     tree: {\r
1167       owner: 'panel',\r
1168       panel: 'panel',\r
1169     },\r
1170     lists: {\r
1171       public: {\r
1172         type: 'public',\r
1173       },\r
1174       private: {\r
1175         type: 'private',\r
1176       },\r
1177       by_panel: {\r
1178         type: 'filter',\r
1179       },\r
1180       by_author: {\r
1181         type: 'foreign_filter',\r
1182       },\r
1183     },\r
1184   },\r
1185   original_picture: {\r
1186     associations: {\r
1187       belongs_to: {\r
1188         artist: {\r
1189         }, \r
1190       },\r
1191       has_many: {\r
1192         pictures: {\r
1193         }, \r
1194       },\r
1195       has_one: {\r
1196         resource_picture: {\r
1197         }, \r
1198       },\r
1199     },\r
1200     attributes: {\r
1201       ext: {\r
1202         type: 'text',\r
1203         rules : {\r
1204           required: true,\r
1205         }\r
1206       },\r
1207       width: {\r
1208         type: 'number',\r
1209         rules : {\r
1210           required: true,\r
1211           number: true,\r
1212         }\r
1213       },\r
1214       height: {\r
1215         type: 'number',\r
1216         rules : {\r
1217           required: true,\r
1218           number: true,\r
1219         }\r
1220       },\r
1221       filesize: {\r
1222         type: 'number',\r
1223         rules : {\r
1224           required: true,\r
1225           number: true,\r
1226         }\r
1227       },\r
1228       artist_id: {\r
1229         type: 'number',\r
1230         rules : {\r
1231           required: true,\r
1232           number: true,\r
1233         }\r
1234       },\r
1235       md5: {\r
1236         type: 'text',\r
1237         rules : {\r
1238           required: true,\r
1239           required: true,\r
1240         }\r
1241       },\r
1242       uploaded_at: {\r
1243         type: 'datetime',\r
1244       },\r
1245       published_at: {\r
1246         type: 'datetime',\r
1247       },\r
1248       stopped_at: {\r
1249         type: 'datetime',\r
1250       },\r
1251     },\r
1252     lists: {\r
1253       private: {\r
1254         type: 'private',\r
1255       },\r
1256     },\r
1257   },\r
1258   picture: {\r
1259     associations: {\r
1260       belongs_to: {\r
1261         license: {\r
1262         }, \r
1263         artist: {\r
1264         }, \r
1265       },\r
1266       has_many: {\r
1267       },\r
1268       has_one: {\r
1269       },\r
1270     },\r
1271     attributes: {\r
1272       original_picture_id: {\r
1273         type: 'number',\r
1274         rules : {\r
1275           required: true,\r
1276           number: true,\r
1277         }\r
1278       },\r
1279       revision: {\r
1280         type: 'number',\r
1281         rules : {\r
1282           required: true,\r
1283           number: true,\r
1284         }\r
1285       },\r
1286       ext: {\r
1287         type: 'text',\r
1288         rules : {\r
1289           required: true,\r
1290         }\r
1291       },\r
1292       width: {\r
1293         type: 'number',\r
1294         rules : {\r
1295           required: true,\r
1296           number: true,\r
1297         }\r
1298       },\r
1299       height: {\r
1300         type: 'number',\r
1301         rules : {\r
1302           required: true,\r
1303           number: true,\r
1304         }\r
1305       },\r
1306       filesize: {\r
1307         type: 'number',\r
1308         rules : {\r
1309           required: true,\r
1310           number: true,\r
1311         }\r
1312       },\r
1313       artist_id: {\r
1314         type: 'number',\r
1315         rules : {\r
1316           required: true,\r
1317           number: true,\r
1318         }\r
1319       },\r
1320       license_id: {\r
1321         type: 'number',\r
1322         rules : {\r
1323           required: true,\r
1324           number: true,\r
1325         }\r
1326       },\r
1327       md5: {\r
1328         type: 'text',\r
1329         rules : {\r
1330           required: true,\r
1331         }\r
1332       },\r
1333       artist_name: {\r
1334         type: 'text',\r
1335         rules : {\r
1336           required: true,\r
1337         }\r
1338       },\r
1339       credit: {\r
1340         type: 'text',\r
1341         rules : {\r
1342         }\r
1343       },\r
1344       settings: {\r
1345         type: 'text',\r
1346         rules : {\r
1347         }\r
1348       },\r
1349       classname: {\r
1350         type: 'text',\r
1351         rules : {\r
1352           required: true,\r
1353         }\r
1354       },\r
1355     }\r
1356   },\r
1357   resource_picture: {\r
1358     associations: {\r
1359       belongs_to: {\r
1360         original_picture: {\r
1361         }, \r
1362         license: {\r
1363         }, \r
1364         artist: {\r
1365         }, \r
1366       },\r
1367       has_many: {\r
1368       },\r
1369       has_one: {\r
1370       },\r
1371     },\r
1372     attributes: {\r
1373       original_picture_id: {\r
1374         type: 'number',\r
1375         rules : {\r
1376           required: true,\r
1377           number: true,\r
1378         }\r
1379       },\r
1380       revision: {\r
1381         type: 'number',\r
1382         rules : {\r
1383           required: true,\r
1384           number: true,\r
1385         }\r
1386       },\r
1387       ext: {\r
1388         type: 'text',\r
1389         rules : {\r
1390           required: true,\r
1391         }\r
1392       },\r
1393       width: {\r
1394         type: 'number',\r
1395         rules : {\r
1396           required: true,\r
1397           number: true,\r
1398         }\r
1399       },\r
1400       height: {\r
1401         type: 'number',\r
1402         rules : {\r
1403           required: true,\r
1404           number: true,\r
1405         }\r
1406       },\r
1407       filesize: {\r
1408         type: 'number',\r
1409         rules : {\r
1410           required: true,\r
1411           number: true,\r
1412         }\r
1413       },\r
1414       artist_id: {\r
1415         type: 'number',\r
1416         rules : {\r
1417           required: true,\r
1418           number: true,\r
1419         }\r
1420       },\r
1421       license_id: {\r
1422         type: 'number',\r
1423         rules : {\r
1424           required: true,\r
1425           number: true,\r
1426         }\r
1427       },\r
1428       md5: {\r
1429         type: 'text',\r
1430         rules : {\r
1431           required: true,\r
1432         }\r
1433       },\r
1434       artist_name: {\r
1435         type: 'text',\r
1436         rules : {\r
1437           required: true,\r
1438         }\r
1439       },\r
1440       credit: {\r
1441         type: 'text',\r
1442         rules : {\r
1443         }\r
1444       },\r
1445       settings: {\r
1446         type: 'text',\r
1447         rules : {\r
1448         }\r
1449       },\r
1450       picture_id: {\r
1451         type: 'number',\r
1452         rules : {\r
1453           required: true,\r
1454           number: true,\r
1455         }\r
1456       },\r
1457       classname: {\r
1458         type: 'text',\r
1459         rules : {\r
1460           required: true,\r
1461         }\r
1462       },\r
1463     },\r
1464     lists: {\r
1465       public: {\r
1466         type: 'public',\r
1467       },\r
1468       private: {\r
1469         type: 'private',\r
1470       },\r
1471       by_original_picture: {\r
1472         type: 'filter',\r
1473       },\r
1474       by_license: {\r
1475         type: 'filter',\r
1476       },\r
1477       by_artist: {\r
1478         type: 'filter',\r
1479       },\r
1480     },\r
1481   },\r
1482   speech_balloon_template: {\r
1483     extend_column_name: 'classname', \r
1484     associations: {\r
1485       belongs_to: {\r
1486         system_picture: {\r
1487         }, \r
1488       },\r
1489       has_many: {\r
1490         speech_balloons: {\r
1491         }, \r
1492         panels: {\r
1493           through: 'speech_balloons',\r
1494         }, \r
1495       },\r
1496       has_one: {\r
1497       },\r
1498     },\r
1499     attributes: {\r
1500       name: {\r
1501         type: 'text',\r
1502         rules : {\r
1503           required: true,\r
1504         }\r
1505       },\r
1506       classname: {\r
1507         type: 'text',\r
1508         rules : {\r
1509           required: true,\r
1510         }\r
1511       },\r
1512       caption: {\r
1513         type: 'text',\r
1514         rules : {\r
1515           required: true,\r
1516         }\r
1517       },\r
1518       t: {\r
1519         type: 'number',\r
1520         rules : {\r
1521           required: true,\r
1522           number: true,\r
1523           min: 0,\r
1524         }\r
1525       },\r
1526       system_picture_id: {\r
1527         type: 'number',\r
1528         rules : {\r
1529           required: true,\r
1530           number: true,\r
1531         }\r
1532       },\r
1533       settings: {\r
1534         type: 'text',\r
1535         rules : {\r
1536           required: true,\r
1537         }\r
1538       },\r
1539     },\r
1540     lists: {\r
1541       public: {\r
1542         type: 'public',\r
1543       },\r
1544       select_items: {\r
1545         type: 'system_resource',\r
1546         args: {\r
1547           select_item_name: 'panel_visible_items',\r
1548         },\r
1549       },\r
1550     },\r
1551   },\r
1552   writing_format: {\r
1553     extend_column_name: 'classname', \r
1554     associations: {\r
1555       belongs_to: {\r
1556         system_picture: {\r
1557         }, \r
1558       },\r
1559       has_many: {\r
1560         speeches: {\r
1561         }, \r
1562       },\r
1563       has_one: {\r
1564       },\r
1565     },\r
1566     attributes: {\r
1567       name: {\r
1568         type: 'text',\r
1569         rules : {\r
1570           required: true,\r
1571         }\r
1572       },\r
1573       classname: {\r
1574         type: 'text',\r
1575         rules : {\r
1576           required: true,\r
1577         }\r
1578       },\r
1579       caption: {\r
1580         type: 'text',\r
1581         rules : {\r
1582           required: true,\r
1583         }\r
1584       },\r
1585       system_picture_id: {\r
1586         type: 'number',\r
1587         rules : {\r
1588           required: true,\r
1589           number: true,\r
1590         }\r
1591       },\r
1592       settings: {\r
1593         type: 'text',\r
1594         rules : {\r
1595           required: true,\r
1596         }\r
1597       },\r
1598     },\r
1599     lists: {\r
1600       public: {\r
1601         type: 'public',\r
1602       },\r
1603       select_items: {\r
1604         type: 'system_resource',\r
1605       },\r
1606       by_system_picture: {\r
1607         type: 'filter',\r
1608       },\r
1609     },\r
1610   },\r
1611   license_group: {\r
1612     extend_column_name: 'classname', \r
1613     associations: {\r
1614       belongs_to: {\r
1615       },\r
1616       has_many: {\r
1617         licenses: {\r
1618         }, \r
1619       },\r
1620       has_one: {\r
1621       },\r
1622     },\r
1623     attributes: {\r
1624       name: {\r
1625         type: 'text',\r
1626         rules : {\r
1627           required: true,\r
1628         }\r
1629       },\r
1630       classname: {\r
1631         type: 'text',\r
1632         rules : {\r
1633           required: true,\r
1634         }\r
1635       },\r
1636       caption: {\r
1637         type: 'text',\r
1638         rules : {\r
1639           required: true,\r
1640         }\r
1641       },\r
1642       url: {\r
1643         type: 'text',\r
1644         rules : {\r
1645           required: true,\r
1646         }\r
1647       },\r
1648     },\r
1649     lists: {\r
1650       public: {\r
1651         type: 'public',\r
1652       },\r
1653       select_items: {\r
1654         type: 'system_resource',\r
1655       },\r
1656     },\r
1657   },\r
1658   license: {\r
1659     associations: {\r
1660       belongs_to: {\r
1661         license_group: {\r
1662         }, \r
1663         system_picture: {\r
1664         }, \r
1665       },\r
1666       has_many: {\r
1667         resource_pictures: {\r
1668         }, \r
1669       },\r
1670       has_one: {\r
1671       },\r
1672     },\r
1673     attributes: {\r
1674       license_group_id: {\r
1675         type: 'number',\r
1676         rules : {\r
1677           number: true,\r
1678         }\r
1679       },\r
1680       name: {\r
1681         type: 'text',\r
1682         rules : {\r
1683           required: true,\r
1684         }\r
1685       },\r
1686       caption: {\r
1687         type: 'text',\r
1688         rules : {\r
1689           required: true,\r
1690         }\r
1691       },\r
1692       system_picture_id: {\r
1693         type: 'number',\r
1694         rules : {\r
1695           required: true,\r
1696           number: true,\r
1697         }\r
1698       },\r
1699       url: {\r
1700         type: 'text',\r
1701         rules : {\r
1702           required: true,\r
1703         }\r
1704       },\r
1705       settings: {\r
1706         type: 'text',\r
1707         rules : {\r
1708         }\r
1709       },\r
1710       credit_pictures: {\r
1711         type: 'text',\r
1712         rules : {\r
1713         }\r
1714       },\r
1715     },\r
1716     lists: {\r
1717       public: {\r
1718         type: 'public',\r
1719       },\r
1720       by_license_group: {\r
1721         type: 'filter',\r
1722       },\r
1723       by_system_picture: {\r
1724         type: 'filter',\r
1725       },\r
1726     },\r
1727   },\r
1728   author: {\r
1729     associations: {\r
1730       belongs_to: {\r
1731       },\r
1732       has_many: {\r
1733         scrolls: {\r
1734         }, \r
1735         comics: {\r
1736         }, \r
1737         stories: {\r
1738         }, \r
1739         sheets: {\r
1740         }, \r
1741         panels: {\r
1742         }, \r
1743       },\r
1744       has_one: {\r
1745       },\r
1746     },\r
1747     attributes: {\r
1748       name: {\r
1749         type: 'text',\r
1750         rules : {\r
1751           required: true,\r
1752         }\r
1753       },\r
1754       user_id: {\r
1755         type: 'number',\r
1756         rules : {\r
1757           required: true,\r
1758           number: true,\r
1759         }\r
1760       },\r
1761     },\r
1762     lists: {\r
1763       public: {\r
1764         type: 'public',\r
1765       },\r
1766     },\r
1767   },\r
1768   artist: {\r
1769     associations: {\r
1770       belongs_to: {\r
1771       },\r
1772       has_many: {\r
1773         resource_pictures: {\r
1774         }, \r
1775       },\r
1776       has_one: {\r
1777       },\r
1778     },\r
1779     attributes: {\r
1780       name: {\r
1781         type: 'text',\r
1782         rules : {\r
1783           required: true,\r
1784         }\r
1785       },\r
1786       author_id: {\r
1787         type: 'number',\r
1788         rules : {\r
1789           required: true,\r
1790           number: true,\r
1791         }\r
1792       },\r
1793     },\r
1794     lists: {\r
1795       public: {\r
1796         type: 'public',\r
1797       },\r
1798     },\r
1799   },\r
1800   system_picture: {\r
1801     associations: {\r
1802       belongs_to: {\r
1803       },\r
1804       has_many: {\r
1805         balloons: {\r
1806         }, \r
1807         speech_balloon_templates: {\r
1808         }, \r
1809         licenses: {\r
1810         }, \r
1811       },\r
1812       has_one: {\r
1813       },\r
1814     },\r
1815     attributes: {\r
1816       ext: {\r
1817         type: 'text',\r
1818         rules : {\r
1819           required: true,\r
1820         }\r
1821       },\r
1822       width: {\r
1823         type: 'number',\r
1824         rules : {\r
1825           required: true,\r
1826           number: true,\r
1827         }\r
1828       },\r
1829       height: {\r
1830         type: 'number',\r
1831         rules : {\r
1832           required: true,\r
1833           number: true,\r
1834         }\r
1835       },\r
1836       filesize: {\r
1837         type: 'number',\r
1838         rules : {\r
1839           required: true,\r
1840           number: true,\r
1841         }\r
1842       },\r
1843       md5: {\r
1844         type: 'text',\r
1845         rules : {\r
1846           required: true,\r
1847           required: true,\r
1848         }\r
1849       },\r
1850     },\r
1851     lists: {\r
1852       public: {\r
1853         type: 'public',\r
1854       },\r
1855     },\r
1856   },\r
1857 }\r
1858 \r