Skip to content

Commit

Permalink
Patch to fix earlier failed merges. See localwiki#293
Browse files Browse the repository at this point in the history
  • Loading branch information
mivanov committed Jun 5, 2012
1 parent 244ba0c commit 0a74415
Show file tree
Hide file tree
Showing 14 changed files with 115 additions and 21 deletions.
7 changes: 7 additions & 0 deletions docs/html/_sources/permissions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,13 @@ Click on the username, and scroll down "Groups" section. Hold down

.. figure:: /_static/images/admin_ban_user.png

.. note::

While it's possible in the admin interface to delete a user, this is
**NOT** recommended as it will also delete every change the user has made.
If you need to disable a user's account, it's best to just unmark the
"active" checkbox for that user.


Setting permissions for specific objects
----------------------------------------
Expand Down
7 changes: 7 additions & 0 deletions docs/html/permissions.html
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,13 @@ <h2>Banning a user<a class="headerlink" href="#banning-a-user" title="Permalink
<div class="figure">
<img alt="_images/admin_ban_user.png" src="_images/admin_ban_user.png" />
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">While it&#8217;s possible in the admin interface to delete a user, this is
<strong>NOT</strong> recommended as it will also delete every change the user has made.
If you need to disable a user&#8217;s account, it&#8217;s best to just unmark the
&#8220;active&#8221; checkbox for that user.</p>
</div>
</div>
<div class="section" id="setting-permissions-for-specific-objects">
<h2>Setting permissions for specific objects<a class="headerlink" href="#setting-permissions-for-specific-objects" title="Permalink to this headline"></a></h2>
Expand Down
7 changes: 7 additions & 0 deletions docs/source/permissions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,13 @@ Click on the username, and scroll down "Groups" section. Hold down

.. figure:: /_static/images/admin_ban_user.png

.. note::

While it's possible in the admin interface to delete a user, this is
**NOT** recommended as it will also delete every change the user has made.
If you need to disable a user's account, it's best to just unmark the
"active" checkbox for that user.


Setting permissions for specific objects
----------------------------------------
Expand Down
Binary file modified sapling/locale/pt_PT/LC_MESSAGES/django.mo
Binary file not shown.
24 changes: 24 additions & 0 deletions sapling/locale/pt_PT/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
Expand Up @@ -418,6 +418,30 @@ msgstr "Comentário"
msgid "Page renamed to \"%s\""
msgstr "Nome da Página alterado para \"%s\""

#: pages/widgets.py:27
msgid "Normal"
msgstr "Normal"

#: pages/widgets.py:28
msgid "Heading 1"
msgstr "Cabeçalho 1"

#: pages/widgets.py:29
msgid "Heading 2"
msgstr "Cabeçalho 2"

#: pages/widgets.py:30
msgid "Heading 3"
msgstr "Cabeçalho 3"

#: pages/widgets.py:31
msgid "Formatted"
msgstr "Cabeçalho 4"

#: pages/widgets.py:32
msgid "Typewriter"
msgstr "Máquina de Escrever"

#: pages/templates/pages/base.html:5
msgid "Recent changes on this Page"
msgstr "Alterações recentes nesta Paǵina"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ CKEDITOR.dialog.add( 'includepage', function( editor )
var editor = this.getParentEditor(),
selection = editor.getSelection(),
element = null,
data = { page : '' };
data = { page : '', showtitle : true };

// Fill in all the relevant fields if there's already one link selected.
if ( ( element = pagelink_plugin.getSelectedLink( editor ) )
Expand All @@ -163,6 +163,7 @@ CKEDITOR.dialog.add( 'includepage', function( editor )
data.page = decodeURIComponent(element.getAttribute( 'href' ));
if(element.hasClass('includepage_showtitle'))
data.showtitle = true;
else data.showtitle = false;
if(element.hasClass('includepage_left'))
data.align = 'left';
if(element.hasClass('includepage_right'))
Expand Down
13 changes: 7 additions & 6 deletions sapling/pages/widgets.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from django.conf import settings
from django.utils.translation import ugettext as _

from utils.static import static_url
from utils import reverse_lazy
Expand All @@ -23,12 +24,12 @@ def get_config(self):
'disableNativeSpellChecker': False,
'browserContextMenuOnCtrl': True,
'enterMode': 1,
'stylesSet': [{'name': 'Normal', 'element': 'p'},
{'name': 'Heading 1', 'element': 'h1'},
{'name': 'Heading 2', 'element': 'h2'},
{'name': 'Heading 3', 'element': 'h3'},
{'name': 'Formatted', 'element': 'pre'},
{'name': 'Typewriter', 'element': 'tt'}
'stylesSet': [{'name': _('Normal'), 'element': 'p'},
{'name': _('Heading 1'), 'element': 'h1'},
{'name': _('Heading 2'), 'element': 'h2'},
{'name': _('Heading 3'), 'element': 'h3'},
{'name': _('Formatted'), 'element': 'pre'},
{'name': _('Typewriter'), 'element': 'tt'}
],
'indentClasses': ['indent1', 'indent2', 'indent3', 'indent4',
'indent5', 'indent6', 'indent7', 'indent8',
Expand Down
2 changes: 1 addition & 1 deletion sapling/redirects/middleware.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ def _is_redirect(response):


def _force_show_page(response):
return 'force_show' in response.GET
return 'show' in response.GET


class RedirectFallbackMiddleware(object):
Expand Down
10 changes: 10 additions & 0 deletions sapling/tags/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from django.contrib import admin
from guardian.admin import GuardedModelAdmin

from models import Tag


class TagAdmin(GuardedModelAdmin):
pass

admin.site.register(Tag, TagAdmin)
4 changes: 4 additions & 0 deletions sapling/tags/templates/tags/pagetagset_form.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
{% extends "tags/base.html" %}
{% load i18n %}

{% block search_robots %}
<meta name="robots" content="noindex,nofollow">
{% endblock %}

{% block media %}
{{ block.super }}
{{ form.media }}
Expand Down
20 changes: 10 additions & 10 deletions sapling/tags/views.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
import copy

from dateutil.parser import parse as dateparser

from utils.views import CreateObjectMixin, PermissionRequiredMixin,\
Custom404Mixin
from tags.models import PageTagSet, Tag, slugify
from tags.forms import PageTagSetForm
from pages.models import Page
from django.core.urlresolvers import reverse
from django.views.generic.list import ListView
from django.http import HttpResponse, HttpResponseRedirect
from versionutils.versioning.views import VersionsList, RevertView, UpdateView
from django.views.generic.detail import DetailView
from versionutils.diff.views import CompareView
from maps.views import MapForTag
from maps.widgets import InfoMap
from django.conf import settings
from django.shortcuts import get_object_or_404
from django.db.models.aggregates import Count

from versionutils.versioning.views import VersionsList, RevertView, UpdateView
from versionutils.diff.views import CompareView
from utils.views import CreateObjectMixin, PermissionRequiredMixin,\
Custom404Mixin
from tags.models import PageTagSet, Tag, slugify
from tags.forms import PageTagSetForm
from pages.models import Page
from maps.views import MapForTag
from maps.widgets import InfoMap


class PageNotFoundMixin(Custom404Mixin):
def handler404(self, request, *args, **kwargs):
Expand Down
1 change: 1 addition & 0 deletions sapling/themes/sapling/assets/css/site.css
Original file line number Diff line number Diff line change
Expand Up @@ -899,6 +899,7 @@ div.templates li {

.see_also {
margin-top: 2em;
clear: both;
}
/*
====================================
Expand Down
9 changes: 7 additions & 2 deletions sapling/versionutils/versioning/history_model_methods.py
Original file line number Diff line number Diff line change
Expand Up @@ -291,8 +291,13 @@ def _cascade_revert(current_hm, m, **kws):
for rel_hm in rel_hms:
direct_obj = rel_hm.version_info._object
latest_rel_hm = get_versions(direct_obj).most_recent()
if latest_rel_hm.version_info.type in [TYPE_DELETED_CASCADE,
TYPE_REVERTED_DELETED_CASCADE]:
latest_direct_obj = latest_rel_hm.version_info._object
deleted_is_same_as_latest = latest_direct_obj.pk == direct_obj.pk
# Was the related object most recently deleted via a delete cascade?
# Was the related object also most recently deleted TODO
if (latest_rel_hm.version_info.type in [TYPE_DELETED_CASCADE,
TYPE_REVERTED_DELETED_CASCADE] and
deleted_is_same_as_latest):
# The related object was most recently deleted via a
# delete cascade. So we revert it.

Expand Down
29 changes: 28 additions & 1 deletion sapling/versionutils/versioning/tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -552,6 +552,33 @@ def test_revert_fk_behavior(self):
self.assertEquals(len(MUniqueAndFK.objects.filter(a="my name3a")), 1)

# Case 3(b):
# A model (M) with an FK to another versioned model (N).
# Model N is deleted, which causes Model M to be deleted via
# cascade. Model M is re-created and its FK is pointed to a
# different instance of model N. This new instance is deleted,
# causing model M to be deleted via cascade. When reverting
# model N, M should not be re-created because it wasn't
# deleted via the same cascade.

n = M16Unique(a="wee", b="dog", c=1)
n.save()
m = MUniqueAndFK(a="me me me", b="cat", c=n)
m.save()

n.delete() # Will cause m to be deleted via cascade.

n = M16Unique(a="new n wee", b="dog", c=1)
n.save()
m = MUniqueAndFK(a="me me me", b="cat", c=n)
m.save()

n.delete() # Will cause m to be deleted via cascade.
n = M16Unique(a="wee", b="dog", c=1)
n.versions.as_of(version=1).revert_to()

self.assertEquals(len(MUniqueAndFK.objects.filter(a="wee")), 0)

# Case 3(c):
# A model (L) with an FK to another versioned model (M) with
# an FK to another versioned model (N).
# Model N is deleted, which causes models L, M to be deleted via
Expand All @@ -572,7 +599,7 @@ def test_revert_fk_behavior(self):
l.b += "!"
l.save()

n.delete() # Will cause m, l to be deleted via cascade.
n.delete() # Will cause m, l to be deleted via cascade.
n.versions.as_of(version=1).revert_to()

self.assertEquals(len(MUniqueAndFK2.objects.filter(a="oh name3b")), 1)
Expand Down

0 comments on commit 0a74415

Please sign in to comment.