Author: jtauber
Date: Tue Oct 7 07:46:23 2008
New Revision: 1028
Modified:
trunk/apps/core_apps/tag_app/views.py
trunk/apps/local_apps/tribes/admin.py
trunk/apps/local_apps/tribes/models.py
trunk/apps/local_apps/tribes/thing.py
trunk/apps/local_apps/tribes/urls.py
trunk/apps/local_apps/tribes/views.py
trunk/projects/complete_project/sql_changelog.txt
Log:
tribes now have a deleted flag which is honoured by most views --
template/view changes to actually mark a tribe as deleted have not yet been
done
Modified: trunk/apps/core_apps/tag_app/views.py
==============================================================================
--- trunk/apps/core_apps/tag_app/views.py (original)
+++ trunk/apps/core_apps/tag_app/views.py Tue Oct 7 07:46:23 2008
@@ -25,8 +25,8 @@
project_topic_tags = TaggedItem.objects.get_by_model(ProjectTopic,
tag).filter(project__deleted=False)
project_task_tags = TaggedItem.objects.get_by_model(Task,
tag).filter(project__deleted=False)
- tribe_tags = TaggedItem.objects.get_by_model(Tribe, tag)
- tribe_topic_tags = TaggedItem.objects.get_by_model(TribeTopic, tag)
+ tribe_tags = TaggedItem.objects.get_by_model(Tribe,
tag).filter(deleted=False)
+ tribe_topic_tags = TaggedItem.objects.get_by_model(TribeTopic,
tag).filter(tribe__deleted=False)
# @@@ TODO: tribe_wiki_article_tags and project_wiki_article_tags
wiki_article_tags = TaggedItem.objects.get_by_model(WikiArticle, tag)
Modified: trunk/apps/local_apps/tribes/admin.py
==============================================================================
--- trunk/apps/local_apps/tribes/admin.py (original)
+++ trunk/apps/local_apps/tribes/admin.py Tue Oct 7 07:46:23 2008
@@ -2,7 +2,7 @@
from tribes.models import Tribe, Topic
class TribeAdmin(admin.ModelAdmin):
- list_display = ('name', 'slug', 'creator', 'created',)
+ list_display = ('name', 'slug', 'creator', 'created', 'deleted')
class TopicAdmin(admin.ModelAdmin):
list_display = ('title', )
Modified: trunk/apps/local_apps/tribes/models.py
==============================================================================
--- trunk/apps/local_apps/tribes/models.py (original)
+++ trunk/apps/local_apps/tribes/models.py Tue Oct 7 07:46:23 2008
@@ -30,6 +30,8 @@
description = models.TextField(_('description'))
members = models.ManyToManyField(User, verbose_name=_('members'))
+ deleted = models.BooleanField(_('deleted'), default=False)
+
tags = TagField()
photos = generic.GenericRelation(Pool)
Modified: trunk/apps/local_apps/tribes/thing.py
==============================================================================
--- trunk/apps/local_apps/tribes/thing.py (original)
+++ trunk/apps/local_apps/tribes/thing.py Tue Oct 7 07:46:23 2008
@@ -1,7 +1,7 @@
import things
from django.db import connection
-class TribeThing(things.ModelThing):
+class TribeThing(things.Thing):
created = things.OrderField(
verbose_name_asc='Age',
verbose_name_desc='Age',
Modified: trunk/apps/local_apps/tribes/urls.py
==============================================================================
--- trunk/apps/local_apps/tribes/urls.py (original)
+++ trunk/apps/local_apps/tribes/urls.py Tue Oct 7 07:46:23 2008
@@ -4,23 +4,26 @@
from wiki import models as wiki_models
from tribes.thing import TribeThing
-tt = TribeThing(Tribe)
+# @@@ should qs really be here?
+tt = TribeThing(Tribe.objects.filter(deleted=False))
wiki_args = {'group_slug_field': 'slug',
- 'group_qs': Tribe.objects.all()}
+ 'group_qs': Tribe.objects.filter(deleted=False)}
-urlpatterns = tt.urls(url_prefix='', name_prefix='tribe_thing') +
patterns('',
- url(r'^create/$', 'tribes.views.create', name="tribe_create"),
- url(r'^your_tribes/$', 'tribes.views.your_tribes', name="your_tribes"),
- url(r'^tribe/(\w+)/$', 'tribes.views.tribe', name="tribe_detail"),
-
- # topics
- url(r'^tribe/(\w+)/topics/$', 'tribes.views.topics',
name="tribe_topics"),
- url(r'^topic/(\d+)/edit/$', 'tribes.views.topic', kwargs={"edit":
True}, name="tribe_topic_edit"),
- url(r'^topic/(\d+)/delete/$', 'tribes.views.topic_delete',
name="tribe_topic_delete"),
- url(r'^topic/(\d+)/$', 'tribes.views.topic', name="tribe_topic"),
-
- # wiki
- url(r'^tribe/(?P<group_slug>\w+)/wiki/', include('wiki.urls'),
kwargs=wiki_args),
-)
\ No newline at end of file
+urlpatterns = \
+ tt.urls(url_prefix='', name_prefix='tribe_thing') + \
+ patterns('',
+ url(r'^create/$', 'tribes.views.create', name="tribe_create"),
+ url(r'^your_tribes/$', 'tribes.views.your_tribes',
name="your_tribes"),
+ url(r'^tribe/(\w+)/$', 'tribes.views.tribe', name="tribe_detail"),
+
+ # topics
+ url(r'^tribe/(\w+)/topics/$', 'tribes.views.topics',
name="tribe_topics"),
+ url(r'^topic/(\d+)/edit/$', 'tribes.views.topic', kwargs={"edit":
True}, name="tribe_topic_edit"),
+ url(r'^topic/(\d+)/delete/$', 'tribes.views.topic_delete',
name="tribe_topic_delete"),
+ url(r'^topic/(\d+)/$', 'tribes.views.topic', name="tribe_topic"),
+
+ # wiki
+ url(r'^tribe/(?P<group_slug>\w+)/wiki/', include('wiki.urls'),
kwargs=wiki_args),
+ )
\ No newline at end of file
Modified: trunk/apps/local_apps/tribes/views.py
==============================================================================
--- trunk/apps/local_apps/tribes/views.py (original)
+++ trunk/apps/local_apps/tribes/views.py Tue Oct 7 07:46:23 2008
@@ -1,7 +1,7 @@
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
-from django.http import HttpResponseRedirect, HttpResponse,
HttpResponseForbidden
+from django.http import HttpResponseRedirect, HttpResponse,
HttpResponseForbidden, Http404
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
@@ -65,13 +65,17 @@
def your_tribes(request, template_name="tribes/your_tribes.html"):
return render_to_response(template_name, {
- "tribes":
Tribe.objects.filter(members=request.user).order_by("name"),
+ "tribes": Tribe.objects.filter(deleted=False,
members=request.user).order_by("name"),
}, context_instance=RequestContext(request))
your_tribes = login_required(your_tribes)
def tribe(request, slug, form_class=TribeUpdateForm,
template_name="tribes/tribe.html"):
tribe = get_object_or_404(Tribe, slug=slug)
+
+ if tribe.deleted:
+ raise Http404
+
photos = tribe.photos.all()
if request.user.is_authenticated() and request.method == "POST":
@@ -123,6 +127,9 @@
template_name="tribes/topics.html"):
tribe = get_object_or_404(Tribe, slug=slug)
+ if tribe.deleted:
+ raise Http404
+
are_member = False
if request.user.is_authenticated():
are_member = request.user in tribe.members.all()
@@ -147,7 +154,7 @@
return HttpResponseForbidden()
else:
topic_form = form_class()
-
+
return render_to_response(template_name, {
"tribe": tribe,
"topic_form": topic_form,
@@ -156,6 +163,10 @@
def topic(request, id, edit=False, template_name="tribes/topic.html"):
topic = get_object_or_404(Topic, id=id)
+
+ if topic.tribe.deleted:
+ raise Http404
+
if request.method == "POST" and edit == True and \
(request.user == topic.creator or request.user ==
topic.tribe.creator):
topic.body = request.POST["body"]
@@ -168,10 +179,14 @@
def topic_delete(request, pk):
topic = Topic.objects.get(pk=pk)
+
+ if topic.tribe.deleted:
+ raise Http404
+
if request.method == "POST" and (request.user == topic.creator or \
request.user == topic.tribe.creator):
if forums:
ThreadedComment.objects.all_for_object(topic).delete()
topic.delete()
-
+
return HttpResponseRedirect(request.POST["next"])
Modified: trunk/projects/complete_project/sql_changelog.txt
==============================================================================
--- trunk/projects/complete_project/sql_changelog.txt (original)
+++ trunk/projects/complete_project/sql_changelog.txt Tue Oct 7 07:46:23
2008
@@ -99,6 +99,7 @@
ALTER TABLE notification_notice ADD COLUMN on_site BOOLEAN NOT NULL
DEFAULT 't';
-## add 'deleted' column to project
+## add 'deleted' column to project and tribe
ALTER TABLE projects_project ADD COLUMN "deleted" bool NOT NULL default
False;
+ALTER TABLE tribes_tribe ADD COLUMN "deleted" bool NOT NULL default False;
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"pinax-updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/pinax-updates?hl=en
-~----------~----~----~----~------~----~------~--~---