From f295e6812c7b2ce973a37dee7bbe988abbeb4bf0 Mon Sep 17 00:00:00 2001 From: Taha Jahangir Date: Tue, 22 Apr 2014 21:18:10 +0430 Subject: [PATCH] User OrderedDict to preserve order of models when listing models --- pyramid_formalchemy/views.py | 8 +++++++- setup.py | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pyramid_formalchemy/views.py b/pyramid_formalchemy/views.py index 846b6c9..689b641 100644 --- a/pyramid_formalchemy/views.py +++ b/pyramid_formalchemy/views.py @@ -29,6 +29,12 @@ except ImportError: import json +try: + from collections import OrderedDict +except ImportError: + from ordereddict import OrderedDict + + class Session(object): """A abstract class to implement other backend than SA""" def add(self, record): @@ -106,7 +112,7 @@ def models(self, **kwargs): if has_permission('view', obj, request) or not hasattr(obj, '__acl__'): models.append(obj) - results = {} + results = OrderedDict() # preserve order of models for m in models: if request.format == 'html': url = request.fa_url(m.__name__) diff --git a/setup.py b/setup.py index cb7e8f1..e792446 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,5 @@ import os +import sys from setuptools import setup, find_packages @@ -8,8 +9,10 @@ requires = ['pyramid>=1.1', 'WebError', 'FormAlchemy>=1.3.8', 'Babel', 'zope.component'] +if sys.version_info < (2, 7): + requires.append('ordereddict') -version = '0.4.4dev' +version = '0.4.4dev2' setup(name='pyramid_formalchemy', version=version,