| rev | line source | 
| jbe/bsw@0 | 1 Medium = mondelefant.new_class() | 
| jbe/bsw@0 | 2 Medium.table = 'medium' | 
| jbe/bsw@0 | 3 | 
| jbe/bsw@0 | 4 Medium:add_reference{ | 
| jbe/bsw@0 | 5   mode          = 'm1',             -- many (m) Medium entries can refer to one (1) MediaType | 
| jbe/bsw@0 | 6   to            = "MediaType",      -- name of referenced model (quoting avoids auto-loading here) | 
| jbe/bsw@0 | 7   this_key      = 'media_type_id',  -- own key in medium table | 
| jbe/bsw@0 | 8   that_key      =  'id',            -- other key in media_type table | 
| jbe/bsw@0 | 9   ref           = 'media_type',     -- name of reference | 
| jbe/bsw@0 | 10   back_ref      = nil,              -- not used for m1 relation! | 
| jbe/bsw@0 | 11   default_order = nil               -- not used for m1 relation! | 
| jbe/bsw@0 | 12 } | 
| jbe/bsw@0 | 13 | 
| jbe/bsw@0 | 14 Medium:add_reference{ | 
| jbe/bsw@0 | 15   mode          = '1m',               -- one (1) Medium has many (m) Classifications | 
| jbe/bsw@0 | 16   to            = "Classification",   -- name of referenced model (quoting avoids auto-loading here) | 
| jbe/bsw@0 | 17   this_key      = 'id',               -- own key in medium table | 
| jbe/bsw@0 | 18   that_key      = 'medium_id',        -- other key in classification table | 
| jbe/bsw@0 | 19   ref           = 'classifications',  -- name of reference | 
| jbe/bsw@0 | 20   back_ref      = 'medium',           -- each autoloaded classification automatically refers back to the Medium | 
| jbe/bsw@0 | 21   default_order = '"genre_id"'        -- order classifications by SQL expression "genre_id" | 
| jbe/bsw@0 | 22 } | 
| jbe/bsw@0 | 23 | 
| jbe/bsw@0 | 24 Medium:add_reference{ | 
| jbe/bsw@0 | 25   mode                  = 'mm',              -- many (m) Media belong to many (m) Genres | 
| jbe/bsw@0 | 26   to                    = "Genre",           -- name of referenced model (quoting avoids auto-loading here) | 
| jbe/bsw@0 | 27   this_key              = 'id',              -- (primary) key of medium table | 
| jbe/bsw@0 | 28   that_key              = 'id',              -- (primary) key of genre talbe | 
| jbe/bsw@0 | 29   connected_by_table    = 'classification',  -- table connecting media with genres | 
| jbe/bsw@0 | 30   connected_by_this_key = 'medium_id',       -- key in classification table referencing media | 
| jbe/bsw@0 | 31   connected_by_that_key = 'genre_id',        -- key in classification table referencing genres | 
| jbe/bsw@0 | 32   ref                   = 'genres',          -- name of reference | 
| jbe/bsw@0 | 33   back_ref              = nil,               -- not used for mm relation! | 
| jbe/bsw@0 | 34   default_order         = '"genre"."name", "genre"."id"'  -- mm references need qualified names in SQL order expression! | 
| jbe/bsw@0 | 35 } | 
| jbe/bsw@0 | 36 | 
| jbe/bsw@0 | 37 Medium:add_reference{ | 
| jbe/bsw@0 | 38   mode          = '1m',         -- one (1) Medium has many (m) Tracks | 
| jbe/bsw@0 | 39   to            = "Track",      -- name of referenced model (quoting avoids auto-loading here) | 
| jbe/bsw@0 | 40   this_key      = 'id',         -- own key in medium table | 
| jbe/bsw@0 | 41   that_key      = 'medium_id',  -- other key in track table | 
| jbe/bsw@0 | 42   ref           = 'tracks',     -- name of reference | 
| jbe/bsw@0 | 43   back_ref      = 'medium',     -- each autoloaded classification automatically refers back to the Medium | 
| jbe/bsw@0 | 44   default_order = '"position"'  -- order tracks by SQL expression "position" | 
| jbe/bsw@0 | 45 } |