- correct url in template
- general cleaning
- activate LdtUser in admin
- remove ADMIN_MEDIA_PREFIX
--- a/src/ldt/ldt/api/ldt/resources/content.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/api/ldt/resources/content.py Thu May 23 00:17:02 2013 +0200
@@ -1,9 +1,9 @@
-from django.conf.urls.defaults import url
+from django.conf.urls import url
+from itertools import groupby
+from ldt.indexation import get_results_list
from ldt.ldt_utils.models import Content, Media
+from tastypie import fields
from tastypie.resources import Bundle, ModelResource, ALL_WITH_RELATIONS, ALL
-from tastypie import fields
-from ldt.indexation import get_results_list
-from itertools import groupby
class MediaResource(ModelResource):
--- a/src/ldt/ldt/api/ldt/resources/project.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/api/ldt/resources/project.py Thu May 23 00:17:02 2013 +0200
@@ -1,12 +1,13 @@
from django.conf import settings
-from django.conf.urls.defaults import url
+from django.conf.urls import url
from django.contrib.auth.models import Group
from guardian.shortcuts import assign
-from ldt.ldt_utils.models import Project
-from ldt.api.ldt.authentication import SessionAuthentication, MultiAuthentication, ApiKeyAuthentication
-from ldt.api.ldt.serializers.cinelabserializer import CinelabSerializer
+from ldt.api.ldt.authentication import (SessionAuthentication,
+ MultiAuthentication, ApiKeyAuthentication)
from ldt.api.ldt.resources import ContentResource
from ldt.api.ldt.resources.user import UserResource
+from ldt.api.ldt.serializers.cinelabserializer import CinelabSerializer
+from ldt.ldt_utils.models import Project
from ldt.security import protect_models, unprotect_models
from ldt.security.permissionchecker import check_object_perm_for_user
from tastypie import fields, http
--- a/src/ldt/ldt/api/ldt/resources/segment.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/api/ldt/resources/segment.py Thu May 23 00:17:02 2013 +0200
@@ -1,5 +1,5 @@
from django.conf import settings
-from django.conf.urls.defaults import url
+from django.conf.urls import url
from django.core.paginator import Paginator, InvalidPage
from django.db.models import F, Q
from ldt.indexation import get_results_list
--- a/src/ldt/ldt/api/ldt/resources/tag.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/api/ldt/resources/tag.py Thu May 23 00:17:02 2013 +0200
@@ -1,5 +1,5 @@
from django.conf import settings
-from django.conf.urls.defaults import url
+from django.conf.urls import url
from django.core.paginator import Paginator, InvalidPage
from ldt.ldt_utils.models import Segment
from tagging.models import Tag
--- a/src/ldt/ldt/api/ldt/resources/user.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/api/ldt/resources/user.py Thu May 23 00:17:02 2013 +0200
@@ -1,4 +1,4 @@
-from django.conf.urls.defaults import url
+from django.conf.urls import url
from django.contrib.auth import get_user_model
from tastypie.resources import Bundle, ModelResource
--- a/src/ldt/ldt/api/ldt/urls.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/api/ldt/urls.py Thu May 23 00:17:02 2013 +0200
@@ -1,4 +1,4 @@
-from django.conf.urls.defaults import patterns, include
+from django.conf.urls import patterns, include
from ldt.api.ldt.resources import ProjectResource, ContentResource, SegmentResource, AnnotationResource, UserResource, TagResource
from tastypie.api import Api
--- a/src/ldt/ldt/api/urls.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/api/urls.py Thu May 23 00:17:02 2013 +0200
@@ -1,4 +1,4 @@
-from django.conf.urls.defaults import patterns, include
+from django.conf.urls import patterns, include
urlpatterns = patterns('',
# all my other url mappings
--- a/src/ldt/ldt/ldt_utils/admin.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/admin.py Thu May 23 00:17:02 2013 +0200
@@ -1,5 +1,5 @@
from StringIO import StringIO
-from django.conf.urls.defaults import patterns, url
+from django.conf.urls import patterns, url
from django.contrib import admin
from django.core.management import call_command
from django.http import HttpResponse
--- a/src/ldt/ldt/ldt_utils/templates/admin/ldt_utils/app_index.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/admin/ldt_utils/app_index.html Thu May 23 00:17:02 2013 +0200
@@ -1,5 +1,4 @@
{% extends "admin/app_index.html" %}
-{% load absurl %}
{% load static %}
{% block extrastyle %}
{{ block.super }}
@@ -13,18 +12,18 @@
<table summary="Import">
<caption>Import</caption>
<tr>
- <th><a href="{% absurl 'admin:ldt_content_import_file' %}">Import
+ <th><a href="{% url 'admin:ldt_content_import_file' %}">Import
an ldt</a>
</th>
<td> </td>
</tr>
<tr>
- <th><a href="{% absurl 'admin:ldt_content_reindex' %}">Reindex</a>
+ <th><a href="{% url 'admin:ldt_content_reindex' %}">Reindex</a>
</th>
<td> </td>
</tr>
<tr>
- <th><a href="{% absurl 'admin:ldt_project_compute_stats' %}">Compute stats</a>
+ <th><a href="{% url 'admin:ldt_project_compute_stats' %}">Compute stats</a>
</th>
<td> </td>
</tr>
@@ -34,7 +33,7 @@
<table summary="Data">
<caption>Data</caption>
<tr>
- <th><a href="{% absurl 'admin:ldt_admin_dump_data' %}">Dump data</a>
+ <th><a href="{% url 'admin:ldt_admin_dump_data' %}">Dump data</a>
</th>
<td> </td>
</tr>
--- a/src/ldt/ldt/ldt_utils/templates/admin/ldt_utils/content/dumpdata.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/admin/ldt_utils/content/dumpdata.html Thu May 23 00:17:02 2013 +0200
@@ -1,6 +1,5 @@
{% extends "admin/ldt_utils/app_action.html" %}
{% load i18n %}
-{% load absurl %}
{# DUMP DATA #}
{% block content %}
{% if message %}
@@ -9,8 +8,8 @@
</div>
{% endif %}
<div>
-<p>Click <a href="{% absurl 'admin:ldt_admin_dump_data' %}?dump=1">HERE</a> if you want to download the dumpdata's json. It can be long to load. The dumpdata is full and raw, without natural keys.</p>
+<p>Click <a href="{% url 'admin:ldt_admin_dump_data' %}?dump=1">HERE</a> if you want to download the dumpdata's json. It can be long to load. The dumpdata is full and raw, without natural keys.</p>
</div>
-<a href="{% absurl 'admin:app_list' 'ldt_utils' %}">Back to administration page</a>
+<a href="{% url 'admin:app_list' app_label='ldt_utils' %}">Back to administration page</a>
{% endblock %}
--- a/src/ldt/ldt/ldt_utils/templates/admin/ldt_utils/content/reindex_form.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/admin/ldt_utils/content/reindex_form.html Thu May 23 00:17:02 2013 +0200
@@ -1,6 +1,5 @@
{% extends "admin/ldt_utils/app_action.html" %}
{% load i18n %}
-{% load absurl %}
{# reindex contents #}
{% block content %}
{% if message %}
@@ -12,13 +11,13 @@
{% endif %}
<div>
<form method="post"
- action="{% absurl 'admin:ldt_content_reindex' %}">{% csrf_token %}
+ action="{% url 'admin:ldt_content_reindex' %}">{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" /></form>
</div>
-<a href="{% absurl 'admin:app_list' 'ldt_utils' %}">Back to administration page</a>
+<a href="{% url 'admin:app_list' app_label='ldt_utils' %}">Back to administration page</a>
{% endblock %}
--- a/src/ldt/ldt/ldt_utils/templates/admin/ldt_utils/content/stats_form.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/admin/ldt_utils/content/stats_form.html Thu May 23 00:17:02 2013 +0200
@@ -1,6 +1,5 @@
{% extends "admin/ldt_utils/app_action.html" %}
{% load i18n %}
-{% load absurl %}
{# reindex contents #}
{% block content %}
{% if message %}
@@ -12,13 +11,13 @@
{% endif %}
<div>
<form method="post"
- action="{% absurl 'admin:ldt_project_compute_stats' %}">{% csrf_token %}
+ action="{% url 'admin:ldt_project_compute_stats' %}">{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" /></form>
</div>
-<a href="{% absurl 'admin:app_list' 'ldt_utils' %}">Back to administration page</a>
+<a href="{% url 'admin:app_list' app_label='ldt_utils' %}">Back to administration page</a>
{% endblock %}
--- a/src/ldt/ldt/ldt_utils/templates/front/front_all_contents.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/front/front_all_contents.html Thu May 23 00:17:02 2013 +0200
@@ -98,7 +98,7 @@
{% for content in results.object_list %}
<li class="li_media">
<div class="img_and_overlay">
- <a href="{% url 'ldt.ldt_utils.views.front.annot_content' content.iri_id %}">
+ <a href="{% url 'ldt.ldt_utils.views.front.annot_content' content_iri_id=content.iri_id %}">
{% thumbnail content.image "294x165" format="PNG" crop="center" as im %}<img src="{{ im.url }}" class="img_media" width="{{ im.width }}" height="{{ im.height }}" alt="{% trans 'open this media' %}" title="{% trans 'open this media' %}">{% endthumbnail %}
</a>
<div class="overlay">
@@ -112,7 +112,7 @@
</div>
</div>
<div class="bulle_annot" title="{% blocktrans count nb=content.nb_annotations %}{{nb}} annotation on this media{% plural %}{{nb}} annotations on this media{% endblocktrans %}">{{ content.nb_annotations }}</div>
- <p><a href="{% url 'ldt.ldt_utils.views.front.annot_content' content.iri_id %}" title="{% trans 'open this media' %}" ><b>{% if content.title|length > 69 %}{{content.title|slice:":69"}}...{% else %}{{content.title}}{% endif %}</b></a></p>
+ <p><a href="{% url 'ldt.ldt_utils.views.front.annot_content' content_iri_id=content.iri_id %}" title="{% trans 'open this media' %}" ><b>{% if content.title|length > 69 %}{{content.title|slice:":69"}}...{% else %}{{content.title}}{% endif %}</b></a></p>
<p>{% trans 'by' %} IRI | {{content.duration|str_duration:"h"}}</p>
</li>
{% endfor %}
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html Thu May 23 00:17:02 2013 +0200
@@ -1,26 +1,24 @@
{% extends "ldt/ldt_utils/workspace_base.html" %}
{% load i18n %}
{% load static %}
-{% load absurl %}
- {# form of creation of content #}
-{% load adminmedia %}
+{# form of creation of content #}
{% block js_import %}
{{ block.super }}
- <script type="text/javascript" src="{{ADMIN_MEDIA_PREFIX}}js/core.js" ></script>
- <script type="text/javascript" src="{{ADMIN_MEDIA_PREFIX}}js/jquery.init.js"></script>
- <script type="text/javascript" src='{% static "ldt/js/jquery.min.js" %}'></script>
+ <script type="text/javascript" src="{% static 'admin/js/core.js' %}"></script>
+ <script type="text/javascript" src="{% static 'admin/js/jquery.init.js' %}"></script>
+ <script type="text/javascript" src="{% static 'ldt/js/jquery.min.js' %}"></script>
<script type="text/javascript" src="{% url 'ldt.jsi18n' packages='ldt' %}" ></script>
- <script type="text/javascript" src='{% static "ldt/js/projectscontents.js" %}'></script>
- <script type="text/javascript" src='{% static "ldt/js/jquery.textchange.min.js" %}'></script>
- <script type="text/javascript" src='{% static "ldt/js/jquery-ui.min.js" %}'></script>
+ <script type="text/javascript" src="{% static 'ldt/js/projectscontents.js' %}"></script>
+ <script type="text/javascript" src="{% static 'ldt/js/jquery.textchange.min.js' %}"></script>
+ <script type="text/javascript" src="{% static 'ldt/js/jquery-ui.min.js' %}"></script>
{{ content_form.media.js }}
{% endblock %}
{% block js_declaration %}
<script type="text/javascript">
- window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}";
+ window.__admin_media_prefix__ = "{% filter escapejs %}{% get_static_prefix %}/admin/{% endfilter %}";
$(document).ready(function() {
// url_upload, media_prefix, post_added_params, btn_label, success_label, wait_label, cancel_label, remove_url, get_dur_url
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_group.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_group.html Thu May 23 00:17:02 2013 +0200
@@ -1,16 +1,14 @@
{% extends "ldt/ldt_utils/workspace_base.html" %}
{% load i18n %}
{% load static %}
-{% load absurl %}
-{% load adminmedia %}
{% load thumbnail %}
{% block js_import %}
{{ block.super }}
- <script type="text/javascript" src="{% absurl 'ldt.jsi18n' packages='ldt' %}" ></script>
- <script type="text/javascript" src='{% static "ldt/js/projectscontents.js" %}' ></script>
- <script type="text/javascript" src='{% static "ldt/js/tiny_mce/tiny_mce.js" %}'></script>
+ <script type="text/javascript" src="{% url 'ldt.jsi18n' packages='ldt' %}" ></script>
+ <script type="text/javascript" src="{% static 'ldt/js/projectscontents.js' %}" ></script>
+ <script type="text/javascript" src="{% static 'ldt/js/tiny_mce/tiny_mce.js' %}"></script>
{{ content_form.media.js }}
{% endblock %}
@@ -44,7 +42,7 @@
$( this ).find("button[type=submit]").removeClass("e-clicked");
});
- var search_url = "{% absurl 'ldt.ldt_utils.views.workspace.share_filter' filter='__FILTER__' use_groups='false' %}";
+ var search_url = "{% url 'ldt.ldt_utils.views.workspace.share_filter' filter='__FILTER__' use_groups='false' %}";
});
</script>
@@ -55,7 +53,7 @@
<div id="add_group" class="span-18 last">
<div class="projectscontentstitle span-18 last">{% if group_id %}{% trans "Update a group" %}{% else %}{% trans "Create a group" %}{% endif %}</div>
- <form action="{% if group_id %}{% absurl 'ldt.ldt_utils.views.group.update_group' group_id %} {% else %}{% absurl 'ldt.ldt_utils.views.group.create_group' %}{% endif %}" method="POST" enctype="multipart/form-data" {% if target_parent %}target="_parent"{% endif %}>
+ <form action="{% if group_id %}{% url 'ldt.ldt_utils.views.group.update_group' group_id=group_id %} {% else %}{% url 'ldt.ldt_utils.views.group.create_group' %}{% endif %}" method="POST" enctype="multipart/form-data" {% if target_parent %}target="_parent"{% endif %}>
{% csrf_token %}
<input type="hidden" name="form_status" value="{{form_status}}" id="project_form_status" />
<input type="hidden" name="id_group" value="" id="id_group"/>
@@ -67,9 +65,7 @@
{% endfor %}
<label for="description">{% trans "Description" %}</label>
- <textarea id="description" name="description">
- {{ img_container.description }}
- </textarea>
+ <textarea id="description" name="description">{{ img_container.description }}</textarea>
</div>
{% include "ldt/ldt_utils/partial/permissions.html" %}
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html Thu May 23 00:17:02 2013 +0200
@@ -1,7 +1,6 @@
{% extends "ldt/ldt_raw_base.html" %}
{% load static %}
{% load i18n %} {# form of creation of content #}
-{% load adminmedia %}
{% block js_import %}
{{ block.super }}
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/groups.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/groups.html Thu May 23 00:17:02 2013 +0200
@@ -15,9 +15,9 @@
var groups_filter_url = "{% url 'ldt.ldt_utils.views.group.groups_filter' filter='__FILTER__' %}";
var content_filter_url = "{% url 'ldt.ldt_utils.views.content.contents_filter' filter_c='__FILTER__' %}";
var project_filter_url = "{% url 'ldt.ldt_utils.views.project.projects_filter' filter='__FILTER__' is_owner='false' status='0' id_group='__ID_GROUP__' %}";
-var publish_project_url = "{% url 'ldt.ldt_utils.views.project.publish' '__PROJECT_ID__' %}";
-var unpublish_project_url = "{% url 'ldt.ldt_utils.views.project.unpublish' '__PROJECT_ID__' %}";
-var get_group_projects_url = "{% url 'ldt.ldt_utils.views.group.get_group_projects' %}";
+var publish_project_url = "{% url 'ldt.ldt_utils.views.project.publish' id='__PROJECT_ID__' %}";
+var unpublish_project_url = "{% url 'ldt.ldt_utils.views.project.unpublish' id='__PROJECT_ID__' %}";
+var get_group_projects_url = "{% url 'ldt.ldt_utils.views.group.get_group_projects_view' %}";
function init_events(base_node) {
init_events_projects(base_node, "{% url 'ldt.ldt_utils.views.workspace.popup_embed' %}", project_filter_url, publish_project_url, unpublish_project_url)
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/contentslist.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/contentslist.html Thu May 23 00:17:02 2013 +0200
@@ -26,8 +26,8 @@
<tbody class="projectscontentsbody">
{% for content in contents %}
<tr class="imageline {% cycle 'projectscontentsoddline' 'projectscontentsevenline'%}">
- <td class="cellimg"><div class="cellimgdiv"><img src='{% static "ldt/img/page_add.png" %}' title="{% trans 'create project' %}" alt="{% trans 'create project' %}" href="{% url 'ldt.ldt_utils.views.project.create_project' content.iri_id %}" class="ldt_link_create_project"/></div></td>
- <td class="cellimg"><div class="cellimgdiv"><img alt="{% trans 'preview media'%}" title="{% trans 'preview media'%}" src='{% static "ldt/img/control_play.png" %}' href="{% url 'ldt.ldt_utils.views.lignesdetemps.index' content.iri_id %}" class="ldt_link_open_ldt"/></div></td>
+ <td class="cellimg"><div class="cellimgdiv"><img src='{% static "ldt/img/page_add.png" %}' title="{% trans 'create project' %}" alt="{% trans 'create project' %}" href="{% url 'ldt.ldt_utils.views.project.create_project' iri_id=content.iri_id %}" class="ldt_link_create_project"/></div></td>
+ <td class="cellimg"><div class="cellimgdiv"><img alt="{% trans 'preview media'%}" title="{% trans 'preview media'%}" src='{% static "ldt/img/control_play.png" %}' href="{% url 'ldt.ldt_utils.views.lignesdetemps.index' url=content.iri_id %}" class="ldt_link_open_ldt"/></div></td>
<td>{% thumbnail content.image "50x50" format="PNG" crop="top" as im %}<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">{% endthumbnail %}</td>
<td class="contenttitle"><a {% if content.change %} class="contenttitlelink infostooltip" href="{% url 'ldt.ldt_utils.views.content.write_content' iri_id=content.iri_id %}" data-title="{{ content.title}}" data-desc="{{ content.description }}" {% else %} class="contenttitlelink qtiplink" title="{% trans "You can't edit this content" %}" {% endif %}>{{ content.title|default:"_" }}</a></td>
</tr>
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/groupslist.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/groupslist.html Thu May 23 00:17:02 2013 +0200
@@ -45,7 +45,7 @@
{% if group.change %}
<td class="groupimg" >
- <a class="grouplink create_group" title="{% trans 'Change this group'%}" href="{% url 'ldt.ldt_utils.views.group.update_group' group.id %}">
+ <a class="grouplink create_group" title="{% trans 'Change this group'%}" href="{% url 'ldt.ldt_utils.views.group.update_group' group_id=group.id %}">
{% thumbnail group.profile.image "50x50" crop="center" format="PNG" as im %}<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}" class="editable"/>{% empty %} {% endthumbnail %}
</a>
</td>
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/ldt_div.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/ldt_div.html Thu May 23 00:17:02 2013 +0200
@@ -32,8 +32,8 @@
{% else %}
readOnly:'true',
{% endifequal %}
- segmentPassMask:"{% absurl 'ldt.ldt_utils.views.lignesdetemps.index_segment' '{4}' '{0}' '{1}' '{2}' '{3}' %}",
- simplePlayerPassMask:"{% absurl 'ldt.ldt_utils.views.front.annot_content' '{0}' '{4}' '{2}' %}#id={3}"
+ segmentPassMask:"{% absurl 'ldt.ldt_utils.views.lignesdetemps.index_segment' project_id='{4}' content_id='{0}' cutting_id='{1}' ensemble_id='{2}' segment_id='{3}' %}",
+ simplePlayerPassMask:"{% absurl 'ldt.ldt_utils.views.front.annot_content' content_iri_id='{0}' project_id='{4}' cutting_id='{2}' %}#id={3}"
};
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html Thu May 23 00:17:02 2013 +0200
@@ -18,9 +18,9 @@
{% for project in projects %}
<tr class="imageline {% cycle 'projectscontentsoddline' 'projectscontentsevenline'%}" >
- {% url 'ldt.ldt_utils.views.json.project_json_id' project.ldt_id as json_url_id %}
+ {% url 'ldt.ldt_utils.views.json.project_json_id' id=project.ldt_id as json_url_id %}
{% if is_gecko %}
- <td class="cellimg"><div class="cellimgdiv"><a href="{% url 'index_project_full' project.ldt_id %}">
+ <td class="cellimg"><div class="cellimgdiv"><a href="{% url 'index_project_full' id=project.ldt_id %}">
{% if project.change or project.owner == user %}
{% if project.state != 2 %}
<img src='{% static "ldt/img/page_edit.png" %}' alt="{% trans 'open ldt' %}" title="{% trans 'open ldt' %}"/>
@@ -32,7 +32,7 @@
{% endif %}
</a></div></td>
{% else %}
- <td class="cellimg"><div class="cellimgdiv"><a href="{% url 'index_project' project.ldt_id %}" class="ldt_link_open_ldt">
+ <td class="cellimg"><div class="cellimgdiv"><a href="{% url 'index_project' id=project.ldt_id %}" class="ldt_link_open_ldt">
{% if project.change or project.owner == user %}
{% if project.state != 2 %}
<img src='{% static "ldt/img/page_edit.png" %}' alt="{% trans 'open ldt' %}" title="{% trans 'open ldt' %}"/>
@@ -45,7 +45,7 @@
</a></div></td>
{% endif %}
- <td class="cellimg"><div class="cellimgdiv"><img src='{% static "ldt/img/page_copy.png" %}' href="{% url 'ldt.ldt_utils.views.project.copy_project' project.ldt_id group_id %}" class="ldt_link_copy_project" alt="{% trans 'copy project' %}" title="{% trans 'copy project' %}"/></div></td>
+ <td class="cellimg"><div class="cellimgdiv"><img src='{% static "ldt/img/page_copy.png" %}' href="{% url 'ldt.ldt_utils.views.project.copy_project' ldt_id=project.ldt_id group_id=group_id %}" class="ldt_link_copy_project" alt="{% trans 'copy project' %}" title="{% trans 'copy project' %}"/></div></td>
<td class="cellimg">
<div class="cellimgdiv">
{% if project.state == 2 %}
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/publishedprojectslist.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/publishedprojectslist.html Thu May 23 00:17:02 2013 +0200
@@ -17,13 +17,13 @@
<tbody class="projectscontentsbody">
{% for project in projects %}
<tr class="imageline {% cycle 'projectscontentsoddline' 'projectscontentsevenline'%}" >
- {% url 'ldt.ldt_utils.views.json.project_json_id' project.ldt_id as json_url_id %}
+ {% url 'ldt.ldt_utils.views.json.project_json_id' id=project.ldt_id as json_url_id %}
{% if is_gecko %}
- <td class="cellimg"><div class="cellimgdiv"><a href="{% url 'index_project_full' project.ldt_id %}"><img src='{% static "ldt/img/page_eye.png" %}' alt="{% trans 'open ldt' %}" title="{% trans 'open ldt' %}"/></a></div></td>
+ <td class="cellimg"><div class="cellimgdiv"><a href="{% url 'index_project_full' id=project.ldt_id %}"><img src='{% static "ldt/img/page_eye.png" %}' alt="{% trans 'open ldt' %}" title="{% trans 'open ldt' %}"/></a></div></td>
{% else %}
- <td class="cellimg"><div class="cellimgdiv"><a href="{% url 'index_project' project.ldt_id %}" class="ldt_link_open_ldt"><img src='{% static "ldt/img/page_eye.png" %}' alt="{% trans 'open ldt' %}" title="{% trans 'open ldt' %}"/></a></div></td>
+ <td class="cellimg"><div class="cellimgdiv"><a href="{% url 'index_project' id=project.ldt_id %}" class="ldt_link_open_ldt"><img src='{% static "ldt/img/page_eye.png" %}' alt="{% trans 'open ldt' %}" title="{% trans 'open ldt' %}"/></a></div></td>
{% endif %}
- <td class="cellimg"><div class="cellimgdiv"><img src='{% static "ldt/img/page_copy.png" %}' href="{% url 'ldt.ldt_utils.views.project.copy_project' project.ldt_id %}" class="ldt_link_copy_project" alt="{% trans 'copy the project' %}" title="{% trans 'copy the project' %}"/></div></td>
+ <td class="cellimg"><div class="cellimgdiv"><img src='{% static "ldt/img/page_copy.png" %}' href="{% url 'ldt.ldt_utils.views.project.copy_project' ldt_id=project.ldt_id %}" class="ldt_link_copy_project" alt="{% trans 'copy the project' %}" title="{% trans 'copy the project' %}"/></div></td>
<td class="cellimg">
<div class="cellimgdiv">
<a href='{% url 'ldt.ldt_utils.views.workspace.popup_embed' %}?json_url={{WEB_URL}}{{json_url_id}}&player_id=player_project_{{project.ldt_id}}&ldt_id={{project.ldt_id}}'>
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/published_projects.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/published_projects.html Thu May 23 00:17:02 2013 +0200
@@ -14,8 +14,8 @@
var content_filter_url = "{% url 'ldt.ldt_utils.views.content.contents_filter' filter_c='__FILTER__' %}";
var project_filter_url = "{% url 'ldt.ldt_utils.views.project.projects_filter' filter='__FILTER__' is_owner='false' status='2' %}";
-var publish_project_url = "{% url 'ldt.ldt_utils.views.project.publish' '__PROJECT_ID__' %}";
-var unpublish_project_url = "{% url 'ldt.ldt_utils.views.project.unpublish' '__PROJECT_ID__' %}";
+var publish_project_url = "{% url 'ldt.ldt_utils.views.project.publish' id='__PROJECT_ID__' %}";
+var unpublish_project_url = "{% url 'ldt.ldt_utils.views.project.unpublish' id='__PROJECT_ID__' %}";
function init_events(base_node) {
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/search_form.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/search_form.html Thu May 23 00:17:02 2013 +0200
@@ -1,6 +1,5 @@
{% extends "ldt/ldt_base.html" %}
{% load i18n %}
-{% load absurl %}
{% block js_declaration %}
<script type="text/javascript">
@@ -21,7 +20,7 @@
{% block content %}
<form method="post" id="my_form"
- {% comment %}action="{% absurl 'ldt.ldt_utils.views.workspace.search_index' %}"{% endcomment %}
+ {% comment %}action="{% url 'ldt.ldt_utils.views.workspace.search_index' %}"{% endcomment %}
action="{% url 'ldt.ldt_utils.views.workspace.search_index' %}"
accept-charset="utf-8">
{% csrf_token %}
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/workspace_base.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/workspace_base.html Thu May 23 00:17:02 2013 +0200
@@ -15,8 +15,8 @@
var content_filter_url = "{% url 'ldt.ldt_utils.views.content.contents_filter' filter_c='__FILTER__' %}";
var project_filter_url = "{% url 'ldt.ldt_utils.views.project.projects_filter' filter='__FILTER__' is_owner='true' status='0' %}";
-var publish_project_url = "{% url 'ldt.ldt_utils.views.project.publish' '__PROJECT_ID__' %}";
-var unpublish_project_url = "{% url 'ldt.ldt_utils.views.project.unpublish' '__PROJECT_ID__' %}";
+var publish_project_url = "{% url 'ldt.ldt_utils.views.project.publish' id='__PROJECT_ID__' %}";
+var unpublish_project_url = "{% url 'ldt.ldt_utils.views.project.unpublish' id='__PROJECT_ID__' %}";
function init_events(base_node) {
init_events_all(base_node, "{% url 'ldt.ldt_utils.views.workspace.popup_embed' %}", content_filter_url, project_filter_url, publish_project_url, unpublish_project_url);
--- a/src/ldt/ldt/ldt_utils/tests/ldt_tests.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/tests/ldt_tests.py Thu May 23 00:17:02 2013 +0200
@@ -83,7 +83,7 @@
query = base64.urlsafe_b64encode(search.encode('utf8'))
self.project.contents.add(self.cont3, self.cont4)
- ldoc = self.LU.generate_init([field, query], 'ldt.ldt_utils.views.lignesdetemps.search_ldt', 'ldt.ldt_utils.views.lignesdetemps.search_segments')
+ ldoc = self.LU.generate_init({'field':field, 'query':query}, 'ldt.ldt_utils.views.lignesdetemps.search_ldt', 'ldt.ldt_utils.views.lignesdetemps.search_segments')
self.assertEqual(ldoc.xpath("/iri/files/init")[0].tag, "init")
self.assertEqual(ldoc.xpath("/iri/files/library")[0].tag, "library")
def test_create_ldt(self):
--- a/src/ldt/ldt/ldt_utils/urls.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/urls.py Thu May 23 00:17:02 2013 +0200
@@ -1,4 +1,4 @@
-from django.conf.urls.defaults import patterns, url, include
+from django.conf.urls import patterns, url, include
from ldt.management import test_ldt
# Uncomment the next two lines to enable the admin:
--- a/src/ldt/ldt/ldt_utils/utils.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/utils.py Thu May 23 00:17:02 2013 +0200
@@ -3,7 +3,6 @@
from django.utils.translation import ugettext as _
from StringIO import StringIO
import datetime
-import django.core.urlresolvers
import lxml.etree #@UnresolvedImport
import uuid
from ldt.utils.url import request_with_auth
@@ -147,10 +146,9 @@
elementFiles = lxml.etree.SubElement(iri, 'files')
elementInit = lxml.etree.SubElement(elementFiles, 'init')
elementfile = lxml.etree.SubElement(elementInit, 'file')
- elementfile.set('src', absurl_norequest(method, args=url))
- elementfile.set('src', django.core.urlresolvers.reverse(method, args=url))
+ elementfile.set('src', absurl_norequest(method, kwargs=url))
if(search):
- elementfile.set("segsel", absurl_norequest(search, args=url))
+ elementfile.set("segsel", absurl_norequest(search, kwargs=url))
lxml.etree.SubElement(elementFiles, 'recent')
lxml.etree.SubElement(elementFiles, 'library')
--- a/src/ldt/ldt/ldt_utils/views/group.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/views/group.py Thu May 23 00:17:02 2013 +0200
@@ -1,13 +1,15 @@
from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import Group
+from django.db import transaction
from django.http import HttpResponseServerError
from django.shortcuts import render_to_response, get_object_or_404, redirect
from django.template import RequestContext
+from guardian.shortcuts import (remove_perm, get_objects_for_group,
+ get_objects_for_user)
from ldt.ldt_utils.forms import GroupAddForm
-from guardian.shortcuts import remove_perm, get_objects_for_group, get_objects_for_user
+from ldt.security.cache import get_cached_checker, cached_assign
from ldt.security.utils import add_change_attr, get_userlist, get_userlist_group
-from ldt.security.cache import get_cached_checker, cached_assign
from ldt.user.forms import PictureForm
@@ -45,6 +47,7 @@
@login_required
+@transaction.commit_on_success
def create_group(request):
if not request.user.has_perm('auth.add_group'):
return HttpResponseServerError('<h1>User %s can not create a group.</h1>' % request.user.username)
@@ -96,6 +99,7 @@
'elem_list' : get_userlist(request.user), 'profile_picture_form': picture_form}, context_instance=RequestContext(request))
@login_required
+@transaction.commit_on_success
def update_group(request, group_id):
group = get_object_or_404(Group, id=group_id)
checker = get_cached_checker(request.user)
--- a/src/ldt/ldt/ldt_utils/views/lignesdetemps.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/views/lignesdetemps.py Thu May 23 00:17:02 2013 +0200
@@ -24,7 +24,7 @@
language_code = request.LANGUAGE_CODE[:2]
- url = absurl(request, "ldt.ldt_utils.views.lignesdetemps.search_init", args=[field, query])
+ url = absurl(request, "ldt.ldt_utils.views.lignesdetemps.search_init", kwargs={'field':field, 'query':query})
colorurl=static("ldt/swf/ldt/pkg/color.xml")
i18nurl=static("ldt/swf/ldt/pkg/i18n")
baseurl=static("ldt/swf/ldt/")
@@ -34,7 +34,7 @@
ldtgen = LdtUtils()
- doc = ldtgen.generate_init([field, query], 'ldt.ldt_utils.views.lignesdetemps.search_ldt', 'ldt.ldt_utils.views.lignesdetemps.search_segments')
+ doc = ldtgen.generate_init({'field':field, 'query':query}, 'ldt.ldt_utils.views.lignesdetemps.search_ldt', 'ldt.ldt_utils.views.lignesdetemps.search_segments')
resp = HttpResponse(mimetype="text/xml;charset=utf-8")
resp.write(lxml.etree.tostring(doc, pretty_print=True, encoding="utf-8"))
@@ -86,7 +86,7 @@
def index_segment(request, project_id, content_id, cutting_id, ensemble_id, segment_id):
- url_str = absurl(request, "ldt.ldt_utils.views.lignesdetemps.init_segment", args=[project_id, content_id, ensemble_id, cutting_id, segment_id])
+ url_str = absurl(request, "ldt.ldt_utils.views.lignesdetemps.init_segment", kwargs={'project_id':project_id, 'content_id':content_id, 'ensemble_id':ensemble_id, 'cutting_id':cutting_id, 'segment_id':segment_id})
post_url = ""
language_code = request.LANGUAGE_CODE[:2]
readonly = 'true'
@@ -102,7 +102,7 @@
get_object_or_404(Project.safe_objects, ldt_id=project_id)
ldtgen = LdtUtils()
- doc = ldtgen.generate_init([project_id, content_id, ensemble_id, cutting_id, segment_id], 'ldt.ldt_utils.views.lignesdetemps.ldt_segment', 'ldt.ldt_utils.views.lignesdetemps.highlight_segment')
+ doc = ldtgen.generate_init({'project_id':project_id, 'content_id':content_id, 'ensemble_id':ensemble_id, 'cutting_id':cutting_id, 'segment_id':segment_id}, 'ldt.ldt_utils.views.lignesdetemps.ldt_segment', 'ldt.ldt_utils.views.lignesdetemps.highlight_segment')
return HttpResponse(lxml.etree.tostring(lxml.etree.ElementTree(doc), pretty_print=True), mimetype="text/xml;charset=utf-8")
def highlight_segment(request, project_id, content_id, ensemble_id, cutting_id, segment_id):
@@ -188,7 +188,7 @@
@login_required
def index_project(request, id, full=False): # @ReservedAssignment
- urlStr = absurl(request, "ldt.ldt_utils.views.lignesdetemps.init", args=['ldt_project', id])
+ urlStr = absurl(request, "ldt.ldt_utils.views.lignesdetemps.init", kwargs={'method':'ldt_project', 'url':id})
posturl = absurl(request, "ldt.ldt_utils.views.lignesdetemps.save_ldt_project")
language_code = request.LANGUAGE_CODE[:2]
colorurl = static("ldt/swf/ldt/pkg/color.xml")
@@ -224,7 +224,7 @@
def embed_ldt(request, id): # @ReservedAssignment
# Almost identical to index_project but without login_required and less parameters
- urlStr = absurl(request, "ldt.ldt_utils.views.lignesdetemps.init", args=['ldt_project', id])
+ urlStr = absurl(request, "ldt.ldt_utils.views.lignesdetemps.init", kwargs={'method':'ldt_project', 'url':id})
posturl = ""
language_code = request.LANGUAGE_CODE[:2]
colorurl = absstatic(request, "ldt/swf/ldt/pkg/color.xml")
@@ -245,7 +245,7 @@
def init(request, method, url):
ldtgen = LdtUtils()
- doc = ldtgen.generate_init([url], 'ldt.ldt_utils.views.lignesdetemps.' + method, None)
+ doc = ldtgen.generate_init({'id':url}, 'ldt.ldt_utils.views.lignesdetemps.' + method, None)
library = doc.xpath('/iri/files/library')[0]
for c in Content.safe_objects.all().select_related("media_obj"):
@@ -359,7 +359,7 @@
def index(request, url):
- urlStr = absurl(request, "ldt.ldt_utils.views.lignesdetemps.init", args=['ldt', url])
+ urlStr = absurl(request, "ldt.ldt_utils.views.lignesdetemps.init", kwargs={'method':'ldt', 'url':url})
language_code = request.LANGUAGE_CODE[:2]
colorurl=absstatic(request, "ldt/swf/ldt/pkg/color.xml")
i18nurl=absstatic(request, "ldt/swf/ldt/pkg/i18n")
--- a/src/ldt/ldt/ldt_utils/views/project.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/views/project.py Thu May 23 00:17:02 2013 +0200
@@ -45,9 +45,9 @@
form_status = "saved"
is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1);
if is_gecko :
- redirect_to = reverse('index_project_full', args=[project.ldt_id])
+ redirect_to = reverse('index_project_full', kwargs={'id':project.ldt_id})
else:
- return HttpResponseRedirect(reverse('index_project', args=[project.ldt_id]))
+ return HttpResponseRedirect(reverse('index_project', kwargs={'id':project.ldt_id}))
else:
form = LdtAddForm()
@@ -89,14 +89,14 @@
# Modal window is not used with firefox
is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1);
if is_gecko :
- redirect_to = reverse('index_project_full', args=[project.ldt_id])
+ redirect_to = reverse('index_project_full', kwargs={'id':project.ldt_id})
else:
- return HttpResponseRedirect(reverse('index_project', args=[project.ldt_id]))
+ return HttpResponseRedirect(reverse('index_project', kwargs={'id':project.ldt_id}))
else:
form = AddProjectForm()
return render_to_response('ldt/ldt_utils/create_ldt.html', {'form':form, 'form_status': form_status, 'contents':contents,'groups' : groups,
- 'redirect_to': redirect_to, 'elem_list': get_userlist(request.user), 'create_project_action':reverse("ldt.ldt_utils.views.project.create_project", args=[iri_id])}, context_instance=RequestContext(request))
+ 'redirect_to': redirect_to, 'elem_list': get_userlist(request.user), 'create_project_action':reverse("ldt.ldt_utils.views.project.create_project", kwargs={'iri_id':iri_id})}, context_instance=RequestContext(request))
@login_required
def update_project(request, ldt_id):
@@ -174,7 +174,7 @@
return render_to_response('ldt/ldt_utils/create_ldt.html', {'form':form, 'form_status':form_status, 'groups': groups, 'elem_list': get_userlist(request.user),
'ldt_id': ldt_id, 'contents':contents, 'display_reset':display_reset, 'member_list': member_list, 'admin_list': admin_list,
- 'create_project_action':reverse("ldt.ldt_utils.views.project.update_project", args=[ldt_id]),
+ 'create_project_action':reverse("ldt.ldt_utils.views.project.update_project", kwargs={'ldt_id':ldt_id}),
'profile_picture_form': picture_form}, context_instance=RequestContext(request))
@login_required
@@ -191,9 +191,9 @@
project = project.copy_project(title=form.cleaned_data['title'], user=user, group=group)
is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1);
if is_gecko:
- return HttpResponseRedirect(reverse('index_project_full', args=[project.ldt_id]))
+ return HttpResponseRedirect(reverse('index_project_full', kwargs={'id':project.ldt_id}))
else:
- return HttpResponseRedirect(reverse('index_project', args=[project.ldt_id]))
+ return HttpResponseRedirect(reverse('index_project', kwargs={'id':project.ldt_id}))
else:
form = CopyProjectForm()
# Modal window is not used with firefox, so we ask to submit the form in _parent in firefox case.
--- a/src/ldt/ldt/ldt_utils/views/workspace.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/ldt_utils/views/workspace.py Thu May 23 00:17:02 2013 +0200
@@ -122,7 +122,7 @@
if not project_id :
return HttpResponseForbidden(_("Parameters project_id or content_id must be given in the url"))
- json_url = reverse("projectjson_id", args=[project_id])
+ json_url = reverse("projectjson_id", kwargs={'id':project_id})
player_id = "player_project_" + project_id
ldt_id = project_id
rend_dict = get_datas_for_embed(request, json_url, player_id, ldt_id)
@@ -299,7 +299,7 @@
page = sform.cleaned_data["page"] or 1
ldt_pres = sform.cleaned_data["ldt_pres"]
if ldt_pres:
- url = absurl(request, "ldt.ldt_utils.views.lignesdetemps.search_init", args=[field, queryStr])
+ url = absurl(request, "ldt.ldt_utils.views.lignesdetemps.search_init", kwargs={'field':field, 'query':queryStr})
return render_to_response('ldt/ldt_utils/init_ldt_full.html', {'colorurl': colorurl, 'i18nurl': i18nurl , 'language': language_code, 'baseurl': baseurl, 'url': url}, context_instance=RequestContext(request))
else:
results, nb, nb_segment = get_search_results(request, search, field, page)
--- a/src/ldt/ldt/security/utils.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/security/utils.py Thu May 23 00:17:02 2013 +0200
@@ -147,7 +147,7 @@
return [users_list + groups_list, admin_users + admin_groups]
def get_userlist_group(group, user):
- members = group.user_set.all()
+ members = group.ldtuser_set.all()
admin = get_users_with_perms(group)
member_list = []
--- a/src/ldt/ldt/settings.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/settings.py Thu May 23 00:17:02 2013 +0200
@@ -75,8 +75,6 @@
LOG_LEVEL = getattr(settings, 'LOG_LEVEL', logging.INFO)
EMPTY_MEDIA_EXTERNALID = getattr(settings, 'EMPTY_MEDIA_EXTERNALID', None)
-ADMIN_MEDIA_PREFIX = getattr(settings, 'ADMIN_MEDIA_PREFIX', None)
-
TEST_WEBSERVER_ADDRPORT = getattr(settings, 'TEST_WEBSERVER_ADDRPORT', '127.0.0.1:8000')
ACCOUNT_ACTIVATION_DAYS = getattr(settings, 'ACCOUNT_ACTIVATION_DAYS', 7)
--- a/src/ldt/ldt/templates/admin/cms_change_form.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/templates/admin/cms_change_form.html Thu May 23 00:17:02 2013 +0200
@@ -1,5 +1,5 @@
{% extends "admin/page_change_form.html" %}
-{% load i18n admin_modify adminmedia cms_tags cms_admin %}
+{% load i18n admin_modify static cms_tags cms_admin %}
{% block js_import %}
{% endblock %}
{% block extrahead %}
@@ -7,7 +7,7 @@
{% if not add %}
<script type="text/javascript" src="{{ CMS_MEDIA_URL }}js/change_form.js"></script>
{% endif %}
-<script type="text/javascript" src="{% admin_media_prefix %}js/urlify.js"></script>
+<script type="text/javascript" src="{% static 'admin/js/urlify.js' %}"></script>
{% if add %}
<script type="text/javascript">
--- a/src/ldt/ldt/templates/admin/cms_change_list.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/templates/admin/cms_change_list.html Thu May 23 00:17:02 2013 +0200
@@ -1,5 +1,5 @@
{% extends "admin/page_change_list.html" %}
-{% load adminmedia admin_list i18n cms_admin js %}
+{% load admin_list i18n cms_admin js %}
{% block bodyclass %}change-list{% endblock %}
{% if not is_popup %}{% block breadcrumbs %}
--- a/src/ldt/ldt/templates/admin/index.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/templates/admin/index.html Thu May 23 00:17:02 2013 +0200
@@ -1,7 +1,7 @@
{% extends "admin/base_site.html" %}
{% load i18n %}
-{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% load adminmedia %}{% admin_media_prefix %}css/dashboard.css" />{% endblock %}
+{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% load static %}{% static 'admin/css/dashboard.css' %}" />{% endblock %}
{% block coltype %}colMS{% endblock %}
--- a/src/ldt/ldt/templates/admin/page_base.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/templates/admin/page_base.html Thu May 23 00:17:02 2013 +0200
@@ -3,8 +3,8 @@
{% block css_import %}
{{ block.super }}
- <link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% load adminmedia %}{% admin_media_prefix %}css/page_base.css{% endblock %}" />
- {% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% block stylesheet_rtl %}{% admin_media_prefix %}css/rtl.css{% endblock %}" />{% endif %}
+ <link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% load static %}{% static 'admin/css/page_base.css' %}{% endblock %}" />
+ {% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% block stylesheet_rtl %}{% static 'admin/css/rtl.css' %}{% endblock %}" />{% endif %}
{% endblock %}
--- a/src/ldt/ldt/templates/admin/page_change_form.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/templates/admin/page_change_form.html Thu May 23 00:17:02 2013 +0200
@@ -1,12 +1,12 @@
{% extends "admin/page_base_site.html" %}
-{% load i18n admin_modify adminmedia %}
+{% load i18n admin_modify static %}
{% block extrahead %}{{ block.super }}
<script type="text/javascript" src="../../../jsi18n/"></script>
{{ media }}
{% endblock %}
-{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/forms.css" />{% endblock %}
+{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% static 'admin/css/forms.css' %}" />{% endblock %}
{% block coltype %}{% if ordered_objects %}colMS{% else %}colM{% endif %}{% endblock %}
--- a/src/ldt/ldt/templates/admin/page_change_list.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/templates/admin/page_change_list.html Thu May 23 00:17:02 2013 +0200
@@ -1,11 +1,11 @@
{% extends "admin/page_base_site.html" %}
-{% load adminmedia admin_list i18n %}
+{% load static admin_list i18n %}
{% block extrastyle %}
{{ block.super }}
- <link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/changelists.css" />
+ <link rel="stylesheet" type="text/css" href="{% static 'admin/css/changelists.css' %}" />
{% if cl.formset %}
- <link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/forms.css" />
+ <link rel="stylesheet" type="text/css" href="{% static 'admin/css/forms.css' %}" />
<script type="text/javascript" src="../../jsi18n/"></script>
{% endif %}
{{ media }}
--- a/src/ldt/ldt/templates/admin/page_index.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/templates/admin/page_index.html Thu May 23 00:17:02 2013 +0200
@@ -1,7 +1,7 @@
{% extends "admin/page_base_site.html" %}
{% load i18n %}
-{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% load adminmedia %}{% admin_media_prefix %}css/dashboard.css" />{% endblock %}
+{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% load static %}{% static 'admin/css/dashboard.css' %}" />{% endblock %}
{% block coltype %}colMS{% endblock %}
--- a/src/ldt/ldt/templates/admin/page_login.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/templates/admin/page_login.html Thu May 23 00:17:02 2013 +0200
@@ -1,7 +1,7 @@
{% extends "admin/page_base_site.html" %}
{% load i18n %}
-{% block extrastyle %}{% load adminmedia %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/login.css" />{% endblock %}
+{% block extrastyle %}{% load static %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% static 'admin/css/login.css' %}" />{% endblock %}
{% block bodyclass %}{% endblock %}
--- a/src/ldt/ldt/templates/cms/admin/cms/page/change_form.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/templates/cms/admin/cms/page/change_form.html Thu May 23 00:17:02 2013 +0200
@@ -1,11 +1,11 @@
{% extends "admin/base_site.html" %}
-{% load i18n admin_modify adminmedia cms_admin %}
+{% load i18n admin_modify static cms_admin %}
{% block extrahead %}{{ block.super }}
<script type="text/javascript" src="../../../../jsi18n/"></script>
{% for js in javascript_imports %}{% include_admin_script js %}{% endfor %}
{% endblock %}
-{% block stylesheet %}{% admin_media_prefix %}css/forms.css" />
-<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}cms/admin.css{% endblock %}
+{% block stylesheet %}{% static 'admin/css/forms.css' %}" />
+<link rel="stylesheet" type="text/css" href="{% static 'admin/cms/admin.css' %}{% endblock %}
{% block coltype %}{% if ordered_objects %}colMS{% else %}colM{% endif %}{% endblock %}
{% block bodyclass %}{{ opts.app_label }}-{{ opts.object_name.lower }} change-form{% endblock %}
{% block userlinks %}<a href="../../../doc/">{% trans 'Documentation' %}</a> / <a href="../../../password_change/">{% trans 'Change password' %}</a> / <a href="../../../logout/">{% trans 'Log out' %}</a>{% endblock %}
--- a/src/ldt/ldt/text/urls.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/text/urls.py Thu May 23 00:17:02 2013 +0200
@@ -1,4 +1,4 @@
-from django.conf.urls.defaults import patterns, url
+from django.conf.urls import patterns, url
# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
--- a/src/ldt/ldt/user/admin.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/user/admin.py Thu May 23 00:17:02 2013 +0200
@@ -1,17 +1,20 @@
from django.contrib import admin
-from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group
from guardian.admin import GuardedModelAdmin
+from ldt.user.models import LdtUser
from models import GroupProfile
-User = get_user_model()
-
class GroupProfileInline(admin.StackedInline):
model = GroupProfile
class GroupAdmin(GuardedModelAdmin):
inlines = [GroupProfileInline, ]
+class LdtUserAdmin(admin.ModelAdmin):
+ pass
+
admin.site.unregister(Group)
-admin.site.register(Group, GroupAdmin)
\ No newline at end of file
+admin.site.register(Group, GroupAdmin)
+
+admin.site.register(LdtUser, LdtUserAdmin)
\ No newline at end of file
--- a/src/ldt/ldt/user/forms.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/user/forms.py Thu May 23 00:17:02 2013 +0200
@@ -1,10 +1,123 @@
from django import forms
from django.conf import settings
from django.contrib.auth import get_user_model
+from django.contrib.auth.forms import UserCreationForm, UserChangeForm
+from django.contrib.auth.models import Group
+from django.forms.util import ErrorList
from django.utils.translation import gettext as _
-from django.contrib.auth.models import Group
User = get_user_model()
+
+class LdtForm(UserCreationForm):
+
+ class Meta:
+ model = User
+
+ 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(LdtForm, self).__init__(data, files, auto_id, prefix,
+ initial, error_class, label_suffix, empty_permitted, instance)
+
+ if instance:
+ self.fields['password1'].required = False
+ self.fields['password1'].label = _('New password')
+ self.fields['password2'].required = False
+ self.fields['password2'].label = _('New password confirmation')
+
+ self._password_change = True
+
+ def clean_username(self):
+ if self.instance:
+ return self.cleaned_data['username']
+ return super(LdtForm, self).clean_username()
+
+ def clean_password2(self):
+ if self.instance and self.cleaned_data['password1'] == '' and self.cleaned_data['password2'] == '':
+ self._password_change = False
+ return u''
+ return super(LdtForm, self).clean_password2()
+
+
+ def save(self, commit=True):
+ Super = self._password_change and LdtForm or UserCreationForm
+ user = super(Super, self).save(commit=False)
+ # if user.pk != None:
+ # self.save_m2m()
+
+ if commit:
+ user.save()
+
+ return user
+
+
+class EmailChangeForm(forms.Form):
+ email1 = forms.EmailField(label=_("E-mail"), max_length=75)
+ email2 = forms.EmailField(label=_("E-mail"), max_length=75)
+
+ def __init__(self, user=None, *args, **kwargs):
+ self.user = user
+ super(EmailChangeForm, self).__init__(*args, **kwargs)
+
+ def clean_email2(self):
+ email1 = self.cleaned_data.get('email1')
+ email2 = self.cleaned_data.get('email2')
+ if email1 and email2:
+ if email1 != email2:
+ raise forms.ValidationError(_("The two emails didn't match."))
+ return email2
+
+
+ def save(self):
+ self.user.email = self.cleaned_data['email1']
+ self.user.save()
+ return self.user
+
+
+class NameChangeForm(forms.Form):
+ first_name = forms.CharField(label=_("First name"), max_length=30)
+ last_name = forms.CharField(label=_("Last name"), max_length=30)
+
+ def __init__(self, user=None, *args, **kwargs):
+ self.user = user
+ super(NameChangeForm, self).__init__(*args, **kwargs)
+
+
+ def save(self):
+ self.user.first_name = self.cleaned_data['first_name']
+ self.user.last_name = self.cleaned_data['last_name']
+ self.user.save()
+ return self.user
+
+
+class ProfileForm(UserChangeForm):
+
+ def __init__(self, user=None, *args, **kwargs):
+ #self.user = user
+ super(ProfileForm, self).__init__(*args, **kwargs)
+
+
+ class Meta:
+ model = User
+ fields = ('username', 'email', 'first_name', 'last_name', 'password')
+
+
+class LanguageChangeForm(forms.Form):
+ language = forms.ChoiceField(label=_("Language"), choices=settings.LANGUAGES)
+
+ def __init__(self, user=None, *args, **kwargs):
+ self.user = user
+ super(LanguageChangeForm, self).__init__(*args, **kwargs)
+
+ def save(self):
+ profile = self.user.get_profile()
+ profile.language = self.cleaned_data['language']
+ profile.save()
+ return self.user
class PictureForm(forms.Form):
image=forms.ImageField(label=_("Profile picture"), required=False)
--- a/src/ldt/ldt/user/models.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/user/models.py Thu May 23 00:17:02 2013 +0200
@@ -1,12 +1,11 @@
from django.conf import settings
-from django.contrib.auth.models import (AbstractUser, User, UserManager, Group,
+from django.contrib.auth.models import (AbstractUser, UserManager, Group,
BaseUserManager)
from django.db import models
from django.db.models.signals import post_save
from django.utils import timezone
from sorl.thumbnail import ImageField
-
class LdtUserManager(BaseUserManager):
def create_user(self, username, email=None, password=None, **extra_fields):
@@ -46,9 +45,11 @@
profile = GroupProfile()
profile.group_id = instance.id
profile.save()
- admins = User.objects.filter(is_superuser=True)
+ admins = LdtUser.objects.filter(is_superuser=True)
if admins:
- instance.user_set.add(admins[0])
+ admin_user = admins[0]
+ admin_user.groups.add(instance)
+ admin_user.save()
class LdtUser(AbstractUser):
language = models.CharField(max_length=2, default=settings.LANGUAGE_CODE[:2])
--- a/src/ldt/ldt/user/templates/ldt/user/login_form.html Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/user/templates/ldt/user/login_form.html Thu May 23 00:17:02 2013 +0200
@@ -1,11 +1,10 @@
{% load i18n %}
-{% load absurl %}
{# print user's state and form of login #}
{% block js_import %}
{{block.super}}
<script language="javascript">
- var url_login_ajax='{% absurl "ldt.user.views.login_ajax" %}';
+ var url_login_ajax='{% url "ldt.user.views.login_ajax" %}';
{% if reload %}
var reload=true;
{% else %}
--- a/src/ldt/ldt/user/urls.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/user/urls.py Thu May 23 00:17:02 2013 +0200
@@ -1,6 +1,9 @@
-from django.conf.urls.defaults import patterns, url
+from django.conf.urls import patterns, url
urlpatterns = patterns('',
url(r'^loginAjax/$', 'ldt.user.views.login_ajax'),
+ url(r'^profile/$', 'ldt.user.views.profile'),
+ url(r'^password/$', 'ldt.user.views.password'),
+ url(r'^picture/$', 'ldt.user.views.profile_picture'),
url(r'^logout/', 'ldt.user.views.logout_view'),
)
--- a/src/ldt/ldt/user/views.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/user/views.py Thu May 23 00:17:02 2013 +0200
@@ -1,10 +1,85 @@
+from .forms import ProfileForm, LanguageChangeForm, PictureForm
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.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render_to_response
from django.template import RequestContext, loader
from django.utils import simplejson
from django.utils.translation import ugettext as _
+from django.views.i18n import set_language
+@login_required
+def profile(request):
+ msg = ''
+ profile = request.user.get_profile()
+ user_language = profile.language
+
+ if request.method == "POST":
+ profile_form = ProfileForm(request.user, request.POST, instance=request.user)
+ language_form = LanguageChangeForm(request.user, request.POST)
+ password_form = PasswordChangeForm(request.user)
+ if profile_form.is_valid() and language_form.is_valid():
+ profile_form.save()
+ language_form.save()
+ set_language(request)
+ msg = _("Your profile has been updated.")
+ user_language = language_form.cleaned_data['language']
+
+ else:
+ language_form = LanguageChangeForm()
+ profile_form = ProfileForm(instance=request.user)
+ password_form = PasswordChangeForm(request.user)
+ profile_picture_form = PictureForm()
+
+ return render_to_response('ldt/user/change_profile.html', {'profile_form' : profile_form, 'language_form' : language_form, 'password_form' : password_form, 'user_language' : user_language, 'profile_picture_form':profile_picture_form, 'msg' : msg }, context_instance=RequestContext(request))
+
+
+@login_required
+def password(request):
+ msg = ''
+ user_language = request.user.get_profile().language
+
+ if request.method == "POST":
+ password_form = PasswordChangeForm(request.user, request.POST)
+ profile_form = ProfileForm(instance=request.user)
+ language_form = LanguageChangeForm()
+ if password_form.is_valid():
+ password_form.save()
+ msg = _("Your password has been updated.")
+
+ else:
+ language_form = LanguageChangeForm()
+ profile_form = ProfileForm()
+ password_form = PasswordChangeForm(request.user)
+
+ profile_picture_form = PictureForm()
+
+ return render_to_response('ldt/user/change_profile.html', {'profile_form' : profile_form, 'language_form' : language_form, 'password_form' : password_form, 'user_language' : user_language, 'profile_picture_form':profile_picture_form, 'msg' : msg }, context_instance=RequestContext(request))
+
+
+@login_required
+def profile_picture(request):
+ msg = ''
+ user_language = request.user.get_profile().language
+
+ if request.method == "POST":
+ profile_form = ProfileForm(instance=request.user)
+ language_form = LanguageChangeForm(request.user, request.POST)
+ password_form = PasswordChangeForm(request.user)
+ profile_picture_form = PictureForm(request.user, request.POST, request.FILES)
+ if profile_picture_form.is_valid():
+ profile_picture_form.save()
+ msg = _("Your profile picture has been updated.")
+
+ else:
+ language_form = LanguageChangeForm()
+ profile_form = ProfileForm()
+ password_form = PasswordChangeForm(request.user)
+ profile_picture_form = PictureForm()
+
+ return render_to_response('ldt/user/change_profile.html', {'profile_form' : profile_form, 'language_form' : language_form, 'password_form' : password_form, 'user_language' : user_language, 'profile_picture_form':profile_picture_form, 'msg' : msg }, context_instance=RequestContext(request))
+
def logout_view(request):
logout(request)
--- a/src/ldt/ldt/utils/context_processors.py Tue May 21 17:20:25 2013 +0200
+++ b/src/ldt/ldt/utils/context_processors.py Thu May 23 00:17:02 2013 +0200
@@ -4,8 +4,11 @@
def ldt_context(request):
- return {'BASE_URL': settings.BASE_URL, 'MEDIA_URL': settings.MEDIA_URL, \
- 'WEB_URL': get_web_url(), \
- 'ADMIN_MEDIA_PREFIX': settings.ADMIN_MEDIA_PREFIX, 'VERSION': ldt.get_version(), \
- 'WEB_VERSION' : settings.WEB_VERSION, }
+ return {
+ 'BASE_URL': settings.BASE_URL,
+ 'MEDIA_URL': settings.MEDIA_URL,
+ 'WEB_URL': get_web_url(),
+ 'VERSION': ldt.get_version(),
+ 'WEB_VERSION' : settings.WEB_VERSION,
+ }