Ecto extension to support ordered list items. Similar to acts_as_list, but for Ecto
# Global positioningdefmoduleMyModeldouseEcto.SchemaimportEctoOrderedschema"models"dofield:position,:integer,virtual: truefield,:rank,:integerenddefchangeset(model,params)domodel|>cast(params,[],[:position])|>set_order(:position)endend# Scoped positioningdefmoduleMyModeldouseEcto.ModeluseEctoOrdered,scope: :reference_idschema"models"dofield:reference_id,:integerfield:position,:integer,virtual: trueenddefchangeset(model,params)domodel|>cast(params,[],[:position,:reference_id])|>set_order(:position,:reference_id)endend