from __future__ import unicode_literals

import django
from django.contrib.auth.management import _get_all_permissions

from .enums import DjangoVersion


def django_version():
    if django.get_version().startswith('1.8'):
        return DjangoVersion.DJANGO_18
    elif django.get_version().startswith('1.9'):
        return DjangoVersion.DJANGO_19
    elif django.get_version().startswith('1.10'):
        return DjangoVersion.DJANGO_110
    elif django.get_version().startswith('1.11'):
        return DjangoVersion.DJANGO_111
    elif django.get_version().startswith('2.0'):
        return DjangoVersion.DJANGO_20
    elif django.get_version().startswith('2.1'):
        return DjangoVersion.DJANGO_21


def get_model_name(model):
    if django_version() == DjangoVersion.DJANGO_18:
        return '%s.%s' % (model._meta.app_label, model._meta.object_name)

    return model._meta.label


def get_all_permissions(opts, ctype=None):
    if django_version() < DjangoVersion.DJANGO_110:
        return _get_all_permissions(opts, ctype)

    return _get_all_permissions(opts)