# -*- coding: utf-8; -*-
"""
Upgrade views
"""

from __future__ import unicode_literals, absolute_import

import re

from tailbone.views import upgrades as base


class UpgradeView(base.UpgradeView):

    def get_changelog_url(self, project, old_version, new_version):

        if project == 'rattail-demo':
            if self.commit_hash_pattern.match(new_version):
                if new_version == old_version:
                    return 'https://rattailproject.org/trac/log/rattail-demo/?rev={}&limit=100'.format(
                        new_version)
                else:
                    return 'https://rattailproject.org/trac/log/rattail-demo/?rev={}&stop_rev={}&limit=100'.format(
                        new_version, old_version)
            elif re.match(r'^\d+\.\d+\.\d+$', new_version):
                return 'https://rattailproject.org/trac/browser/rattail-demo/CHANGES.rst?rev=v{}'.format(
                    new_version)
            else:
                return 'https://rattailproject.org/trac/browser/rattail-demo/CHANGES.rst'

        return super(UpgradeView, self).get_changelog_url(project, old_version, new_version)


def includeme(config):
    UpgradeView.defaults(config)