Merge pull request #1020 from gasman/mysql

Fix retrieval of latest page revision on mysql
pull/1139/head
Karl Hobley 2015-02-26 09:21:44 +00:00
commit ea47974254
3 zmienionych plików z 11 dodań i 9 usunięć

Wyświetl plik

@ -4,15 +4,18 @@ matrix:
include:
- env: TOXENV=py27-dj17-postgres
- env: TOXENV=py27-dj17-sqlite
- env: TOXENV=py27-dj17-mysql
- env: TOXENV=py33-dj17-postgres
- env: TOXENV=py34-dj17-postgres
- env: TOXENV=py34-dj17-sqlite
- env: TOXENV=py27-dj18-postgres
# - env: TOXENV=py27-dj18-mysql
# - env: TOXENV=py27-dj18-sqlite
# - env: TOXENV=py33-dj18-postgres
- env: TOXENV=py34-dj18-postgres
- env: TOXENV=py34-dj18-sqlite
allow_failures:
- env: TOXENV=py27-dj17-mysql
- env: TOXENV=py27-dj18-postgres
- env: TOXENV=py34-dj18-postgres
- env: TOXENV=py34-dj18-sqlite

13
tox.ini
Wyświetl plik

@ -42,25 +42,20 @@ usedevelop = True
envlist =
py27-dj17-postgres,
py27-dj17-sqlite,
py27-dj17-mysql,
py33-dj17-postgres,
py33-dj17-sqlite,
py34-dj17-postgres,
py34-dj17-sqlite,
py27-dj18-postgres,
py27-dj18-sqlite,
py27-dj18-mysql,
py33-dj18-postgres,
py33-dj18-sqlite,
py34-dj18-postgres,
py34-dj18-sqlite
# mysql not currently supported
# (wagtail.wagtailimages.tests.TestImageEditView currently fails with a
# foreign key constraint error)
# py26-dj16-mysql
# py27-dj16-mysql
[testenv]
commands=coverage run runtests.py
@ -94,6 +89,8 @@ deps =
setenv =
DATABASE_ENGINE=django.db.backends.mysql
DATABASE_USER=wagtail
DATABASE_HOST=localhost
DATABASE_USER=root
[testenv:py33-dj17-postgres]
basepython=python3.3
@ -163,6 +160,8 @@ deps =
setenv =
DATABASE_ENGINE=django.db.backends.mysql
DATABASE_USER=wagtail
DATABASE_HOST=localhost
DATABASE_USER=root
[testenv:py33-dj18-postgres]
basepython=python3.3

Wyświetl plik

@ -483,7 +483,7 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, index.Indexed
return revision
def get_latest_revision(self):
return self.revisions.order_by('-created_at').first()
return self.revisions.order_by('-created_at', '-id').first()
def get_latest_revision_as_page(self):
latest_revision = self.get_latest_revision()
@ -1099,7 +1099,7 @@ class PageRevision(models.Model):
# special case: a revision without an ID is presumed to be newly-created and is thus
# newer than any revision that might exist in the database
return True
latest_revision = PageRevision.objects.filter(page_id=self.page_id).order_by('-created_at').first()
latest_revision = PageRevision.objects.filter(page_id=self.page_id).order_by('-created_at', '-id').first()
return (latest_revision == self)
def publish(self):