Starting 'group_management' branch (CAUTION : STILL SOME BUGS) group_management
authorcavaliet
Wed, 10 Aug 2011 12:40:29 +0200
branchgroup_management
changeset 128 503e365a3af7
parent 127 854f0305d866
child 129 e9f11d142db5
Starting 'group_management' branch (CAUTION : STILL SOME BUGS)
src/ldt/ldt/core/models.py
src/ldt/ldt/ldt_utils/models.py
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html
src/ldt/ldt/ldt_utils/urls.py
src/ldt/ldt/ldt_utils/views.py
src/ldt/ldt/management/__init__.py
src/ldt/ldt/templates/ldt/ldt_base.html
src/ldt/ldt/user/forms.py
src/ldt/ldt/user/urls.py
src/ldt/ldt/user/views.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
-
-
--- 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()
--- 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 @@
         </td>
         <td class="projecttitle">
         {% ifequal project.state 2 %}
-        {% if show_username %}{{ project.owner.user.username }} : {% endif %}{{ project.title }}
+        {% if show_username %}{{ project.owner.username }} : {% endif %}{{ project.title }}
         {% else %}
-        <a class="projecttitlelink" href="{% url ldt.ldt_utils.views.update_project ldt_id=project.ldt_id %}">{% if show_username %}{{ project.owner.user.username }} : {% endif %}{{ project.title }}</a>
+        <a class="projecttitlelink" href="{% url ldt.ldt_utils.views.update_project ldt_id=project.ldt_id %}">{% if show_username %}{{ project.owner.username }} : {% endif %}{{ project.title }}</a>
         {% endifequal %}
         </td>
     </tr>
--- 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<field>.*)/(?P<query>.*)$', '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'),
--- 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("<h1>User not found</h1>")
         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);
     
--- 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)
--- 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 @@
         </div>
         <div id="loginstate" >
             {% if user.is_authenticated %}
-            {{user.username}}&nbsp;|&nbsp;<a href="{% url ldt.user.views.logout_view %}" >{% trans "Log out" %}</a>
+            <a href="{% url ldt.user.views.profile %}" >{{user.username}}</a>|&nbsp;<a href="{% url ldt.user.views.logout_view %}" >{% trans "Log out" %}</a>
             {% endif %}
         </div>
         {% endblock %}
@@ -133,11 +133,6 @@
 					<input type="submit" class="quick_search_submit" value="" />{% csrf_token %}</form>
 		        </div>
 		        {% endif %}
-		        <!--div id="loginstate" class="block span-4 last">
-		            {% if user.is_authenticated %}
-		            {{user.username}}&nbsp;|&nbsp;<a href="{% url ldt.user.views.logout_view %}" >{% trans "Log out" %}</a>
-		            {% endif %}
-		        </div-->
             </div>
             {% if LANGUAGES.1 %}
               <div id="language_chooser">            
--- 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)
--- 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<id>.*)$', 'ldt.ldt_utils.views.index_project'),
 #    url(r'^space/ldt/init/(?P<method>.*)/(?P<url>.*)$', 'ldt.ldt_utils.views.init'),
--- 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))