# HG changeset patch # User cavaliet # Date 1337961054 -7200 # Node ID 5af755809dd186b6daf5f582de548449705f5315 # Parent 94429061bbfa255210a8bd1fa1f58a120afbb8e4# Parent 87aa076dabd660637a3127d7b8878922b1a63373 Merge with 87aa076dabd660637a3127d7b8878922b1a63373 diff -r 94429061bbfa -r 5af755809dd1 .hgignore --- a/.hgignore Fri May 25 17:47:20 2012 +0200 +++ b/.hgignore Fri May 25 17:50:54 2012 +0200 @@ -1,56 +1,32 @@ syntax: regexp ^web/index$ -syntax: regexp ^web/log$ -syntax: regexp ^virtualenv/web/env/ -syntax: regexp .*\.pyc$ - -syntax: regexp ^virtualenv/web/project-boot\.py$ -syntax: regexp ^web/ldtplatform/config\.py$ ^web/ldtplatform/\.htaccess$ ^web/\.htaccess$ - -syntax: regexp ^virtualenv/web/distribute-0\.6\.14\.tar\.gz$ -syntax: regexp ^src/ldt/Ldt\.egg-info$ -syntax: regexp ^src/ldt/dist$ - -syntax: regexp ^web/static/media/ldt$ -syntax: regexp ^web/static/site/admin$ -syntax: regexp ^web/static/site/ldt$ -syntax: regexp ^virtualenv/setup/project-boot\.py$ -syntax: regexp ^virtualenv/setup/env/ +^src/ldt/build$ +^src/ldt/ldt\.egg-info$ +^src/ldt/distribute-0\.6\.14\.tar\.gz$ +^src/ldt/distribute-0\.6\.14-py2\.6\.egg$ +^src/ldt/MANIFEST\.in$ +^src/ldt/MANIFEST$ +^\.pydevproject$ +^web/static/media/cache$ +^\.settings/org\.eclipse\.core\.resources\.prefs$ +^web/static/media/thumbnails$ +^virtualenv/sync/env syntax: regexp -^src/ldt/build$ -syntax: regexp -^src/ldt/ldt\.egg-info$ -syntax: regexp -^src/ldt/distribute-0\.6\.14\.tar\.gz$ -syntax: regexp -^src/ldt/distribute-0\.6\.14-py2\.6\.egg$ -syntax: regexp -^src/ldt/MANIFEST\.in$ - -syntax: regexp -^src/ldt/MANIFEST$ -syntax: regexp -^\.pydevproject$ -syntax: regexp -^web/static/media/cache$ -syntax: regexp -^\.settings/org\.eclipse\.core\.resources\.prefs$ -syntax: regexp -^web/static/media/thumbnails$ \ No newline at end of file +^sbin/sync/config\.py$ \ No newline at end of file diff -r 94429061bbfa -r 5af755809dd1 .hgtags --- a/.hgtags Fri May 25 17:47:20 2012 +0200 +++ b/.hgtags Fri May 25 17:50:54 2012 +0200 @@ -52,3 +52,11 @@ 006f1e3e5398ca2fb0d6c7944f37421ce3138717 V01.07 006f1e3e5398ca2fb0d6c7944f37421ce3138717 V01.07 81cbac0d6d8c9309cee2663dc2b6dc1d85097cf1 V01.07 +04c71ec19b8036b9285c62985bd920e287aa14aa V01.08 +04c71ec19b8036b9285c62985bd920e287aa14aa V01.08 +0000000000000000000000000000000000000000 V01.08 +0000000000000000000000000000000000000000 V01.08 +dd483c59340c859be7845dd73ecd6da355216b91 V01.08 +dd483c59340c859be7845dd73ecd6da355216b91 V01.08 +14fe3554ad26ccf85f01f68ca07a869a1a20ef17 V01.08 +b419e891b0bde6e88c0337838aca82ec7c5e62b0 V01.09 diff -r 94429061bbfa -r 5af755809dd1 sbin/sync/config.py.tmpl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sbin/sync/config.py.tmpl Fri May 25 17:50:54 2012 +0200 @@ -0,0 +1,29 @@ +from fabric.api import env + +env.hosts = ['iri@web.iri.centrepompidou.fr'] +env.base_export_path = "~/tmp" +env.export_prefix = "platform" +env.remote_web_path = "/iridata/www/ldt/" +env.platform_web_module = "ldtplatform" +env.remote_ldt_base_path = "/tmp" +env.remote_virtualenv_path = "/iridata/virtualenv/platform" +env.remote_venv_export_path = "/tmp" +env.remote_baseline_venv = "/iridata/virtualenv/baseline2.7" +env.web_rsync_filters = [ + "+ core", + "P .htpasswd", + "P .htaccess", + "P ldtplatform/.htaccess", + "P ldtplatform/config.py", + "P ldtplatform/modwsgi.wsgi", + "P robots.txt", + "P env/***", + "P log/***", + "P index/***", + "P static/media/***", + "P crossdomain.xml", +] +env.venv_rsync_filters = [ + "+ core", +] +env.web_relaunch_cmd = "supervisorctl restart platform" diff -r 94429061bbfa -r 5af755809dd1 sbin/sync/fabfile.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sbin/sync/fabfile.py Fri May 25 17:50:54 2012 +0200 @@ -0,0 +1,194 @@ +from fabric.api import task, run, local, env, cd, put, prefix, sudo +from fabric.colors import green +from fabric.contrib.project import rsync_project +from mercurial import commands, ui, hg, cmdutil +import imp +import os, os.path +import shutil +import sys + +import config + +def get_export_path(version): + base_path = os.path.join(env.base_export_path,env.export_prefix).lstrip("/") + return os.path.expanduser(base_path) + "_%s" % (str(version)) + +def clean_export_folder(path): + print("Removing %s" % path) + if os.path.isdir(path): + shutil.rmtree(path, ignore_errors=True) + +def do_export_version(path, version): + print("Export version %s"%str(version)) + + #hgui = ui.ui() + #repo = hg.repository(hgui, cmdutil.findrepo(os.getcwd())) + #commands.archive(hgui, repo, path, rev=str(version)) + + local("hg archive -r \'%s\' \"%s\"" % (str(version),path)) + print("Export version %s done"%str(version)) + +def rsync_export(path, remotepath, filters): + print("Rsync %s to %s",(path,remotepath)) + + if filters: + filter_option_str = " ".join(["--filter \"%s\"" % (f) for f in filters]) + else: + filter_option_str ="" + + run("mkdir -p \"%s\"" % remotepath) + rsync_project(remotepath, local_dir=path, extra_opts=filter_option_str, delete=True) + print("Rsync %s to %s done",(path,remotepath)) + +def clean_rsync_folder(remotepath): + print("clean rsync folder %s" % remotepath) + run("rm -fr \"%s\"" % remotepath) + +def build_src(path): + print("Build source dist at %s" % path) + f = None + try: + f, pathname, description = imp.find_module("setup", [path]) + print(" 2 Build source dist at %s" % path) + setup_mod = imp.load_module("setup", f, pathname, description) + print(" 3 Build source dist at %s" % path) + finally: + if f: + f.close() + + setup_mod.launch_setup("setup.py", ['sdist']) + + print("Build source dist at %s done" % path) + + +def get_src_version(path): + print("get src version at %s" % path) + f = None + try: + f, pathname, description = imp.find_module("ldt", [path]) + ldt_mod = imp.load_module("ldt", f, pathname, description) + finally: + if f: + f.close() + version = ldt_mod.VERSION + version_str = ldt_mod.get_version() + + return (version, version_str) + + +def sync_build(path): + print("Sync build %s" % path) + with cd(env.remote_ldt_base_path): + filename = os.path.basename(path) + res_trans = put(path, os.path.join(env.remote_ldt_base_path, filename)) + print("Sync build %s to %s" % (path,repr(res_trans))) + return res_trans + +def remove_build(path): + print("remove build build %s" % path) + run("rm \"%s\"" % path) + + +def install_build(remotepath, remotevirtualenvpath): + print("Install build %s in %s" % (remotepath, remotevirtualenvpath)) + activate_path = os.path.join(remotevirtualenvpath, "bin/activate") + + with prefix("source %s" % activate_path): + run("pip install \"%s\"" % remotepath) + +def collectstatic(remotepath, remotevirtualenvpath): + print("Collect static in %s with %s" % (remotepath, remotevirtualenvpath)) + activate_path = os.path.join(remotevirtualenvpath, "bin/activate") + with prefix("source \"%s\"" % activate_path), prefix("export PYTHONPATH=\"%s\"" % remotepath), cd(os.path.join(remotepath, env.platform_web_module)): + run("python manage.py collectstatic --noinput") + + + +def export_version(version): + print("export version %s" % str(version)) + + export_path = get_export_path(version) + + clean_export_folder(export_path) + do_export_version(export_path,version) + + return export_path + +def do_create_virtualenv(remote_venv_export_path, remotevirtualenvpath): + print("Create virtualenv export_path : %s - remote venvpath : %s" % (remote_venv_export_path, remotevirtualenvpath)) + activate_path = os.path.join(remotevirtualenvpath, "bin/activate") + if "remote_baseline_venv" in env and env.remote_baseline_venv: + prefix_str = "source \"%s\"" % os.path.join(env.remote_baseline_venv, "bin/activate") + else: + prefix_str = "echo" + run("mkdir -p \"%s\"" % remotevirtualenvpath) + with prefix(prefix_str), cd(os.path.join(remote_venv_export_path,"virtualenv","web")): + run("python create_python_env.py") + run("python project-boot.py --unzip-setuptools --no-site-packages --clear --type-install=local \"%s\"" % remotevirtualenvpath) + with prefix("source \"%s\"" % activate_path): + run("pip install -r \"%s\"" % os.path.join(remote_venv_export_path,"virtualenv","web","res","srvr_requirements.txt")) + +def do_sync_ldt(version, export_path): + print("do_sync_ldt with version %s and path %s" % (version,export_path)) + src_path = export_path + "/src/ldt" + build_src(src_path) + (_,version_str) = get_src_version(src_path) + build_path = os.path.join(src_path,"dist","ldt-%s.tar.gz" % version_str) + res_trans = None + try: + res_trans = sync_build(build_path) + install_build(res_trans[0], env.remote_virtualenv_path) + finally: + if res_trans: + remove_build(res_trans[0]) + +def do_sync_web(version, export_path): + print("do_sync_web with version %s and path %s" % (version,export_path)) + web_path = os.path.join(export_path,"web/") + rsync_export(web_path, env.remote_web_path, env.web_rsync_filters) + +def relaunch_server(): + print("Relaunch server") + collectstatic(env.remote_web_path, env.remote_virtualenv_path) + sudo(env.web_relaunch_cmd, shell=False) + +@task +def sync_web(version): + print(green("sync web with version %s" % version)) + export_path = export_version(version) + do_sync_web(version, export_path) + clean_export_folder(export_path) + relaunch_server() + +@task +def sync_ldt(version): + print(green("sync ldt with version %s" % version)) + export_path = export_version(version) + do_sync_ldt(version, export_path) + clean_export_folder(export_path) + relaunch_server() + +@task +def sync_platform(version): + print(green("sync platform with version %s" % version)) + export_path = export_version(version) + do_sync_ldt(version, export_path) + do_sync_web(version, export_path) + clean_export_folder(export_path) + relaunch_server() + +@task +def create_virtualenv(version): + print(green("create virtualenv with version %s" % version)) + export_path = export_version(version) + venv_remote_export_path = "" + try: + virtualenv_path = os.path.join(export_path, "virtualenv") + + venv_remote_export_path = os.path.join(env.remote_venv_export_path, env.export_prefix, version,"virtualenv") + rsync_export(virtualenv_path, venv_remote_export_path, env.venv_rsync_filters) + do_create_virtualenv(venv_remote_export_path, env.remote_virtualenv_path) + finally: + clean_export_folder(export_path) + if venv_remote_export_path: + clean_rsync_folder(venv_remote_export_path) diff -r 94429061bbfa -r 5af755809dd1 sbin/sync/sync_ldt_platform --- a/sbin/sync/sync_ldt_platform Fri May 25 17:47:20 2012 +0200 +++ b/sbin/sync/sync_ldt_platform Fri May 25 17:50:54 2012 +0200 @@ -1,4 +1,3 @@ - #!/usr/bin/env bash set -e if [ -d ~/tmp/platform_V$1 ]; then diff -r 94429061bbfa -r 5af755809dd1 src/ldt/ldt/__init__.py --- a/src/ldt/ldt/__init__.py Fri May 25 17:47:20 2012 +0200 +++ b/src/ldt/ldt/__init__.py Fri May 25 17:50:54 2012 +0200 @@ -1,4 +1,4 @@ -VERSION = (1, 7, 0, "final", 0) +VERSION = (1, 9, 0, "final", 0) def get_version(): @@ -15,5 +15,3 @@ __version__ = get_version() -#initialize -from ldt.ldt_utils import contentindexer diff -r 94429061bbfa -r 5af755809dd1 src/ldt/ldt/admin.py --- a/src/ldt/ldt/admin.py Fri May 25 17:47:20 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -##from django.contrib import admin -#from ldt.management import test_cms -# -#""" -#site admin pour cms page -#""" -#if test_cms(): -# pass -## class AdminSite(admin.AdminSite): -## index_template = 'admin/page_index.html' -## login_template = 'admin/page_login.html' -## app_index_template = 'admin/page_app_index.html' -# -## admin_site = AdminSite() -# -## from cms.models import Page -## from cms.admin import pageadmin -# -## class CmsPageAdmin(pageadmin.PageAdmin): -## change_list_template = "admin/cms_change_list.html" -## change_form_template = "admin/cms_change_form.html" -# -## admin_site.register(Page, CmsPageAdmin) -# -## from cms.plugins.snippet.models import Snippet -## from cms.plugins.snippet.admin import SnippetAdmin -# -## class CmsSnippetAdmin(SnippetAdmin): -## change_form_template = "admin/page_change_form.html" -## change_list_template = "admin/page_change_list.html" -## admin_site.register(Snippet, CmsSnippetAdmin) diff -r 94429061bbfa -r 5af755809dd1 src/ldt/ldt/ldt_utils/__init__.py --- a/src/ldt/ldt/ldt_utils/__init__.py Fri May 25 17:47:20 2012 +0200 +++ b/src/ldt/ldt/ldt_utils/__init__.py Fri May 25 17:50:54 2012 +0200 @@ -1,2 +1,2 @@ -VERSION = (0, 1) -VERSION_STR = unicode(".".join(map(lambda i:"%02d" % (i,), VERSION))) \ No newline at end of file +#initialize +from ldt.ldt_utils import contentindexer diff -r 94429061bbfa -r 5af755809dd1 src/ldt/ldt/ldt_utils/contentindexer.py --- a/src/ldt/ldt/ldt_utils/contentindexer.py Fri May 25 17:47:20 2012 +0200 +++ b/src/ldt/ldt/ldt_utils/contentindexer.py Fri May 25 17:50:54 2012 +0200 @@ -130,70 +130,70 @@ class ContentIndexer(LdtIndexer): - def __init__(self, contentList, writer, decoupage_blackList=settings.DECOUPAGE_BLACKLIST, callback=None): - super(ContentIndexer, self).__init__(writer, decoupage_blackList) - self.__contentList = contentList - self.__callback = callback - - def index_all(self): - for i,content in enumerate(self.__contentList): - if self.__callback: - self.__callback(i,content) - self.index_content(content) - - def index_content(self, content): + def __init__(self, contentList, writer, decoupage_blackList=settings.DECOUPAGE_BLACKLIST, callback=None): + super(ContentIndexer, self).__init__(writer, decoupage_blackList) + self.__contentList = contentList + self.__callback = callback + + def index_all(self): + for i,content in enumerate(self.__contentList): + if self.__callback: + self.__callback(i,content) + self.index_content(content) - url = content.iri_url() - filepath = urllib.urlopen(url) - doc = lxml.etree.parse(filepath) #@UndefinedVariable - - self.writer.deleteDocuments(lucene.Term("iri_id", content.iri_id)) - Segment.objects.filter(iri_id=content.iri_id).delete() #@UndefinedVariable - - res = doc.xpath("/iri/body/ensembles/ensemble") + def index_content(self, content): + + url = content.iri_url() + filepath = urllib.urlopen(url) + doc = lxml.etree.parse(filepath) #@UndefinedVariable + + self.writer.deleteDocuments(lucene.Term("iri_id", content.iri_id)) + Segment.objects.filter(iri_id=content.iri_id).delete() #@UndefinedVariable + + res = doc.xpath("/iri/body/ensembles/ensemble") - for ensemble in res: - self.index_ensemble(ensemble, content) - - self.writer.commit() + for ensemble in res: + self.index_ensemble(ensemble, content) + + self.writer.commit() class ProjectIndexer(LdtIndexer): - - def __init__(self, projectList, writer, decoupage_blackList=settings.DECOUPAGE_BLACKLIST, callback=None): - super(ProjectIndexer, self).__init__(writer, decoupage_blackList) - self.__projectList = projectList - self.__callback = callback - - def index_all(self): - for i,project in enumerate(self.__projectList): - if self.__callback: - self.__callback(i,project) - self.index_project(project) - - def index_project(self, project): - - # pocketfilms.utils.log.debug("Indexing project : "+str(project.iri_id)) - doc = lxml.etree.fromstring(project.ldt_encoded) #@UndefinedVariable + def __init__(self, projectList, writer, decoupage_blackList=settings.DECOUPAGE_BLACKLIST, callback=None): + super(ProjectIndexer, self).__init__(writer, decoupage_blackList) + self.__projectList = projectList + self.__callback = callback + + def index_all(self): + for i,project in enumerate(self.__projectList): + if self.__callback: + self.__callback(i,project) + + self.index_project(project) + + def index_project(self, project): + + # pocketfilms.utils.log.debug("Indexing project : "+str(project.iri_id)) + doc = lxml.etree.fromstring(project.ldt_encoded) #@UndefinedVariable - self.writer.deleteDocuments(lucene.Term("project_id", project.ldt_id)) - Segment.objects.filter(project_obj__ldt_id=project.ldt_id).delete() #@UndefinedVariable - - res = doc.xpath("/iri/annotations/content") + self.writer.deleteDocuments(lucene.Term("project_id", project.ldt_id)) + Segment.objects.filter(project_obj__ldt_id=project.ldt_id).delete() #@UndefinedVariable + + res = doc.xpath("/iri/annotations/content") + + for content in res: + contentId = content.get(u"id", None) + content_obj = None - for content in res: - contentId = content.get(u"id", None) - content_obj = None - - clist = Content.objects.filter(iri_id = contentId) #@UndefinedVariable - if len(clist) > 0: - content_obj = clist[0] - - for ensemble in content.getchildren(): - self.index_ensemble(ensemble, content_obj, project) - - self.writer.commit() + clist = Content.objects.filter(iri_id = contentId) #@UndefinedVariable + if len(clist) > 0: + content_obj = clist[0] + + for ensemble in content.getchildren(): + self.index_ensemble(ensemble, content_obj, project) + + self.writer.commit() @receiver(post_save, sender=Project) def index_project(sender, **kwargs): diff -r 94429061bbfa -r 5af755809dd1 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 Fri May 25 17:47:20 2012 +0200 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html Fri May 25 17:50:54 2012 +0200 @@ -50,9 +50,9 @@
{% trans 'link json by id' %}
{% ifequal project.state 2 %} - {% trans 'Project published, click to unpublish' %} + {% trans 'Project published, click to unpublish' %} {% else %} - {% trans 'Project not published, click to publish' %} + {% trans 'Project not published, click to publish' %} {% endifequal %} {% thumbnail project.image "50x50" crop="center" format="PNG" as im %}{% empty %} {% endthumbnail %} diff -r 94429061bbfa -r 5af755809dd1 src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/publishedprojectslist.html --- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/publishedprojectslist.html Fri May 25 17:47:20 2012 +0200 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/publishedprojectslist.html Fri May 25 17:50:54 2012 +0200 @@ -17,7 +17,7 @@
{% trans 'copy the project' %}
{% trans 'link json by id' %}
- {% trans 'Project published' %} + {% trans 'Project published' %} {% thumbnail project.image "50x50" crop="center" format="PNG" as im %}{% empty %} {% endthumbnail %} diff -r 94429061bbfa -r 5af755809dd1 src/ldt/ldt/locale/en/LC_MESSAGES/django.mo Binary file src/ldt/ldt/locale/en/LC_MESSAGES/django.mo has changed diff -r 94429061bbfa -r 5af755809dd1 src/ldt/ldt/locale/en/LC_MESSAGES/django.po --- a/src/ldt/ldt/locale/en/LC_MESSAGES/django.po Fri May 25 17:47:20 2012 +0200 +++ b/src/ldt/ldt/locale/en/LC_MESSAGES/django.po Fri May 25 17:50:54 2012 +0200 @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# +# Yves-Marie Haussonne , 2012. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-13 12:32+0100\n" -"PO-Revision-Date: 2010-02-17 03:53+0100\n" +"POT-Creation-Date: 2012-04-27 19:39+0200\n" +"PO-Revision-Date: 2012-04-29 22:26+0200\n" "Last-Translator: Yves-Marie Haussonne \n" -"Language-Team: LANGUAGE \n" -"Language: \n" +"Language-Team: IRI\n" +"Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.0-mac-beta-1\n" #: forms/widgets.py:17 msgid "Date" @@ -24,8 +25,7 @@ msgid "Time" msgstr "Time" -#: ldt_utils/forms.py:32 -#: ldt_utils/templates/front/front_base.html:52 +#: ldt_utils/forms.py:32 ldt_utils/templates/front/front_base.html:52 #: ldt_utils/templates/ldt/ldt_utils/published_projects.html:53 msgid "Search" msgstr "search" @@ -34,8 +34,7 @@ msgid "all" msgstr "all" -#: ldt_utils/forms.py:33 -#: ldt_utils/models.py:54 +#: ldt_utils/forms.py:33 ldt_utils/models.py:54 #: ldt_utils/templates/ldt/ldt_utils/content_list.html:69 msgid "title" msgstr "title" @@ -60,8 +59,7 @@ msgid "Content Tag" msgstr "Content category" -#: ldt_utils/forms.py:52 -#: ldt_utils/models.py:132 +#: ldt_utils/forms.py:52 ldt_utils/models.py:132 msgid "content.content_creation_date" msgstr "content creation date" @@ -178,18 +176,16 @@ msgstr "duration (ms)" #: ldt_utils/models.py:445 -#, fuzzy msgid "content_stat.content" -msgstr "annotation distribution" +msgstr "annotation statistics" #: ldt_utils/models.py:446 -#, fuzzy msgid "content_stat.annotations_volume" -msgstr "annotation distribution" +msgstr "annotation volume" #: ldt_utils/models.py:447 msgid "content_stat.polemics_volume" -msgstr "" +msgstr "Annotation volume" #: ldt_utils/models.py:448 msgid "content.nb_annotation" @@ -197,7 +193,7 @@ #: ldt_utils/models.py:449 msgid "content.last_annotated" -msgstr "last updated" +msgstr "last annotated" #: ldt_utils/models.py:504 msgid "created by" @@ -207,8 +203,7 @@ msgid "changed by" msgstr "changed by" -#: ldt_utils/utils.py:208 -#: ldt_utils/utils.py:390 +#: ldt_utils/utils.py:208 ldt_utils/utils.py:390 msgid "Personal cutting" msgstr "Personal cutting" @@ -294,8 +289,7 @@ #: ldt_utils/templates/front/front_base.html:69 #: templates/cms/admin/cms/page/change_form.html:11 -#: templates/ldt/ldt_base.html:97 -#: user/templates/ldt/user/login_form.html:34 +#: templates/ldt/ldt_base.html:97 user/templates/ldt/user/login_form.html:34 msgid "Log out" msgstr "Log out" @@ -339,7 +333,7 @@ #: ldt_utils/templates/front/front_home.html:7 msgid "front.home" -msgstr "" +msgstr "Ligne de Temps Platform" #: ldt_utils/templates/front/front_home.html:31 msgid "Last annotated medias" @@ -374,7 +368,7 @@ msgstr[0] "%(nb)s user in this group" msgstr[1] "%(nb)s users in this group" -#: ldt_utils/templates/front/front_player.html:96 +#: ldt_utils/templates/front/front_player.html:101 msgid "All annotations on the media" msgstr "All annotations on the media" @@ -396,6 +390,8 @@ " No results for %(search)s with the medias tagged %(tag_label)s" msgstr "" +" No results for %(search)s with the medias tagged " +"%(tag_label)s" #: ldt_utils/templates/front/front_search_results.html:55 msgid "See for all medias" @@ -510,7 +506,7 @@ #: ldt_utils/templates/ldt/ldt_utils/create_content.html:52 #: ldt_utils/templates/ldt/ldt_utils/create_ldt.html:48 msgid "more options" -msgstr "" +msgstr "more options" #: ldt_utils/templates/ldt/ldt_utils/create_content.html:56 #: ldt_utils/templates/ldt/ldt_utils/create_ldt.html:52 @@ -521,7 +517,8 @@ msgid "" "The operation could not be performed because one or more error(s) occurred." "
Please resubmit the media form after making the following changes:" -msgstr "The operation could not be performed because one or more error(s) occurred." +msgstr "" +"The operation could not be performed because one or more error(s) occurred." "
Please resubmit the media form after making the following changes:" #: ldt_utils/templates/ldt/ldt_utils/create_content.html:84 @@ -686,7 +683,8 @@ msgid "" "Your current work is modified. Click Cancel and save it one last time before " "leaving. Click OK to leave without saving." -msgstr "Your current work is modified. Click Cancel and save it one last time before " +msgstr "" +"Your current work is modified. Click Cancel and save it one last time before " "leaving. Click OK to leave without saving." #: ldt_utils/templates/ldt/ldt_utils/ldt_list.html:78 @@ -889,3 +887,673 @@ msgid "confirm delete content" msgstr "Confirm delete content" +#: ldt_utils/views/content.py:321 +#, python-format +msgid "" +"Content '%(title)s' is referenced by this project : %(project_titles)s. " +"Please delete it beforehand." +msgid_plural "" +"Content '%(title)s' is referenced by %(count)d projects: %(project_titles)s. " +"Please delete them beforehand." +msgstr[0] "" +"Content '%(title)s' is referenced by this project : %(project_titles)s. " +"Please delete it beforehand." +msgstr[1] "" +"Content '%(title)s' is referenced by %(count)d projects: %(project_titles)s. " +"Please delete them beforehand." + +#: ldt_utils/views/json.py:34 ldt_utils/views/rdf.py:15 +#: ldt_utils/views/workspace.py:108 +msgid "You can not access this project" +msgstr "You can not access this project" + +#: ldt_utils/views/project.py:110 +#, python-format +msgid "the project %(title)s is published. please unpublish before deleting." +msgstr "the project %(title)s is published. please unpublish before deleting." + +#: ldt_utils/views/project.py:111 ldt_utils/views/project.py:115 +msgid "can not delete the project. Please correct the following error" +msgstr "can not delete the project. Please correct the following error" + +#: ldt_utils/views/project.py:112 ldt_utils/views/project.py:116 +msgid "title error deleting project" +msgstr "Error when deleting project" + +#: ldt_utils/views/project.py:114 +#, python-format +msgid "" +"the project %(title)s is the front project of %(content)s. please delete " +"this content first." +msgstr "" +"the project %(title)s is the front project of %(content)s. please delete " +"this content first." + +#: ldt_utils/views/project.py:118 +#, python-format +msgid "please confirm deleting project %(title)s" +msgstr "please confirm deleting project %(title)s" + +#: ldt_utils/views/project.py:119 +msgid "confirm deletion" +msgstr "Confirm deletion" + +#: templates/admin/cms_change_form.html:30 +msgid "Approve page deletion" +msgstr "Approve page deletion" + +#: templates/admin/cms_change_form.html:36 +#, python-format +msgid "(requires approvement at %(moderation_level)s level)" +msgstr "(requires approvement at %(moderation_level)s level)" + +#: templates/admin/cms_change_form.html:37 +msgid "(you can perform actions on this page directly)" +msgstr "(you can perform actions on this page directly)" + +#: templates/admin/cms_change_form.html:50 +msgid "Remove delete request" +msgstr "Remove delete request" + +#: templates/admin/cms_change_form.html:52 +msgid "Approve delete" +msgstr "Approve delete" + +#: templates/admin/cms_change_form.html:52 +msgid "Approve" +msgstr "Approve" + +#: templates/admin/cms_change_form.html:52 +#: templates/admin/cms_change_form.html:53 +msgid "draft" +msgstr "draft" + +#: templates/admin/cms_change_form.html:53 +msgid "Preview" +msgstr "Preview" + +#: templates/admin/cms_change_form.html:56 +#: templates/admin/page_change_form.html:27 +msgid "History" +msgstr "History" + +#: templates/admin/cms_change_form.html:57 +#: templates/admin/page_change_form.html:28 +msgid "View on site" +msgstr "View on site" + +#: templates/admin/cms_change_form.html:87 +#: templates/admin/page_change_form.html:38 +#: templates/admin/page_change_list.html:54 +#: templates/cms/admin/cms/page/change_form.html:24 +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Please correct the error below." +msgstr[1] "Please correct the errors below." + +#: templates/admin/cms_change_form.html:107 +msgid "All permissions" +msgstr "All permissions" + +#: templates/admin/cms_change_form.html:108 +#: templates/admin/cms_change_form.html:120 +msgid "Loading..." +msgstr "Loading..." + +#: templates/admin/cms_change_form.html:119 +msgid "Page states" +msgstr "Page states" + +#: templates/admin/cms_change_form.html:142 +#, python-format +msgid "" +"This page must be moderated at level %(moderation_level)s, post a message " +"for moderator." +msgstr "" +"This page must be moderated at level %(moderation_level)s, post a message " +"for moderator." + +#: templates/admin/cms_change_form.html:144 +msgid "Request approvemet" +msgstr "Request approvement" + +#: templates/admin/cms_change_form.html:234 +#: user/templates/registration/registration_form.html:16 +msgid "Save" +msgstr "Save" + +#: templates/admin/cms_change_form.html:235 +msgid "Save and continue editing" +msgstr "Save and continue editing" + +#: templates/admin/cms_change_list.html:51 +msgid "Successfully moved" +msgstr "Successfully moved" + +#: templates/admin/cms_change_list.html:76 +#, python-format +msgid "Recover deleted %(name)s" +msgstr "Recover deleted %(name)s" + +#: templates/admin/cms_change_list.html:79 +#: templates/admin/page_change_list.html:46 +#, python-format +msgid "Add %(name)s" +msgstr "Add %(name)s" + +#: templates/admin/cms_change_list.html:91 +msgid "Pages on:" +msgstr "Pages on:" + +#: templates/admin/cms_change_list.html:108 +msgid "on" +msgstr "on" + +#: templates/admin/cms_change_list.html:108 +msgid "off" +msgstr "off" + +#: templates/admin/cms_change_list.html:110 +#: templates/admin/page_change_list.html:65 +msgid "Filter" +msgstr "Filter" + +#: templates/admin/index.html:18 templates/admin/page_index.html:18 +#, python-format +msgid "Models available in the %(name)s application." +msgstr "Models available in the %(name)s application." + +#: templates/admin/index.html:19 templates/admin/page_app_index.html:10 +#: templates/admin/page_index.html:19 +#, python-format +msgid "%(name)s" +msgstr "%(name)s" + +#: templates/admin/index.html:29 templates/admin/page_change_form.html:20 +#: templates/admin/page_index.html:29 +msgid "Add" +msgstr "Add" + +#: templates/admin/index.html:35 templates/admin/page_index.html:35 +msgid "Change" +msgstr "Change" + +#: templates/admin/index.html:64 templates/admin/page_index.html:45 +msgid "You don't have permission to edit anything." +msgstr "You don't have permission to edit anything." + +#: templates/admin/index.html:72 templates/admin/page_index.html:53 +msgid "Recent Actions" +msgstr "Recent Actions" + +#: templates/admin/index.html:73 templates/admin/page_index.html:54 +msgid "My Actions" +msgstr "My Actions" + +#: templates/admin/index.html:77 templates/admin/page_index.html:58 +msgid "None available" +msgstr "None available" + +#: templates/admin/index.html:91 templates/admin/page_index.html:72 +msgid "Unknown content" +msgstr "Unknown content" + +#: templates/admin/page_base.html:20 templates/admin/page_index.html:11 +msgid "Pages" +msgstr "Pages" + +#: templates/admin/page_base_site.html:7 +msgid "Django administration" +msgstr "Django administration" + +#: templates/admin/page_login.html:8 +msgid "Connexion" +msgstr "Connexion" + +#: templates/admin/page_login.html:20 +msgid "Username:" +msgstr "Username:" + +#: templates/admin/page_login.html:24 +msgid "Password:" +msgstr "Password:" + +#: templates/admin/page_login.html:29 +#: user/templates/registration/login.html:39 +msgid "Create an account" +msgstr "Create an account" + +#: templates/admin/page_login.html:30 +#: user/templates/registration/login.html:40 +msgid "Forget password?" +msgstr "Forget password?" + +#: templates/cms/admin/cms/page/change_form.html:11 +msgid "Documentation" +msgstr "Documentation" + +#: templates/cms/admin/cms/page/change_form.html:11 +msgid "Change password" +msgstr "Change password" + +#: templates/cms/admin/cms/page/change_form.html:42 +msgid "Ordering" +msgstr "Ordering" + +#: templates/cms/admin/cms/page/change_form.html:45 +msgid "Order:" +msgstr "Order:" + +#: templates/ldt/ldt_base.html:86 +msgid "header_title" +msgstr "LDT Platform" + +#: templates/ldt/ldt_base.html:90 +msgid "Link to admin" +msgstr "admin" + +#: templates/ldt/ldt_base.html:90 +msgid "Staff" +msgstr "admin" + +#: templates/ldt/ldt_base.html:93 +msgid "front link" +msgstr "front" + +#: templates/ldt/ldt_base.html:94 +#: user/templates/ldt/user/change_profile.html:95 +msgid "Profile change" +msgstr "Profile change" + +#: templates/ldt/ldt_base.html:114 templates/ldt/ldt_base.html.py:115 +msgid "home" +msgstr "Home" + +#: templates/ldt/ldt_base.html:148 +msgid "Version number" +msgstr "Version" + +#: templates/ldt/ldt_base.html:148 +#, python-format +msgid " web %(WEB_VERSION)s | platform %(VERSION)s" +msgstr " web %(WEB_VERSION)s | platform %(VERSION)s" + +#: templates/ldt/ldt_raw_base.html:14 +msgid "page_title" +msgstr "LDT Platform" + +#: text/models.py:17 +msgid "annotation.external_id" +msgstr "external id" + +#: text/models.py:18 +msgid "annotation.uri" +msgstr "annotation uri" + +#: text/models.py:19 +msgid "annotation.tags" +msgstr "tags" + +#: text/models.py:20 +msgid "annotation.title" +msgstr "title" + +#: text/models.py:21 +msgid "annotation.description" +msgstr "description" + +#: text/models.py:22 +msgid "annotation.text" +msgstr "text" + +#: text/models.py:23 +msgid "annotation.color" +msgstr "color" + +#: text/models.py:24 +msgid "creator.title" +msgstr "title" + +#: text/models.py:25 +msgid "contributor.title" +msgstr "title" + +#: text/models.py:26 +msgid "annotation.creation_date" +msgstr "creation date" + +#: text/models.py:27 +msgid "annotation.update_date" +msgstr "update date" + +#: user/admin.py:27 +msgid "User details" +msgstr "User details" + +#: user/admin.py:28 +msgid "Groups" +msgstr "Groups" + +#: user/admin.py:29 +msgid "Permissions" +msgstr "Permissions" + +#: user/admin.py:40 user/templates/ldt/user/change_profile.html:105 +#: user/templates/ldt/user/login_form.html:61 +msgid "Password" +msgstr "Password" + +#: user/forms.py:27 user/templates/ldt/user/change_password.html:40 +#: user/templates/ldt/user/change_profile.html:118 +msgid "New password" +msgstr "New password" + +#: user/forms.py:29 user/templates/ldt/user/change_password.html:50 +#: user/templates/ldt/user/change_profile.html:131 +msgid "New password confirmation" +msgstr "New password confirmation" + +#: user/forms.py:58 user/forms.py:59 +msgid "E-mail" +msgstr "E-mail" + +#: user/forms.py:70 +msgid "The two emails didn't match." +msgstr "The two emails didn't match." + +#: user/forms.py:81 user/templates/ldt/user/change_profile.html:54 +msgid "First name" +msgstr "First name" + +#: user/forms.py:82 +msgid "Last name" +msgstr "Last name" + +#: user/forms.py:109 user/templates/ldt/user/change_profile.html:83 +msgid "Language" +msgstr "Language" + +#: user/forms.py:123 +msgid "Profile picture" +msgstr "Profile picture" + +#: user/forms.py:133 +#, python-format +msgid "Image size is limited to %s" +msgstr "Image size is limited to %s" + +#: user/views.py:28 +msgid "Your profile has been updated." +msgstr "Your profile has been updated." + +#: user/views.py:52 +msgid "Your password has been updated." +msgstr "Your password has been updated." + +#: user/views.py:76 +msgid "Your profile picture has been updated." +msgstr "Your profile picture has been updated." + +#: user/views.py:98 user/templates/registration/login.html:24 +msgid "Sorry, that's not a valid username or password." +msgstr "Sorry, that's not a valid username or password." + +#: user/templates/ldt/user/change_password.html:31 +msgid "Old password" +msgstr "Old password" + +#: user/templates/ldt/user/change_password.html:44 +msgid "passwords don't match" +msgstr "passwords don't match" + +#: user/templates/ldt/user/change_password.html:57 +#: user/templates/ldt/user/change_profile.html:144 +#: user/templates/registration/password_change_form.html:14 +#: user/templates/registration/password_change_form.html:17 +msgid "Password change" +msgstr "Password change" + +#: user/templates/ldt/user/change_password.html:61 +msgid "Your new password has been saved." +msgstr "Your new password has been saved." + +#: user/templates/ldt/user/change_profile.html:19 +msgid "Invalid extension ! Your file has to be JPG, JPEG or PNG." +msgstr "Invalid extension ! Your file has to be JPG, JPEG or PNG." + +#: user/templates/ldt/user/change_profile.html:43 +msgid "Username" +msgstr "Username" + +#: user/templates/ldt/user/change_profile.html:70 +msgid "Email" +msgstr "Email" + +#: user/templates/ldt/user/change_profile.html:175 +msgid "Profile picture change" +msgstr "Profile picture change" + +#: user/templates/ldt/user/login_form.html:32 +#: user/templates/registration/password_change_done.html:7 +#: user/templates/registration/password_change_form.html:13 +msgid "Profiles" +msgstr "Profiles" + +#: user/templates/ldt/user/login_form.html:50 +msgid "create account" +msgstr "create account" + +#: user/templates/ldt/user/login_form.html:54 +msgid "Pseudo" +msgstr "Nickname" + +#: user/templates/ldt/user/login_form.html:57 +#: user/templates/ldt/user/login_form.html:64 +msgid "this field is compulsory" +msgstr "this field is compulsory" + +#: user/templates/ldt/user/login_form.html:68 +msgid "reset password" +msgstr "reset password" + +#: user/templates/ldt/user/login_form.html:71 +msgid "Connection" +msgstr "Connexion" + +#: user/templates/registration/activate.html:6 +#: user/templates/registration/activate.html:9 +msgid "Activate account" +msgstr "Activate account" + +#: user/templates/registration/activate.html:12 +msgid "You have activated your account" +msgstr "You have activated your account" + +#: user/templates/registration/activate.html:13 +msgid "Go back to login page" +msgstr "Go back to login page" + +#: user/templates/registration/activation_complete.html:4 +#: user/templates/registration/registration_complete.html:8 +msgid "Sign up successfully" +msgstr "Sign up successfully" + +#: user/templates/registration/activation_complete.html:6 +msgid "activation completed" +msgstr "activation completed" + +#: user/templates/registration/logged_out.html:8 +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Thak you for your visit" + +#: user/templates/registration/logged_out.html:10 +msgid "Log in again" +msgstr "Log in" + +#: user/templates/registration/login.html:46 +msgid "login" +msgstr "login" + +#: user/templates/registration/password_change_done.html:3 +#: user/templates/registration/password_change_done.html:11 +msgid "password change successful" +msgstr "password change successful" + +#: user/templates/registration/password_change_done.html:8 +msgid "password change" +msgstr "password change" + +#: user/templates/registration/password_change_done.html:14 +msgid "Your password has been changed." +msgstr "Your password has been changed." + +#: user/templates/registration/password_change_done.html:15 +msgid "Go back to profiles" +msgstr "Go back to profiles" + +#: user/templates/registration/password_change_form.html:20 +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." + +#: user/templates/registration/password_change_form.html:26 +msgid "Old password:" +msgstr "Old password:" + +#: user/templates/registration/password_change_form.html:32 +#: user/templates/registration/password_reset_confirm.html:19 +msgid "New password:" +msgstr "New password:" + +#: user/templates/registration/password_change_form.html:38 +#: user/templates/registration/password_reset_confirm.html:21 +msgid "Confirm password:" +msgstr "Confirm password:" + +#: user/templates/registration/password_change_form.html:44 +#: user/templates/registration/password_reset_confirm.html:22 +msgid "Change my password" +msgstr "Change my password" + +#: user/templates/registration/password_reset_complete.html:6 +#: user/templates/registration/password_reset_confirm.html:6 +#: user/templates/registration/password_reset_confirm.html:9 +#: user/templates/registration/password_reset_done.html:6 +#: user/templates/registration/password_reset_form.html:13 +#: user/templates/registration/password_reset_form.html:15 +#: user/templates/registration/password_reset_form.html:18 +msgid "Password reset" +msgstr "Password reset" + +#: user/templates/registration/password_reset_complete.html:9 +msgid "Password reset complete" +msgstr "Password reset complete" + +#: user/templates/registration/password_reset_complete.html:12 +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Your password has been set. You may go ahead and log in now." + +#: user/templates/registration/password_reset_confirm.html:15 +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." + +#: user/templates/registration/password_reset_confirm.html:27 +msgid "Password reset unsuccessful" +msgstr "Password reset unsuccessful" + +#: user/templates/registration/password_reset_confirm.html:29 +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." + +#: user/templates/registration/password_reset_done.html:8 +msgid "Password reset successful" +msgstr "Password reset successful" + +#: user/templates/registration/password_reset_done.html:12 +msgid "" +"We've e-mailed you instructions for setting your password to the e-mail " +"address you submitted. You should be receiving it shortly." +msgstr "" +"We've e-mailed you instructions for setting your password to the e-mail " +"address you submitted. You should be receiving it shortly." + +#: user/templates/registration/password_reset_email.html:2 +msgid "You're receiving this e-mail because you requested a password reset" +msgstr "You're receiving this e-mail because you requested a password reset" + +#: user/templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "for your user account at %(site_name)s" + +#: user/templates/registration/password_reset_email.html:5 +msgid "Please go to the following page and choose a new password:" +msgstr "Please go to the following page and choose a new password:" + +#: user/templates/registration/password_reset_email.html:9 +msgid "Your username, in case you've forgotten:" +msgstr "Your username, in case you've forgotten:" + +#: user/templates/registration/password_reset_email.html:11 +msgid "Thanks for using our site!" +msgstr "Thanks for using our site!" + +#: user/templates/registration/password_reset_email.html:13 +#, python-format +msgid "The %(site_name)s team" +msgstr "The %(site_name)s team" + +#: user/templates/registration/password_reset_form.html:22 +msgid "" +"Forgotten your password? Enter your e-mail address below, and we'll e-mail " +"instructions for setting a new one." +msgstr "" +"Forgotten your password? Enter your e-mail address below, and we'll e-mail " +"instructions for setting a new one." + +#: user/templates/registration/password_reset_form.html:27 +msgid "Adresse émail" +msgstr "Email address" + +#: user/templates/registration/password_reset_form.html:32 +msgid "Reset my password" +msgstr "Reset my password" + +#: user/templates/registration/registration_active.html:5 +#: user/templates/registration/registration_active.html:7 +msgid "Activate the account" +msgstr "Activate the account" + +#: user/templates/registration/registration_active.html:9 +msgid "" +"Vous avez bien activé votre compte, vous pouvez accedez à votre espace " +"personnel." +msgstr "You have activated your account, you can access your personnal space" + +#: user/templates/registration/registration_active.html:10 +msgid "retourner à la page de connexion" +msgstr "Back to the login page" + +#: user/templates/registration/registration_complete.html:6 +#: user/templates/registration/registration_form.html:11 +msgid "Sign up" +msgstr "Sign up" + +#: user/templates/registration/registration_complete.html:10 +msgid "" +"We've e-mailed you instructions for activate your account to the e-mail " +"address you submitted. You should be receiving it shortly." +msgstr "" +"We've e-mailed you instructions for activate your account to the e-mail " +"address you submitted. You should be receiving it shortly." diff -r 94429061bbfa -r 5af755809dd1 src/ldt/ldt/locale/fr/LC_MESSAGES/django.mo Binary file src/ldt/ldt/locale/fr/LC_MESSAGES/django.mo has changed diff -r 94429061bbfa -r 5af755809dd1 src/ldt/ldt/locale/fr/LC_MESSAGES/django.po --- a/src/ldt/ldt/locale/fr/LC_MESSAGES/django.po Fri May 25 17:47:20 2012 +0200 +++ b/src/ldt/ldt/locale/fr/LC_MESSAGES/django.po Fri May 25 17:50:54 2012 +0200 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-13 12:32+0100\n" +"POT-Creation-Date: 2012-04-27 19:39+0200\n" "PO-Revision-Date: 2010-03-09 15:52+0100\n" "Last-Translator: Yves-Marie Haussonne \n" "Language-Team: LANGUAGE \n" @@ -24,8 +24,7 @@ msgid "Time" msgstr "Heure" -#: ldt_utils/forms.py:32 -#: ldt_utils/templates/front/front_base.html:52 +#: ldt_utils/forms.py:32 ldt_utils/templates/front/front_base.html:52 #: ldt_utils/templates/ldt/ldt_utils/published_projects.html:53 msgid "Search" msgstr "Recherche" @@ -34,8 +33,7 @@ msgid "all" msgstr "tous" -#: ldt_utils/forms.py:33 -#: ldt_utils/models.py:54 +#: ldt_utils/forms.py:33 ldt_utils/models.py:54 #: ldt_utils/templates/ldt/ldt_utils/content_list.html:69 msgid "title" msgstr "titre" @@ -60,8 +58,7 @@ msgid "Content Tag" msgstr "Catégorie de contenu" -#: ldt_utils/forms.py:52 -#: ldt_utils/models.py:132 +#: ldt_utils/forms.py:52 ldt_utils/models.py:132 msgid "content.content_creation_date" msgstr "Date de création du contenu" @@ -205,8 +202,7 @@ msgid "changed by" msgstr "modifié par" -#: ldt_utils/utils.py:208 -#: ldt_utils/utils.py:390 +#: ldt_utils/utils.py:208 ldt_utils/utils.py:390 msgid "Personal cutting" msgstr "Découpages personnels" @@ -292,8 +288,7 @@ #: ldt_utils/templates/front/front_base.html:69 #: templates/cms/admin/cms/page/change_form.html:11 -#: templates/ldt/ldt_base.html:97 -#: user/templates/ldt/user/login_form.html:34 +#: templates/ldt/ldt_base.html:97 user/templates/ldt/user/login_form.html:34 msgid "Log out" msgstr "Déconnexion" @@ -372,7 +367,7 @@ msgstr[0] "%(nb)s utilisateur dans ce groupe" msgstr[1] "%(nb)s utilisateurs dans ce groupe" -#: ldt_utils/templates/front/front_player.html:96 +#: ldt_utils/templates/front/front_player.html:101 msgid "All annotations on the media" msgstr "Toutes les annotations sur le média" @@ -393,7 +388,9 @@ msgid "" " No results for %(search)s with the medias tagged %(tag_label)s" -msgstr "Aucun résultat pour %(search)s avec les médias taggués %(tag_label)s" +msgstr "" +"Aucun résultat pour %(search)s avec les médias taggués %(tag_label)s" #: ldt_utils/templates/front/front_search_results.html:55 msgid "See for all medias" @@ -519,7 +516,8 @@ msgid "" "The operation could not be performed because one or more error(s) occurred." "
Please resubmit the media form after making the following changes:" -msgstr "opération impossible à cause d'une ou plusieurs erreurs.
Veuillez " +msgstr "" +"opération impossible à cause d'une ou plusieurs erreurs.
Veuillez " "resoumettre le formulaire media après avoir fait les changements suivants:" #: ldt_utils/templates/ldt/ldt_utils/create_content.html:84 @@ -684,7 +682,8 @@ msgid "" "Your current work is modified. Click Cancel and save it one last time before " "leaving. Click OK to leave without saving." -msgstr "Vous avez un travail en cours. Cliquez sur Annuler et sauvegardez votre " +msgstr "" +"Vous avez un travail en cours. Cliquez sur Annuler et sauvegardez votre " "travail une dernière fois. Cliquez sur OK pour quitter sans sauvegarder." #: ldt_utils/templates/ldt/ldt_utils/ldt_list.html:78 @@ -887,3 +886,679 @@ msgid "confirm delete content" msgstr "Confirmation effacement contenu" +#: ldt_utils/views/content.py:321 +#, python-format +msgid "" +"Content '%(title)s' is referenced by this project : %(project_titles)s. " +"Please delete it beforehand." +msgid_plural "" +"Content '%(title)s' is referenced by %(count)d projects: %(project_titles)s. " +"Please delete them beforehand." +msgstr[0] "" +"Le contenu '%(title)s' est référencé par le projet '%(project_titles)s'." +"Veuillez l'effacer préalablement." +msgstr[1] "" +"Le contenu '%(title)s' est référencé par les projets suivants : '%" +"(project_titles)s'.Veuillez les effacer préalablement." + +#: ldt_utils/views/json.py:34 ldt_utils/views/rdf.py:15 +#: ldt_utils/views/workspace.py:108 +msgid "You can not access this project" +msgstr "vous n'avez pas l'autorisation d'accéder à ce projet" + +#: ldt_utils/views/project.py:110 +#, python-format +msgid "the project %(title)s is published. please unpublish before deleting." +msgstr "Le projet %(title)s est publié. Déplublier le avant de l'effacer." + +#: ldt_utils/views/project.py:111 ldt_utils/views/project.py:115 +msgid "can not delete the project. Please correct the following error" +msgstr "" +"Le projet ne peut pas être effacé. Veuillez corriger les erreurs suivantes." + +#: ldt_utils/views/project.py:112 ldt_utils/views/project.py:116 +msgid "title error deleting project" +msgstr "Erreur lors de l'effacement du projet" + +#: ldt_utils/views/project.py:114 +#, python-format +msgid "" +"the project %(title)s is the front project of %(content)s. please delete " +"this content first." +msgstr "" +"Le projet %(title)s est référencé par le contenu '%(content)s'.Veuillez " +"l'effacer préalablement." + +#: ldt_utils/views/project.py:118 +#, python-format +msgid "please confirm deleting project %(title)s" +msgstr "Veuillez confirmer l'effacement du contenu %(title)s" + +#: ldt_utils/views/project.py:119 +msgid "confirm deletion" +msgstr "Confirmation d'effacement" + +#: templates/admin/cms_change_form.html:30 +msgid "Approve page deletion" +msgstr "Accepter l'effacement de la page" + +#: templates/admin/cms_change_form.html:36 +#, python-format +msgid "(requires approvement at %(moderation_level)s level)" +msgstr "(Demande l'approbation au niveau %(moderation_level)s)" + +#: templates/admin/cms_change_form.html:37 +msgid "(you can perform actions on this page directly)" +msgstr "(Vous pouvez agir sur cette page directement)" + +#: templates/admin/cms_change_form.html:50 +msgid "Remove delete request" +msgstr "Effacer la requête d'affacement" + +#: templates/admin/cms_change_form.html:52 +msgid "Approve delete" +msgstr "Accepter l'effacement" + +#: templates/admin/cms_change_form.html:52 +msgid "Approve" +msgstr "Accepter" + +#: templates/admin/cms_change_form.html:52 +#: templates/admin/cms_change_form.html:53 +msgid "draft" +msgstr "brouillon" + +#: templates/admin/cms_change_form.html:53 +msgid "Preview" +msgstr "Aperçu" + +#: templates/admin/cms_change_form.html:56 +#: templates/admin/page_change_form.html:27 +msgid "History" +msgstr "Historique" + +#: templates/admin/cms_change_form.html:57 +#: templates/admin/page_change_form.html:28 +msgid "View on site" +msgstr "Voir sur le site" + +#: templates/admin/cms_change_form.html:87 +#: templates/admin/page_change_form.html:38 +#: templates/admin/page_change_list.html:54 +#: templates/cms/admin/cms/page/change_form.html:24 +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Veuillez corriger l'erreur ci-dessous" +msgstr[1] "Veuillez corriger les erreurs ci-dessous" + +#: templates/admin/cms_change_form.html:107 +msgid "All permissions" +msgstr "Toutes les permissions" + +#: templates/admin/cms_change_form.html:108 +#: templates/admin/cms_change_form.html:120 +msgid "Loading..." +msgstr "Chargement..." + +#: templates/admin/cms_change_form.html:119 +msgid "Page states" +msgstr "Etat de la page" + +#: templates/admin/cms_change_form.html:142 +#, python-format +msgid "" +"This page must be moderated at level %(moderation_level)s, post a message " +"for moderator." +msgstr "" +"Le niveau nécessaire pour modérer cette page est le niveau %" +"(moderation_level)s, laisser un message pour le modérateur" + +#: templates/admin/cms_change_form.html:144 +msgid "Request approvemet" +msgstr "Demander l'approbation" + +#: templates/admin/cms_change_form.html:234 +#: user/templates/registration/registration_form.html:16 +msgid "Save" +msgstr "Enregistrer" + +#: templates/admin/cms_change_form.html:235 +msgid "Save and continue editing" +msgstr "Sauver et continuer l'édition" + +#: templates/admin/cms_change_list.html:51 +msgid "Successfully moved" +msgstr "Déplacement réussi" + +#: templates/admin/cms_change_list.html:76 +#, python-format +msgid "Recover deleted %(name)s" +msgstr "Récupérer %(name)s effacé" + +#: templates/admin/cms_change_list.html:79 +#: templates/admin/page_change_list.html:46 +#, python-format +msgid "Add %(name)s" +msgstr "Ajouter %(name)s" + +#: templates/admin/cms_change_list.html:91 +msgid "Pages on:" +msgstr "Pages sur :" + +#: templates/admin/cms_change_list.html:108 +msgid "on" +msgstr "on" + +#: templates/admin/cms_change_list.html:108 +msgid "off" +msgstr "off" + +#: templates/admin/cms_change_list.html:110 +#: templates/admin/page_change_list.html:65 +msgid "Filter" +msgstr "Filtre" + +#: templates/admin/index.html:18 templates/admin/page_index.html:18 +#, python-format +msgid "Models available in the %(name)s application." +msgstr "Le modèle disponible dans l'application %(name)s." + +#: templates/admin/index.html:19 templates/admin/page_app_index.html:10 +#: templates/admin/page_index.html:19 +#, python-format +msgid "%(name)s" +msgstr "%(name)s" + +#: templates/admin/index.html:29 templates/admin/page_change_form.html:20 +#: templates/admin/page_index.html:29 +msgid "Add" +msgstr "Ajouter" + +#: templates/admin/index.html:35 templates/admin/page_index.html:35 +msgid "Change" +msgstr "modifié par" + +#: templates/admin/index.html:64 templates/admin/page_index.html:45 +msgid "You don't have permission to edit anything." +msgstr "Vous n'avez pas l'autorisation d'édition." + +#: templates/admin/index.html:72 templates/admin/page_index.html:53 +msgid "Recent Actions" +msgstr "Actions récentes" + +#: templates/admin/index.html:73 templates/admin/page_index.html:54 +msgid "My Actions" +msgstr "Mes actions" + +#: templates/admin/index.html:77 templates/admin/page_index.html:58 +msgid "None available" +msgstr "Aucune disponible" + +#: templates/admin/index.html:91 templates/admin/page_index.html:72 +msgid "Unknown content" +msgstr "Contenu inconnu" + +#: templates/admin/page_base.html:20 templates/admin/page_index.html:11 +msgid "Pages" +msgstr "Pages" + +#: templates/admin/page_base_site.html:7 +msgid "Django administration" +msgstr "Administration de Django" + +#: templates/admin/page_login.html:8 +msgid "Connexion" +msgstr "Connexion" + +#: templates/admin/page_login.html:20 +msgid "Username:" +msgstr "Nom de utilisateur :" + +#: templates/admin/page_login.html:24 +msgid "Password:" +msgstr "Mot de passe :" + +#: templates/admin/page_login.html:29 +#: user/templates/registration/login.html:39 +msgid "Create an account" +msgstr "Créer un compte" + +#: templates/admin/page_login.html:30 +#: user/templates/registration/login.html:40 +msgid "Forget password?" +msgstr "mot de pass oublié ?" + +#: templates/cms/admin/cms/page/change_form.html:11 +msgid "Documentation" +msgstr "Documentation" + +#: templates/cms/admin/cms/page/change_form.html:11 +msgid "Change password" +msgstr "Modifier le mot de passe" + +#: templates/cms/admin/cms/page/change_form.html:42 +msgid "Ordering" +msgstr "Ordre" + +#: templates/cms/admin/cms/page/change_form.html:45 +msgid "Order:" +msgstr "Ordre :" + +#: templates/ldt/ldt_base.html:86 +msgid "header_title" +msgstr "Plateforme Ldt" + +#: templates/ldt/ldt_base.html:90 +msgid "Link to admin" +msgstr "Administration" + +#: templates/ldt/ldt_base.html:90 +msgid "Staff" +msgstr "admin" + +#: templates/ldt/ldt_base.html:93 +msgid "front link" +msgstr "front" + +#: templates/ldt/ldt_base.html:94 +#: user/templates/ldt/user/change_profile.html:95 +msgid "Profile change" +msgstr "Modification du profil" + +#: templates/ldt/ldt_base.html:114 templates/ldt/ldt_base.html.py:115 +msgid "home" +msgstr "accueil" + +#: templates/ldt/ldt_base.html:148 +msgid "Version number" +msgstr "Numéro de version" + +#: templates/ldt/ldt_base.html:148 +#, python-format +msgid " web %(WEB_VERSION)s | platform %(VERSION)s" +msgstr "web v%(WEB_VERSION)s | platform v%(VERSION)s " + +#: templates/ldt/ldt_raw_base.html:14 +msgid "page_title" +msgstr "Plateforme Ldt" + +#: text/models.py:17 +msgid "annotation.external_id" +msgstr "id externe" + +#: text/models.py:18 +msgid "annotation.uri" +msgstr "uri" + +#: text/models.py:19 +msgid "annotation.tags" +msgstr "tags" + +#: text/models.py:20 +msgid "annotation.title" +msgstr "titre" + +#: text/models.py:21 +msgid "annotation.description" +msgstr "description" + +#: text/models.py:22 +msgid "annotation.text" +msgstr "texte d'annotation" + +#: text/models.py:23 +msgid "annotation.color" +msgstr "couleur d'annotation" + +#: text/models.py:24 +msgid "creator.title" +msgstr "titre" + +#: text/models.py:25 +msgid "contributor.title" +msgstr "titre" + +#: text/models.py:26 +msgid "annotation.creation_date" +msgstr "date de création" + +#: text/models.py:27 +msgid "annotation.update_date" +msgstr "Date de maj" + +#: user/admin.py:27 +msgid "User details" +msgstr "Détail utilisateur" + +#: user/admin.py:28 +msgid "Groups" +msgstr "Groupes" + +#: user/admin.py:29 +msgid "Permissions" +msgstr "Permissions" + +#: user/admin.py:40 user/templates/ldt/user/change_profile.html:105 +#: user/templates/ldt/user/login_form.html:61 +msgid "Password" +msgstr "Mot de passe" + +#: user/forms.py:27 user/templates/ldt/user/change_password.html:40 +#: user/templates/ldt/user/change_profile.html:118 +msgid "New password" +msgstr "Nouveau mot de passe" + +#: user/forms.py:29 user/templates/ldt/user/change_password.html:50 +#: user/templates/ldt/user/change_profile.html:131 +msgid "New password confirmation" +msgstr "Confirmation du nouveau mot de passe" + +#: user/forms.py:58 user/forms.py:59 +msgid "E-mail" +msgstr "E-mail" + +#: user/forms.py:70 +msgid "The two emails didn't match." +msgstr "les deux emails ne correspondent pas" + +#: user/forms.py:81 user/templates/ldt/user/change_profile.html:54 +msgid "First name" +msgstr "Prénom" + +#: user/forms.py:82 +msgid "Last name" +msgstr "Nom" + +#: user/forms.py:109 user/templates/ldt/user/change_profile.html:83 +msgid "Language" +msgstr "Langue" + +#: user/forms.py:123 +msgid "Profile picture" +msgstr "Image de profil" + +#: user/forms.py:133 +#, python-format +msgid "Image size is limited to %s" +msgstr "La taille de l'image est limitée à %s" + +#: user/views.py:28 +msgid "Your profile has been updated." +msgstr "Votre profil a été modifié" + +#: user/views.py:52 +msgid "Your password has been updated." +msgstr "Votre mot de passe a été changeé." + +#: user/views.py:76 +msgid "Your profile picture has been updated." +msgstr "Votre image de profil a été modifiée" + +#: user/views.py:98 user/templates/registration/login.html:24 +msgid "Sorry, that's not a valid username or password." +msgstr "Saisissez un nom d'utilisateur et un mot de passe valide." + +#: user/templates/ldt/user/change_password.html:31 +msgid "Old password" +msgstr "Ancien mot de passe" + +#: user/templates/ldt/user/change_password.html:44 +msgid "passwords don't match" +msgstr "les mots de passe ne correspondent pas" + +#: user/templates/ldt/user/change_password.html:57 +#: user/templates/ldt/user/change_profile.html:144 +#: user/templates/registration/password_change_form.html:14 +#: user/templates/registration/password_change_form.html:17 +msgid "Password change" +msgstr "Modification du mot de passe" + +#: user/templates/ldt/user/change_password.html:61 +msgid "Your new password has been saved." +msgstr "Votre mot de passe a été changé." + +#: user/templates/ldt/user/change_profile.html:19 +msgid "Invalid extension ! Your file has to be JPG, JPEG or PNG." +msgstr "extension invalide ! votre fichier doit être JPG, JPEG ou PNG" + +#: user/templates/ldt/user/change_profile.html:43 +msgid "Username" +msgstr "Nom" + +#: user/templates/ldt/user/change_profile.html:70 +msgid "Email" +msgstr "E-mail" + +#: user/templates/ldt/user/change_profile.html:175 +msgid "Profile picture change" +msgstr "Modification de l'image de profil" + +#: user/templates/ldt/user/login_form.html:32 +#: user/templates/registration/password_change_done.html:7 +#: user/templates/registration/password_change_form.html:13 +msgid "Profiles" +msgstr "Les profils" + +#: user/templates/ldt/user/login_form.html:50 +msgid "create account" +msgstr "Créer un compte" + +#: user/templates/ldt/user/login_form.html:54 +msgid "Pseudo" +msgstr "Pseudo" + +#: user/templates/ldt/user/login_form.html:57 +#: user/templates/ldt/user/login_form.html:64 +msgid "this field is compulsory" +msgstr "Ce champs est obligatoire" + +#: user/templates/ldt/user/login_form.html:68 +msgid "reset password" +msgstr "Réinitialiser le mot de passe" + +#: user/templates/ldt/user/login_form.html:71 +msgid "Connection" +msgstr "Connexion" + +#: user/templates/registration/activate.html:6 +#: user/templates/registration/activate.html:9 +msgid "Activate account" +msgstr "Activer le compte" + +#: user/templates/registration/activate.html:12 +msgid "You have activated your account" +msgstr "Vous avez bien activé votre compte." + +#: user/templates/registration/activate.html:13 +msgid "Go back to login page" +msgstr "Retourner à la page de connexion" + +#: user/templates/registration/activation_complete.html:4 +#: user/templates/registration/registration_complete.html:8 +msgid "Sign up successfully" +msgstr "Création de compte avec succès" + +#: user/templates/registration/activation_complete.html:6 +msgid "activation completed" +msgstr "Activation terminée" + +#: user/templates/registration/logged_out.html:8 +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Merci de votre visite." + +#: user/templates/registration/logged_out.html:10 +msgid "Log in again" +msgstr "Se reconnecter" + +#: user/templates/registration/login.html:46 +msgid "login" +msgstr "Connexion" + +#: user/templates/registration/password_change_done.html:3 +#: user/templates/registration/password_change_done.html:11 +msgid "password change successful" +msgstr "Changement de mot de passe réussi" + +#: user/templates/registration/password_change_done.html:8 +msgid "password change" +msgstr "Changement de mot de passe" + +#: user/templates/registration/password_change_done.html:14 +msgid "Your password has been changed." +msgstr "Votre mot de passe a été changé." + +#: user/templates/registration/password_change_done.html:15 +msgid "Go back to profiles" +msgstr "Retourner à la page de mon profil" + +#: user/templates/registration/password_change_form.html:20 +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Par sécurité, veuillez enter votre ancien mot de passe puis le nouveau a " +"deux reprise afin de savoir si vous l'avez taper correctement " + +#: user/templates/registration/password_change_form.html:26 +msgid "Old password:" +msgstr "Ancien mot de passe :" + +#: user/templates/registration/password_change_form.html:32 +#: user/templates/registration/password_reset_confirm.html:19 +msgid "New password:" +msgstr "Nouveau mot de passe :" + +#: user/templates/registration/password_change_form.html:38 +#: user/templates/registration/password_reset_confirm.html:21 +msgid "Confirm password:" +msgstr "Confirmer le mot de passe :" + +#: user/templates/registration/password_change_form.html:44 +#: user/templates/registration/password_reset_confirm.html:22 +msgid "Change my password" +msgstr "Modifier mon mot de passe" + +#: user/templates/registration/password_reset_complete.html:6 +#: user/templates/registration/password_reset_confirm.html:6 +#: user/templates/registration/password_reset_confirm.html:9 +#: user/templates/registration/password_reset_done.html:6 +#: user/templates/registration/password_reset_form.html:13 +#: user/templates/registration/password_reset_form.html:15 +#: user/templates/registration/password_reset_form.html:18 +msgid "Password reset" +msgstr "Réinitialiser le mot de passe" + +#: user/templates/registration/password_reset_complete.html:9 +msgid "Password reset complete" +msgstr "Réinitialisation du mot de passe terminée" + +#: user/templates/registration/password_reset_complete.html:12 +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Votre mot de passe a été défini. vous pouvez vous connecter maintenant." + +#: user/templates/registration/password_reset_confirm.html:15 +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" +"veuillez enter votre nouveau mot de pass deux fois afin de le vérifier." + +#: user/templates/registration/password_reset_confirm.html:27 +msgid "Password reset unsuccessful" +msgstr "Reinitialisation du mot de pass a échoué" + +#: user/templates/registration/password_reset_confirm.html:29 +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Le lien de réinitialisation du mot de passe n'est pas valide, certainement " +"car il a déjà été utilisé. veuiller demander une nouvelle réinitialisation." + +#: user/templates/registration/password_reset_done.html:8 +msgid "Password reset successful" +msgstr "Réinitialisation du mot de passe réussie" + +#: user/templates/registration/password_reset_done.html:12 +msgid "" +"We've e-mailed you instructions for setting your password to the e-mail " +"address you submitted. You should be receiving it shortly." +msgstr "" +"Nous vous avons envoyer les instructions de reinitialisation de votre mot de " +"passe à l'adresse email que vous nous avez fournie. vous devriez les " +"recevoir bientôt." + +#: user/templates/registration/password_reset_email.html:2 +msgid "You're receiving this e-mail because you requested a password reset" +msgstr "" +"Vous recevez ce mail car vous avez demander la réinitialisation du mot de " +"passe" + +#: user/templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "Pour votre compte sur le site %(site_name)s" + +#: user/templates/registration/password_reset_email.html:5 +msgid "Please go to the following page and choose a new password:" +msgstr "" +"veuillez aller à la page suivante et choisissez un nouveau mot de passe :" + +#: user/templates/registration/password_reset_email.html:9 +msgid "Your username, in case you've forgotten:" +msgstr "Pour rappel votre nom d'autilisateur :" + +#: user/templates/registration/password_reset_email.html:11 +msgid "Thanks for using our site!" +msgstr "Merci de votre visite." + +#: user/templates/registration/password_reset_email.html:13 +#, python-format +msgid "The %(site_name)s team" +msgstr "L'équipe du site %(site_name)s" + +#: user/templates/registration/password_reset_form.html:22 +msgid "" +"Forgotten your password? Enter your e-mail address below, and we'll e-mail " +"instructions for setting a new one." +msgstr "" +"Mot de passe oublié ? Entrez votre adresse email ci-dessous pour recevoir " +"les instructions pour en entrer un nouveau." + +#: user/templates/registration/password_reset_form.html:27 +msgid "Adresse émail" +msgstr "Adresse émail" + +#: user/templates/registration/password_reset_form.html:32 +msgid "Reset my password" +msgstr "Reinitialiser mon mot de passe" + +#: user/templates/registration/registration_active.html:5 +#: user/templates/registration/registration_active.html:7 +msgid "Activate the account" +msgstr "Activer le compte" + +#: user/templates/registration/registration_active.html:9 +msgid "" +"Vous avez bien activé votre compte, vous pouvez accedez à votre espace " +"personnel." +msgstr "" +"Vous avez bien activé votre compte, vous pouvez accedez à votre espace " +"personnel." + +#: user/templates/registration/registration_active.html:10 +msgid "retourner à la page de connexion" +msgstr "retourner à la page de connexion" + +#: user/templates/registration/registration_complete.html:6 +#: user/templates/registration/registration_form.html:11 +msgid "Sign up" +msgstr "Création d'un compte" + +#: user/templates/registration/registration_complete.html:10 +msgid "" +"We've e-mailed you instructions for activate your account to the e-mail " +"address you submitted. You should be receiving it shortly." +msgstr "" +"Nous vous avons envoyé par courriel les instructions pour activer le compte " +"à l'adresse que vous avez indiquée. Vous devriez le recevoir rapidement." diff -r 94429061bbfa -r 5af755809dd1 src/ldt/ldt/static/ldt/img/icon-no.gif Binary file src/ldt/ldt/static/ldt/img/icon-no.gif has changed diff -r 94429061bbfa -r 5af755809dd1 src/ldt/ldt/static/ldt/img/icon-yes.gif Binary file src/ldt/ldt/static/ldt/img/icon-yes.gif has changed diff -r 94429061bbfa -r 5af755809dd1 src/ldt/setup.py --- a/src/ldt/setup.py Fri May 25 17:47:20 2012 +0200 +++ b/src/ldt/setup.py Fri May 25 17:50:54 2012 +0200 @@ -4,6 +4,7 @@ from distutils.command.install import INSTALL_SCHEMES import sys + class osx_install_data(install_data): # On MacOS, the platform-specific lib dir is /System/Library/Framework/Python/.../ # which is wrong. Python 2.5 supplied with MacOS 10.5 has an Apple-specific fix @@ -17,25 +18,6 @@ self.set_undefined_options('install', ('install_lib', 'install_dir')) install_data.finalize_options(self) -if sys.platform == "darwin": - cmdclasses = {'install_data': osx_install_data} -else: - cmdclasses = {'install_data': install_data} - - -root_dir = os.path.dirname(__file__) -if root_dir != '': - os.chdir(root_dir) -source_dir = 'ldt' - -version_variables = {} -try: - execfile(os.path.join(source_dir, "__init__.py"), version_variables) -except: - pass - -version = version_variables['__version__'] - def fullsplit(path, result=None): """ Split a pathname into components (the opposite of os.path.join) in a @@ -50,64 +32,94 @@ return result return fullsplit(head, [tail] + result) -packages, data_files = [], [] - -for dirpath, dirnames, filenames in os.walk(source_dir): - # Ignore dirnames that start with '.' - for i, dirname in enumerate(dirnames): - if dirname.startswith('.'): del dirnames[i] - if '__init__.py' in filenames: - packages.append('.'.join(fullsplit(dirpath))) - elif filenames: - data_files.append([dirpath, [os.path.join(dirpath, f) for f in filenames]]) +def launch_setup(script_name, script_args): + if sys.platform == "darwin": + cmdclasses = {'install_data': osx_install_data} + else: + cmdclasses = {'install_data': install_data} + + + root_dir = os.path.dirname(__file__) + if root_dir != '': + os.chdir(root_dir) + source_dir = 'ldt' + + version_variables = {} + try: + execfile(os.path.join(source_dir, "__init__.py"), version_variables) + except: + pass + + version = version_variables['__version__'] + + packages, data_files = [], [] + + + for dirpath, dirnames, filenames in os.walk(source_dir): + # Ignore dirnames that start with '.' + for i, dirname in enumerate(dirnames): + if dirname.startswith('.'): del dirnames[i] + if '__init__.py' in filenames: + packages.append('.'.join(fullsplit(dirpath))) + elif filenames: + data_files.append([dirpath, [os.path.join(dirpath, f) for f in filenames]]) + + + # Tell distutils to put the data_files in platform-specific installation + # locations. See here for an explanation: + # http://groups.google.com/group/comp.lang.python/browse_thread/thread/35ec7b2fed36eaec/2105ee4d9e8042cb + for scheme in INSTALL_SCHEMES.values(): + scheme['data'] = scheme['purelib'] + + # Small hack for working with bdist_wininst. + # See http://mail.python.org/pipermail/distutils-sig/2004-August/004134.html + if len(sys.argv) > 1 and sys.argv[1] == 'bdist_wininst': + for file_info in data_files: + file_info[0] = '\\PURELIB\\%s' % file_info[0] + + #write MANIFEST.in + + with open("MANIFEST.in", "w") as m: + m.write("include CHANGES\n") + m.write("include LICENSE\n") + m.write("include README\n") + m.write("include MANIFEST.in\n") + for entry in data_files: + file_list = entry[1] + for filename in file_list: + m.write("include %s\n" % (filename)) + + setup( + script_name = script_name, + script_args = script_args, + name='ldt', + version=version, + author='IRI', + author_email='contact@iri.centrepompidou.fr', + packages=packages, + data_files=data_files, + cmdclass = cmdclasses, + scripts=[], + url='http://www.iri.centrepompidou.fr/dev/hg/platform', + license='LICENSE.txt', + description='Platform ldt', + long_description=open('README').read(), + classifiers=['Development Status :: 5 - Production/Stable', + 'Environment :: Web Environment', + 'Framework :: Django', + 'Intended Audience :: Developers', + 'License :: Ceccil-C', + 'Operating System :: OS Independent', + 'Programming Language :: Python', + 'Topic :: Utilities', + ], + ) -# Tell distutils to put the data_files in platform-specific installation -# locations. See here for an explanation: -# http://groups.google.com/group/comp.lang.python/browse_thread/thread/35ec7b2fed36eaec/2105ee4d9e8042cb -for scheme in INSTALL_SCHEMES.values(): - scheme['data'] = scheme['purelib'] - -# Small hack for working with bdist_wininst. -# See http://mail.python.org/pipermail/distutils-sig/2004-August/004134.html -if len(sys.argv) > 1 and sys.argv[1] == 'bdist_wininst': - for file_info in data_files: - file_info[0] = '\\PURELIB\\%s' % file_info[0] - -#write MANIFEST.in - -with open("MANIFEST.in", "w") as m: - m.write("include CHANGES\n") - m.write("include LICENSE\n") - m.write("include README\n") - m.write("include MANIFEST.in\n") - for entry in data_files: - file_list = entry[1] - for filename in file_list: - m.write("include %s\n" % (filename)) - - -setup( - name='ldt', - version=version, - author='IRI', - author_email='contact@iri.centrepompidou.fr', - packages=packages, - data_files=data_files, - cmdclass = cmdclasses, - scripts=[], - url='http://www.iri.centrepompidou.fr/dev/hg/platform', - license='LICENSE.txt', - description='Platform ldt', - long_description=open('README').read(), - classifiers=['Development Status :: 5 - Production/Stable', - 'Environment :: Web Environment', - 'Framework :: Django', - 'Intended Audience :: Developers', - 'License :: Ceccil-C', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Topic :: Utilities', - ], -) +if __name__ == "__main__": + + script_name = os.path.basename(sys.argv[0]) + script_args = sys.argv[1:] + + launch_setup(script_name, script_args) \ No newline at end of file diff -r 94429061bbfa -r 5af755809dd1 virtualenv/res/lib/lib_create_env.py --- a/virtualenv/res/lib/lib_create_env.py Fri May 25 17:47:20 2012 +0200 +++ b/virtualenv/res/lib/lib_create_env.py Fri May 25 17:50:54 2012 +0200 @@ -15,7 +15,7 @@ URLS = { #'': {'setup': '', 'url':'', 'local':''}, 'DISTRIBUTE': {'setup': 'distribute', 'url':'http://pypi.python.org/packages/source/d/distribute/distribute-0.6.14.tar.gz', 'local':"distribute-0.6.14.tar.gz"}, - 'DJANGO': {'setup': 'django', 'url': 'http://www.djangoproject.com/download/1.3.1/tarball/', 'local':"Django-1.3.1.tar.gz"}, + 'DJANGO': {'setup': 'django', 'url': 'http://www.djangoproject.com/download/1.4/tarball/', 'local':"Django-1.4.tar.gz"}, 'DJANGO-EXTENSIONS': { 'setup': 'django-extensions', 'url':'https://github.com/django-extensions/django-extensions/tarball/0.6', 'local':"django-extensions-0.6.tar.gz"}, 'DJANGO-REGISTRATION': { 'setup': 'django-registration', 'url':'http://bitbucket.org/ubernostrum/django-registration/get/tip.tar.gz', 'local':"django-registration.tar.gz"}, 'DJANGO-TAGGING': { 'setup': 'django-tagging', 'url':'http://django-tagging.googlecode.com/files/django-tagging-0.3.1.tar.gz', 'local':"django-tagging-0.3.1.tar.gz"}, @@ -32,6 +32,12 @@ 'SORL_THUMBNAIL' : { 'setup': 'sorl-thumbnail', 'url':'http://pypi.python.org/packages/source/s/sorl-thumbnail/sorl-thumbnail-11.12.tar.gz', 'local':"sorl-thumbnail-v10.12.1.tar.gz"}, 'LIBJPEG': {'setup': None, 'url':'jpegsrc.v8d.tar.gz', 'local':'jpegsrc.v8d.tar.gz'}, 'ZLIB': {'setup': None, 'url':'zlib-1.2.6.tar.gz', 'local':'zlib-1.2.6.tar.gz'}, + 'PYCRYPTO': {'setup': 'pycrypto', 'url':'https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.6.tar.gz', 'local':'pycrypto-2.6.tar.gz'}, + 'SSH': {'setup': 'ssh', 'url':'http://pypi.python.org/packages/source/s/ssh/ssh-1.7.13.tar.gz#md5=26800ef2c1ee3f185f48fd05258302f4', 'local':'ssh-1.7.13.tar.gz'}, + 'FABRIC': {'setup': 'fabric', 'url':'https://github.com/fabric/fabric/tarball/1.4.1', 'local':'fabric-1.4.1.tar.gz'}, + 'MERCURIAL': {'setup': 'mercurial', 'url':'http://mercurial.selenic.com/release/mercurial-2.2.1.tar.gz', 'local':'mercurial-2.2.1.tar.gz'}, + 'MEMCHACHED': {'setup': 'python-memcached', 'url':'http://ftp.tummy.com/pub/python-memcached/old-releases/python-memcached-1.48.tar.gz', 'local':'python-memcached-1.48.tar.gz'}, + 'UWSGI': {'setup': 'uwsgi', 'url': 'http://projects.unbit.it/downloads/uwsgi-1.2.3.tar.gz', 'local':'uwsgi-1.2.3.tar.gz'} } if system_str == 'Windows': diff -r 94429061bbfa -r 5af755809dd1 virtualenv/res/src/Django-1.3.1.tar.gz Binary file virtualenv/res/src/Django-1.3.1.tar.gz has changed diff -r 94429061bbfa -r 5af755809dd1 virtualenv/res/src/Django-1.4.tar.gz Binary file virtualenv/res/src/Django-1.4.tar.gz has changed diff -r 94429061bbfa -r 5af755809dd1 virtualenv/res/src/fabric-1.4.1.tar.gz Binary file virtualenv/res/src/fabric-1.4.1.tar.gz has changed diff -r 94429061bbfa -r 5af755809dd1 virtualenv/res/src/mercurial-2.2.1.tar.gz Binary file virtualenv/res/src/mercurial-2.2.1.tar.gz has changed diff -r 94429061bbfa -r 5af755809dd1 virtualenv/res/src/python-memcached-1.48.tar.gz Binary file virtualenv/res/src/python-memcached-1.48.tar.gz has changed diff -r 94429061bbfa -r 5af755809dd1 virtualenv/res/src/ssh-1.7.13.tar.gz Binary file virtualenv/res/src/ssh-1.7.13.tar.gz has changed diff -r 94429061bbfa -r 5af755809dd1 virtualenv/sync/create_python_env.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/virtualenv/sync/create_python_env.py Fri May 25 17:50:54 2012 +0200 @@ -0,0 +1,64 @@ +""" +Call this like ``python create_python_env.py``; it will +refresh the project-boot.py script + +-prerequisite: + +- virtualenv + +- python project-boot.py --unzip-setuptools --no-site-packages --clear --type-install=local + +""" + +import os +import subprocess +import re +import sys + + +here = os.path.dirname(os.path.abspath(__file__)) +base_dir = here +script_name = os.path.join(base_dir, 'project-boot.py') + +import virtualenv + +# things to install +# - psycopg2 -> pip +# - PIL -> pip +# - pyxml -> pip +# - 4Suite-xml - easy_install ftp://ftp.4suite.org/pub/4Suite/4Suite-XML-1.0.2.tar.bz2 +# - pylucene - script + +src_base = os.path.abspath(os.path.join(here,"..","res","src")).replace("\\","/") +lib_path = os.path.abspath(os.path.join(here,"..","res","lib")).replace("\\","/") +patch_path = os.path.abspath(os.path.join(here,"res","patch")).replace("\\","/") + + +EXTRA_TEXT = "import sys\n" +EXTRA_TEXT += "sys.path.append('%s')\n" % (lib_path) +EXTRA_TEXT += "sys.path.append('%s')\n" % (os.path.abspath(os.path.join(here,"res")).replace("\\","/")) +EXTRA_TEXT += "from res_create_env import generate_install_methods\n" +EXTRA_TEXT += "adjust_options, extend_parser, after_install = generate_install_methods(path_locations, '%s', Logger, call_subprocess)\n" % (src_base) + + +def main(): + python_version = ".".join(map(str,sys.version_info[0:2])) + text = virtualenv.create_bootstrap_script(EXTRA_TEXT, python_version=python_version) + if os.path.exists(script_name): + f = open(script_name) + cur_text = f.read() + f.close() + else: + cur_text = '' + print 'Updating %s' % script_name + if cur_text == 'text': + print 'No update' + else: + print 'Script changed; updating...' + f = open(script_name, 'w') + f.write(text) + f.close() + +if __name__ == '__main__': + main() + diff -r 94429061bbfa -r 5af755809dd1 virtualenv/sync/env/.keepme diff -r 94429061bbfa -r 5af755809dd1 virtualenv/sync/res/res_create_env.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/virtualenv/sync/res/res_create_env.py Fri May 25 17:50:54 2012 +0200 @@ -0,0 +1,17 @@ +import platform + +from lib_create_env import lib_generate_install_methods, install_pylucene, install_psycopg2 + +system_str = platform.system() + + +INSTALLS = [#(key,method, option_str, dict_extra_env) + ('DISTRIBUTE', 'pip', None, None), + ('PYCRYPTO', 'pip', None, None), + ('SSH', 'pip', None, None), + ('FABRIC', 'pip', None, None), + ('MERCURIAL', 'pip', None, None), +] + +def generate_install_methods(path_locations, src_base, Logger, call_subprocess): + return lib_generate_install_methods(path_locations, src_base, Logger, call_subprocess, INSTALLS) diff -r 94429061bbfa -r 5af755809dd1 virtualenv/web/res/srvr_requirements.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/virtualenv/web/res/srvr_requirements.txt Fri May 25 17:50:54 2012 +0200 @@ -0,0 +1,2 @@ +python-memcached +uWSGI diff -r 94429061bbfa -r 5af755809dd1 web/ldtplatform/__init__.py --- a/web/ldtplatform/__init__.py Fri May 25 17:47:20 2012 +0200 +++ b/web/ldtplatform/__init__.py Fri May 25 17:50:54 2012 +0200 @@ -1,4 +1,4 @@ -VERSION = (1, 6, 0, "final", 0) +VERSION = (1, 7, 0, "final", 0) VERSION_STR = unicode(".".join(map(lambda i:"%02d" % (i,), VERSION[:2]))) diff -r 94429061bbfa -r 5af755809dd1 web/ldtplatform/manage.py --- a/web/ldtplatform/manage.py Fri May 25 17:47:20 2012 +0200 +++ b/web/ldtplatform/manage.py Fri May 25 17:50:54 2012 +0200 @@ -1,11 +1,9 @@ #!/usr/bin/env python -from django.core.management import execute_manager -try: - import settings # Assumed to be in the same directory. -except ImportError: - import sys - sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__) - sys.exit(1) +import os, sys if __name__ == "__main__": - execute_manager(settings) + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ldtplatform.settings") + + from django.core.management import execute_from_command_line + + execute_from_command_line(sys.argv) \ No newline at end of file