--- a/web/franceculture/templates/base.html Thu Sep 23 13:45:21 2010 +0200
+++ b/web/franceculture/templates/base.html Thu Sep 23 18:20:24 2010 +0200
@@ -42,10 +42,10 @@
{% url ldt.user.views.profile as profile_url %}
<ul class="tabs">
<li class='{% active request "active" workspace_url %}'><a href="{{ workspace_url }}" >{% trans "home" %}</a></li>
- <li class='{% active request "active" content_url %}'><a href="{{ content_url }}">{% trans "contents" %}</a></li>
+ <!--li class='{% active request "active" content_url %}'><a href="{{ content_url }}">{% trans "contents" %}</a></li>
<li class='{% active request "active" space_url %}'><a href="{{ space_url }}">{% trans "indexation projects" %}</a></li>
<li class='{% active request "active" "" %}'><a href="#">{% trans "accounts" %}</a></li>
- <li class='{% active request "active" profile_url %}'><a href="{{ profile_url }}" >{% trans "Profiles" %}</a> </li>
+ <li class='{% active request "active" profile_url %}'><a href="{{ profile_url }}" >{% trans "Profiles" %}</a> </li-->
</ul>
{% endif %}
</div>
--- a/web/franceculture/templates/franceculture/workspace.html Thu Sep 23 13:45:21 2010 +0200
+++ b/web/franceculture/templates/franceculture/workspace.html Thu Sep 23 18:20:24 2010 +0200
@@ -12,12 +12,15 @@
<script type="text/javascript">
var content_filter_url = "{% url franceculture.views.contentsfilter filter='__FILTER__' %}";
-var project_filter_url = "{% url franceculture.views.projectsfilter filter='__FILTER__' is_owner='false' %}";
+var project_filter_url = "{% url franceculture.views.projectsfilter filter='__FILTER__' is_owner='false' status='0' %}";
+var publish_project_url = "{% url ldt.ldt_utils.views.publish '__PROJECT_ID__' 'false' %}";
+var unpublish_project_url = "{% url ldt.ldt_utils.views.unpublish '__PROJECT_ID__' 'false' %}";
+
function init_events(base_node) {
- init_events_contents(base_node, "{% url franceculture.views.popup_embed %}");
-
+ init_events_all(base_node, "{% url franceculture.views.popup_embed %}", content_filter_url, project_filter_url, publish_project_url, unpublish_project_url);
+
}
$(document).ready(function(){
--- a/web/franceculture/templates/ldt/ldt_utils/content_list.html Thu Sep 23 13:45:21 2010 +0200
+++ b/web/franceculture/templates/ldt/ldt_utils/content_list.html Thu Sep 23 18:20:24 2010 +0200
@@ -14,7 +14,7 @@
function init_events(base_node) {
- init_events_contents(base_node, "{% url franceculture.views.popup_embed %}");
+ init_events_contents(base_node, "{% url franceculture.views.popup_embed %}", content_filter_url);
}
$(document).ready(function(){
--- a/web/franceculture/templates/ldt/ldt_utils/ldt_list.html Thu Sep 23 13:45:21 2010 +0200
+++ b/web/franceculture/templates/ldt/ldt_utils/ldt_list.html Thu Sep 23 18:20:24 2010 +0200
@@ -11,7 +11,7 @@
{{block.super}}
<script type="text/javascript">
-searchprojectfilterurl = "{% url franceculture.views.projectsfilter filter='__FILTER__' is_owner='true' %}";
+searchprojectfilterurl = "{% url franceculture.views.projectsfilter filter='__FILTER__' is_owner='true' status='0' %}";
publishprojecturl = "{% url ldt.ldt_utils.views.publish '__PROJECT_ID__' 'false' %}";
unpublishprojecturl = "{% url ldt.ldt_utils.views.unpublish '__PROJECT_ID__' 'false' %}";
--- a/web/franceculture/urls.py Thu Sep 23 13:45:21 2010 +0200
+++ b/web/franceculture/urls.py Thu Sep 23 18:20:24 2010 +0200
@@ -23,7 +23,7 @@
(r'^accounts/', include('registration.backends.simple.urls')),
url(r'^/?$', "franceculture.views.workspace", name="root-view"),
- url(r'^filterprojects/(?P<filter>\w*)/(?P<is_owner>true|false)/$', "franceculture.views.projectsfilter", ),
+ url(r'^filterprojects/(?P<filter>\w*)/(?P<is_owner>true|false)/(?P<status>\d)$', "franceculture.views.projectsfilter", ),
url(r'^filtercontents/(?P<filter>\w*)/$', "franceculture.views.contentsfilter", ),
(r'^embedpopup/?$', "franceculture.views.popup_embed"),
)
--- a/web/franceculture/views.py Thu Sep 23 13:45:21 2010 +0200
+++ b/web/franceculture/views.py Thu Sep 23 18:20:24 2010 +0200
@@ -6,6 +6,7 @@
from ldt.ldt_utils.models import Content, Project, Owner
from ldt.ldt_utils.utils import boolean_convert
from django.http import HttpResponseServerError
+from django.db.models import Q
@login_required
@@ -15,7 +16,7 @@
content_list = Content.objects.all()
# get list of projects
- project_list = Project.objects.filter(state=2)
+ project_list = Project.objects.all()
# render list
return render_to_response("franceculture/workspace.html",
@@ -23,10 +24,12 @@
context_instance=RequestContext(request))
@login_required
-def projectsfilter(request, filter, is_owner=False):
+def projectsfilter(request, filter, is_owner=False, status=0):
project_list = None
is_owner = boolean_convert(is_owner)
+ status = int(status)
+ query = Q()
if is_owner:
owner = None
@@ -34,14 +37,16 @@
owner = Owner.objects.get(user=request.user)
except:
return HttpResponseServerError("<h1>User not found</h1>")
-
- project_list = Project.objects.filter(owner=owner)
- else:
- project_list = Project.objects.filter(state=2)
+ query &= Q(owner=owner)
+
+ if status > 0:
+ query &= Q(state=status)
if filter:
- project_list = project_list.filter(title__icontains=filter)
-
+ query &= Q(title__icontains=filter)
+
+ project_list = Project.objects.filter(query)
+
return render_to_response("franceculture/partial/projectslist.html",
{'projects': project_list},
context_instance=RequestContext(request))
--- a/web/ldt/ldt_utils/models.py Thu Sep 23 13:45:21 2010 +0200
+++ b/web/ldt/ldt_utils/models.py Thu Sep 23 18:20:24 2010 +0200
@@ -47,6 +47,9 @@
'f4v': lambda s: "%s:%s" %("mp4",res_src[:-4]),
}.get(extension, lambda s:s)(res_src)
return res_src
+
+ return locals()
+
stream_src = property(**stream_src())
def save(self, *args, **kwargs):
@@ -153,6 +156,9 @@
return self.media_obj.stream_src
else:
return None
+
+ return locals()
+
stream_src = property(**stream_src())
def videopath(): #@NoSelf
--- a/web/static/js/projectscontents.js Thu Sep 23 13:45:21 2010 +0200
+++ b/web/static/js/projectscontents.js Thu Sep 23 18:20:24 2010 +0200
@@ -119,6 +119,9 @@
timeout = typeof(timeout) != 'undefined' ? timeout : 0;
var target = $(target);
+ // remove all qtip
+ $(".qtip").remove();
+
if(target.realVal().length > 0) {
target.nextAll(".searchclear").show();
}
@@ -148,7 +151,7 @@
};
-function init_events_contents(base_node, embed_url) {
+function init_events_contents(base_node, embed_url, content_filter_url) {
init_events_base(base_node, embed_url);
@@ -197,6 +200,56 @@
}
+function init_events_base_projects(base_node, embed_url, searchprojectfilterurl, publishprojecturl, unpublishprojecturl) {
+
+ $('.publishedproject', base_node).click(function(e) {
+ e.preventDefault();
+ var target = $(e.target);
+ var project_id = target.attr('id').replace('project_','');
+ var url = unpublishprojecturl.replace('__PROJECT_ID__', project_id);
+ $.ajax({
+ url: url,
+ type: 'POST',
+ dataType: 'json',
+ success: function(json, textStatus, XMLHttpRequest){
+ if(json.res) {
+ searchCallback($('#searchprojectsinput'), "#projectslistcontainer", searchprojectfilterurl, 0);
+ }
+ }
+ });
+ });
+
+ $('.unpublishedproject', base_node).click(function(e) {
+ e.preventDefault();
+ var target = $(e.target);
+ var project_id = target.attr('id').replace('project_','');
+ var url = publishprojecturl.replace('__PROJECT_ID__', project_id);
+ $.ajax({
+ url: url,
+ type: 'POST',
+ dataType: 'json',
+ success: function(json, textStatus, XMLHttpRequest){
+ if(json.res) {
+ searchCallback($('#searchprojectsinput'), "#projectslistcontainer", searchprojectfilterurl, 0);
+ }
+ }
+ });
+ });
+
+}
+
+function init_events_projects(base_node, embed_url, searchprojectfilterurl, publishprojecturl, unpublishprojecturl) {
+
+ init_events_base(base_node, embed_url);
+ init_events_base_projects(base_node, embed_url, searchprojectfilterurl, publishprojecturl, unpublishprojecturl);
+}
+
+function init_events_all(base_node, embed_url, searchcontentfilterurl, searchprojectfilterurl, publishprojecturl, unpublishprojecturl) {
+
+ init_events_contents(base_node, embed_url, searchcontentfilterurl);
+ init_events_base_projects(base_node, embed_url, searchprojectfilterurl, publishprojecturl, unpublishprojecturl);
+}
+
function searchFieldInit(input_list_init) {