# HG changeset patch # User cavaliet # Date 1312972829 -7200 # Node ID 503e365a3af7afe1aac0416730922c34570944f7 # Parent 854f0305d86660fa9d645fed23304da02f41168a Starting 'group_management' branch (CAUTION : STILL SOME BUGS) diff -r 854f0305d866 -r 503e365a3af7 src/ldt/ldt/core/models.py --- a/src/ldt/ldt/core/models.py Tue Aug 09 11:51:12 2011 +0200 +++ b/src/ldt/ldt/core/models.py Wed Aug 10 12:40:29 2011 +0200 @@ -1,34 +1,9 @@ -from django.contrib.auth.models import User, Group +from django.contrib.auth.models import User from django.db import models - -class OwnerManager(models.Manager): - def get_by_natural_key(self, user_name): - return self.get(user__username=user_name) - - -class Owner(models.Model): - objects = OwnerManager() - - user = models.ForeignKey(User, blank=True, null=True) - group = models.ForeignKey(Group, blank=True, null=True) - - def __unicode__(self): - if self.user: - return self.user.username - else: - return self.group.name - - def natural_key(self): - # Right now there is no group so the user.username is enough - return self.user.username - natural_key.dependencies = ['auth.user'] - class Document(models.Model): - owner = models.ForeignKey(Owner, blank=True, null=True) + owner = models.ForeignKey(User, blank=True, null=True) class Meta: abstract = True - - diff -r 854f0305d866 -r 503e365a3af7 src/ldt/ldt/ldt_utils/models.py --- a/src/ldt/ldt/ldt_utils/models.py Tue Aug 09 11:51:12 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/models.py Wed Aug 10 12:40:29 2011 +0200 @@ -2,7 +2,8 @@ from django.contrib.auth.models import User from django.db import models from django.utils.translation import ugettext_lazy as _ -from ldt.core.models import Document, Owner +#from ldt.core.models import Document, Owner +from ldt.core.models import Document import ldt.indexation from utils import (create_ldt, copy_ldt, create_empty_iri, update_iri, generate_uuid) @@ -351,7 +352,8 @@ @staticmethod def create_project(user, title, contents): - owner = Owner.objects.get(user=user) #@UndefinedVariable +# owner = Owner.objects.get(user=user) #@UndefinedVariable + owner = user project = Project(title=title, owner=owner) project.ldt_id = str(uuid.uuid1()) #@UndefinedVariable project.created_by = user.username @@ -364,7 +366,8 @@ return create_ldt(project, user) def copy_project(self, user, title): - owner = Owner.objects.get(user=user) #@UndefinedVariable +# owner = Owner.objects.get(user=user) #@UndefinedVariable + owner = user project = Project(title=title, owner=owner) project = copy_ldt(self, project, user) project.save() diff -r 854f0305d866 -r 503e365a3af7 src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html --- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html Tue Aug 09 11:51:12 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html Wed Aug 10 12:40:29 2011 +0200 @@ -24,9 +24,9 @@ {% ifequal project.state 2 %} - {% if show_username %}{{ project.owner.user.username }} : {% endif %}{{ project.title }} + {% if show_username %}{{ project.owner.username }} : {% endif %}{{ project.title }} {% else %} - {% if show_username %}{{ project.owner.user.username }} : {% endif %}{{ project.title }} + {% if show_username %}{{ project.owner.username }} : {% endif %}{{ project.title }} {% endifequal %} diff -r 854f0305d866 -r 503e365a3af7 src/ldt/ldt/ldt_utils/urls.py --- a/src/ldt/ldt/ldt_utils/urls.py Tue Aug 09 11:51:12 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/urls.py Wed Aug 10 12:40:29 2011 +0200 @@ -8,6 +8,7 @@ urlpatterns = patterns('ldt.ldt_utils', url(r'^searchInit/(?P.*)/(?P.*)$', 'views.searchInit'), url(r'^searchForm/$', 'views.searchForm'), + url(r'^import_rs/$', 'views.import_rs'), url(r'^published/$', 'views.published_project'), url(r'^groups/$', 'views.groups'), url(r'^get_group_projects/$', 'views.get_group_projects'), diff -r 854f0305d866 -r 503e365a3af7 src/ldt/ldt/ldt_utils/views.py --- a/src/ldt/ldt/ldt_utils/views.py Tue Aug 09 11:51:12 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/views.py Wed Aug 10 12:40:29 2011 +0200 @@ -16,7 +16,6 @@ from django.utils.translation import ugettext as _, ungettext from forms import (LdtAddForm, SearchForm, AddProjectForm, CopyProjectForm, ContentForm, MediaForm) -from ldt.core.models import Owner from ldt.ldt_utils.models import Content from ldt.ldt_utils.utils import boolean_convert, LdtUtils, LdtSearch from lxml.html import fragment_fromstring @@ -82,7 +81,7 @@ content_list = Content.objects.all() #@UndefinedVariable # get list of projects owned by the current user - project_list = Project.objects.filter(owner__user=request.user) #@UndefinedVariable + project_list = Project.objects.filter(owner=request.user) #@UndefinedVariable is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); @@ -174,7 +173,7 @@ if is_owner: owner = None try: - owner = Owner.objects.get(user=request.user) #@UndefinedVariable + owner = request.user #@UndefinedVariable except: return HttpResponseServerError("

User not found

") query &= Q(owner=owner) @@ -194,8 +193,8 @@ # Get group, user and project_list grp = Group.objects.get(id=id_group) #@UndefinedVariable users = User.objects.filter(groups__in=[grp]) #@UndefinedVariable - query &= Q(owner__user__in=users) #@UndefinedVariable - project_list = Project.objects.filter(query).extra(select={'lower_title': 'lower(title)'}).order_by('owner__user__username','lower_title') #@UndefinedVariable + query &= Q(owner__in=users) #@UndefinedVariable + project_list = Project.objects.filter(query).extra(select={'lower_title': 'lower(title)'}).order_by('owner__username','lower_title') #@UndefinedVariable show_username = True else : project_list = Project.objects.filter(query) #@UndefinedVariable @@ -348,7 +347,7 @@ def list_ldt(request): contents = Content.objects.all() #@UndefinedVariable try: - owner = Owner.objects.get(user=request.user) #@UndefinedVariable + owner = request.user #@UndefinedVariable except: return HttpResponseRedirect(settings.LOGIN_URL) ldtProjects = Project.objects.filter(owner=owner) #@UndefinedVariable @@ -1111,7 +1110,7 @@ # Get group, user and project_list grp = Group.objects.get(id=request.POST["id_group"]) #@UndefinedVariable users = User.objects.filter(groups__in=[grp]) #@UndefinedVariable - project_list = Project.objects.filter(owner__user__in=users).extra(select={'lower_title': 'lower(title)'}).order_by('owner__user__username','lower_title') #@UndefinedVariable + project_list = Project.objects.filter(owner__in=users).extra(select={'lower_title': 'lower(title)'}).order_by('owner__username','lower_title') #@UndefinedVariable is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); diff -r 854f0305d866 -r 503e365a3af7 src/ldt/ldt/management/__init__.py --- a/src/ldt/ldt/management/__init__.py Tue Aug 09 11:51:12 2011 +0200 +++ b/src/ldt/ldt/management/__init__.py Wed Aug 10 12:40:29 2011 +0200 @@ -3,7 +3,6 @@ from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ObjectDoesNotExist from django.db.models import signals -from ldt.core.models import Owner from ldt.user.models import ldt, IriGroup # import logging @@ -21,29 +20,29 @@ def post_save_user(instance, raw, created, **kwargs): if created: try: - owner = Owner.objects.get(user=instance) + owner = instance except ObjectDoesNotExist: - owner = Owner(user=instance) + owner = User(instance) owner.save() signals.post_save.connect(post_save_user, User) -def post_save_group(instance, raw, created, **kwargs): - if created: - try: - owner = Owner.objects.get(group=instance) - except ObjectDoesNotExist: - owner = Owner(group=instance) - owner.save() - -signals.post_save.connect(post_save_group, Group) +#def post_save_group(instance, raw, created, **kwargs): +# if created: +# try: +# owner = Owner.objects.get(group=instance) +# except ObjectDoesNotExist: +# owner = Owner(group=instance) +# owner.save() +# +#signals.post_save.connect(post_save_group, Group) -def test_cms(): - if 'cms' in settings.INSTALLED_APPS: - return True - else: - return False +#def test_cms(): +# if 'cms' in settings.INSTALLED_APPS: +# return True +# else: +# return False def test_ldt(): if 'ldt.ldt_utils' in settings.INSTALLED_APPS: @@ -53,11 +52,11 @@ def get_content_type_list() : content_type_list = [] - if test_cms(): - content_type = ContentType.objects.get(app_label='cms', model='page') - content_type_list.append(content_type) - content_type = ContentType.objects.get(app_label='snippet', model='snippet') - content_type_list.append(content_type) +# if test_cms(): +# content_type = ContentType.objects.get(app_label='cms', model='page') +# content_type_list.append(content_type) +# content_type = ContentType.objects.get(app_label='snippet', model='snippet') +# content_type_list.append(content_type) # if test_ldt(): # content_type = ContentType.objects.get(app_label='ldt', model='content') # content_type_list.append(content_type) diff -r 854f0305d866 -r 503e365a3af7 src/ldt/ldt/templates/ldt/ldt_base.html --- a/src/ldt/ldt/templates/ldt/ldt_base.html Tue Aug 09 11:51:12 2011 +0200 +++ b/src/ldt/ldt/templates/ldt/ldt_base.html Wed Aug 10 12:40:29 2011 +0200 @@ -96,7 +96,7 @@
{% if user.is_authenticated %} - {{user.username}} | {% trans "Log out" %} + {{user.username}}{% trans "Log out" %} {% endif %}
{% endblock %} @@ -133,11 +133,6 @@ {% csrf_token %} {% endif %} - {% if LANGUAGES.1 %}
diff -r 854f0305d866 -r 503e365a3af7 src/ldt/ldt/user/forms.py --- a/src/ldt/ldt/user/forms.py Tue Aug 09 11:51:12 2011 +0200 +++ b/src/ldt/ldt/user/forms.py Wed Aug 10 12:40:29 2011 +0200 @@ -1,10 +1,10 @@ from django import forms from django.contrib.auth.forms import UserCreationForm -from django.contrib.auth.models import Permission +#from django.contrib.auth.models import Permission from django.forms.util import ErrorList from django.utils.translation import gettext as _ -from ldt.management import get_content_type_list -from models import ldt, IriGroup +#from ldt.management import get_content_type_list +from models import ldt#, IriGroup class ldtForm(UserCreationForm): @@ -23,8 +23,8 @@ initial, error_class, label_suffix, empty_permitted, instance) # filtre les permissions necessaires - content_type_list = get_content_type_list() - self.fields['user_permissions'].queryset = Permission.objects.filter(content_type__in=content_type_list) +# content_type_list = get_content_type_list() +# self.fields['user_permissions'].queryset = Permission.objects.filter(content_type__in=content_type_list) if instance: self.fields['password1'].required = False @@ -57,22 +57,22 @@ return user -class IriGroupForm(forms.ModelForm): - class meta: - model = IriGroup - - def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None, - initial=None, error_class=ErrorList, label_suffix=':', - empty_permitted=False, instance=None): - if instance: - initial = initial or {} - - super(IriGroupForm, self).__init__(data, files, auto_id, prefix, - initial, error_class, label_suffix, empty_permitted, instance) - - # filtre les permissions necessaires - content_type_list = get_content_type_list() - self.fields['permissions'].queryset = Permission.objects.filter(content_type__in=content_type_list) +#class IriGroupForm(forms.ModelForm): +# class meta: +# model = IriGroup +# +# def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None, +# initial=None, error_class=ErrorList, label_suffix=':', +# empty_permitted=False, instance=None): +# if instance: +# initial = initial or {} +# +# super(IriGroupForm, self).__init__(data, files, auto_id, prefix, +# initial, error_class, label_suffix, empty_permitted, instance) +# +# # filtre les permissions necessaires +# content_type_list = get_content_type_list() +# self.fields['permissions'].queryset = Permission.objects.filter(content_type__in=content_type_list) class EmailChangeForm(forms.Form): email1 = forms.EmailField(label=_("E-mail"), max_length=75) diff -r 854f0305d866 -r 503e365a3af7 src/ldt/ldt/user/urls.py --- a/src/ldt/ldt/user/urls.py Tue Aug 09 11:51:12 2011 +0200 +++ b/src/ldt/ldt/user/urls.py Wed Aug 10 12:40:29 2011 +0200 @@ -4,9 +4,10 @@ url(r'^loginAjax/$', 'ldt.user.views.loginAjax'), url(r'^profile/', 'ldt.user.views.profile'), url(r'^logout/', 'ldt.user.views.logout_view'), - url(r'^space/$', 'ldt.user.views.space'), +# url(r'^space/$', 'ldt.user.views.space'), url(r'^emailchange/$', 'ldt.user.views.change_email'), url(r'^emailchange/done/$', 'ldt.user.views.change_email_done'), + url(r'^pwdchange/$', 'ldt.user.views.change_password'), # url(r'^space/ldt/$', 'ldt.ldt_utils.views.list_ldt'), # url(r'^space/ldt/indexproject/(?P.*)$', 'ldt.ldt_utils.views.index_project'), # url(r'^space/ldt/init/(?P.*)/(?P.*)$', 'ldt.ldt_utils.views.init'), diff -r 854f0305d866 -r 503e365a3af7 src/ldt/ldt/user/views.py --- a/src/ldt/ldt/user/views.py Tue Aug 09 11:51:12 2011 +0200 +++ b/src/ldt/ldt/user/views.py Wed Aug 10 12:40:29 2011 +0200 @@ -1,5 +1,6 @@ from django.contrib.auth import authenticate, login, logout from django.contrib.auth.decorators import login_required +from django.contrib.auth.forms import PasswordChangeForm from django.core.urlresolvers import reverse from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import render_to_response @@ -7,26 +8,25 @@ from django.utils import simplejson from django.utils.translation import ugettext as _ from forms import EmailChangeForm -from ldt.management import test_cms, test_ldt -# from django.contrib.sites.models import Site, RequestSite +#from ldt.management import test_cms, test_ldt -def home(request): - return render_to_response('ldt/user/home.html', context_instance=RequestContext(request)) +#def home(request): +# return render_to_response('ldt/user/home.html', context_instance=RequestContext(request)) @login_required def profile(request): return render_to_response('ldt/user/profile.html', context_instance=RequestContext(request)) -@login_required -def space(request, page_id=None, slug=None): - cms = test_cms() - ldt = test_ldt() - context = { - 'cms': cms, - 'ldt': ldt - } - return render_to_response('ldt/user/space.html', context, context_instance=RequestContext(request)) +#@login_required +#def space(request, page_id=None, slug=None): +# cms = test_cms() +# ldt = test_ldt() +# context = { +# 'cms': cms, +# 'ldt': ldt +# } +# return render_to_response('ldt/user/space.html', context, context_instance=RequestContext(request)) @@ -71,4 +71,9 @@ @login_required def change_email_done(request, template_name='ldt/user/change_email_done.html'): return render_to_response(template_name, context_instance=RequestContext(request)) + +@login_required +def change_password(request): + form = PasswordChangeForm() + return render_to_response('ldt/user/change_password.html', {'form': form, }, context_instance=RequestContext(request))