# -*- coding: utf-8 -*- # import itertools from assets.models import SystemUser from .asset_user import AssetUserBackend class SystemUserBackend(AssetUserBackend): model = SystemUser backend = 'SystemUser' @classmethod def filter_queryset_more(cls, queryset): queryset = cls._distinct_system_users_by_username(queryset) return queryset @classmethod def _distinct_system_users_by_username(cls, system_users): system_users = sorted( system_users, key=lambda su: (su.username, su.priority, su.date_updated), reverse=True, ) results = itertools.groupby(system_users, key=lambda su: su.username) system_users = [next(result[1]) for result in results] return system_users