# HG changeset patch # User Sylvain Thénault # Date 1255099166 -7200 # Node ID 559cad62c786fe73d6cd64f3eec10ebfc847d333 # Parent 1b0dbcf4b214267617ef57a066c7d65f10073263# Parent 4409311813224858c5ffc20ebb9b4964577f6ec0 backport stable branch diff -r 1b0dbcf4b214 -r 559cad62c786 .hgtags --- a/.hgtags Wed Oct 07 12:38:30 2009 +0200 +++ b/.hgtags Fri Oct 09 16:39:26 2009 +0200 @@ -76,3 +76,7 @@ f476cecd46904f215bd29249ded8508d8f5634d7 cubicweb-debian-version-3.5.1-1 1f0aa3cd5af2c92df8f9695773b8e465eb6f1795 cubicweb-version-3.5.2 75cc4aa76fb12c06d4190956aa050cdf19ba4d8f cubicweb-debian-version-3.5.2-1 +540210e138d323e5224d7b08cbd71f5a23ed630d cubicweb-version-3.5.3 +2e22b975f9c23aebfe3e0a16a798c3fe81fa2a82 cubicweb-debian-version-3.5.3-1 +312349b3712e0a3e32247e03fdc7408e17bd19de cubicweb-version-3.5.4 +37d025b2aa7735dae4a861059014c560b45b19e6 cubicweb-debian-version-3.5.4-1 diff -r 1b0dbcf4b214 -r 559cad62c786 __init__.py --- a/__init__.py Wed Oct 07 12:38:30 2009 +0200 +++ b/__init__.py Fri Oct 09 16:39:26 2009 +0200 @@ -55,7 +55,7 @@ "Binary objects must use raw strings, not %s" % data.__class__ StringIO.write(self, data) -# use this dictionary for renaming of entity types while keeping bw compath +# use this dictionary for renaming of entity types while keeping bw compat ETYPE_NAME_MAP = {# 3.2 migration 'ECache': 'CWCache', 'EUser': 'CWUser', diff -r 1b0dbcf4b214 -r 559cad62c786 __pkginfo__.py --- a/__pkginfo__.py Wed Oct 07 12:38:30 2009 +0200 +++ b/__pkginfo__.py Fri Oct 09 16:39:26 2009 +0200 @@ -7,7 +7,7 @@ distname = "cubicweb" modname = "cubicweb" -numversion = (3, 5, 2) +numversion = (3, 5, 4) version = '.'.join(str(num) for num in numversion) license = 'LGPL v2' diff -r 1b0dbcf4b214 -r 559cad62c786 cwctl.py --- a/cwctl.py Wed Oct 07 12:38:30 2009 +0200 +++ b/cwctl.py Fri Oct 09 16:39:26 2009 +0200 @@ -71,7 +71,10 @@ def ordered_instances(self): """return instances in the order in which they should be started, considering $REGISTRY_DIR/startorder file if it exists (useful when - some instances depends on another as external source + some instances depends on another as external source). + + Instance used by another one should appears first in the file (one + instance per line) """ regdir = cwcfg.registry_dir() _allinstances = list_instances(regdir) diff -r 1b0dbcf4b214 -r 559cad62c786 debian/changelog --- a/debian/changelog Wed Oct 07 12:38:30 2009 +0200 +++ b/debian/changelog Fri Oct 09 16:39:26 2009 +0200 @@ -1,3 +1,15 @@ +cubicweb (3.5.4-1) unstable; urgency=low + + * new upstream release + + -- Sylvain Thénault Wed, 07 Oct 2009 20:58:35 +0200 + +cubicweb (3.5.3-1) unstable; urgency=low + + * new upstream release + + -- Sylvain Thénault Wed, 07 Oct 2009 15:35:10 +0200 + cubicweb (3.5.2-1) unstable; urgency=low * new upstream release diff -r 1b0dbcf4b214 -r 559cad62c786 entities/test/unittest_wfobjs.py --- a/entities/test/unittest_wfobjs.py Wed Oct 07 12:38:30 2009 +0200 +++ b/entities/test/unittest_wfobjs.py Fri Oct 09 16:39:26 2009 +0200 @@ -158,7 +158,7 @@ 'WHERE T name "deactivate"') self._test_stduser_deactivate() - def test_subworkflow_base(self): + def test_swf_base(self): """subworkflow +-----------+ tr1 +-----------+ @@ -239,7 +239,7 @@ ('swfstate3', 'state3', 'swftr1', 'exiting from subworkflow subworkflow'), ]) - def test_subworkflow_exit_consistency(self): + def test_swf_exit_consistency(self): # sub-workflow swf = add_wf(self, 'CWGroup', name='subworkflow') swfstate1 = swf.add_state(u'swfstate1', initial=True) @@ -255,6 +255,68 @@ ex = self.assertRaises(ValidationError, self.commit) self.assertEquals(ex.errors, {'subworkflow_exit': u"can't have multiple exits on the same state"}) + def test_swf_fire_in_a_row(self): + # sub-workflow + subwf = add_wf(self, 'CWGroup', name='subworkflow') + xsigning = subwf.add_state('xsigning', initial=True) + xaborted = subwf.add_state('xaborted') + xsigned = subwf.add_state('xsigned') + xabort = subwf.add_transition('xabort', (xsigning,), xaborted) + xsign = subwf.add_transition('xsign', (xsigning,), xsigning) + xcomplete = subwf.add_transition('xcomplete', (xsigning,), xsigned, + type=u'auto') + # main workflow + twf = add_wf(self, 'CWGroup', name='mainwf', default=True) + created = twf.add_state(_('created'), initial=True) + identified = twf.add_state(_('identified')) + released = twf.add_state(_('released')) + closed = twf.add_state(_('closed')) + twf.add_wftransition(_('identify'), subwf, (created,), + [(xsigned, identified), (xaborted, created)]) + twf.add_wftransition(_('release'), subwf, (identified,), + [(xsigned, released), (xaborted, identified)]) + twf.add_wftransition(_('close'), subwf, (released,), + [(xsigned, closed), (xaborted, released)]) + self.commit() + group = self.add_entity('CWGroup', name=u'grp1') + self.commit() + for trans in ('identify', 'release', 'close'): + group.fire_transition(trans) + self.commit() + + + def test_swf_magic_tr(self): + # sub-workflow + subwf = add_wf(self, 'CWGroup', name='subworkflow') + xsigning = subwf.add_state('xsigning', initial=True) + xaborted = subwf.add_state('xaborted') + xsigned = subwf.add_state('xsigned') + xabort = subwf.add_transition('xabort', (xsigning,), xaborted) + xsign = subwf.add_transition('xsign', (xsigning,), xsigned) + # main workflow + twf = add_wf(self, 'CWGroup', name='mainwf', default=True) + created = twf.add_state(_('created'), initial=True) + identified = twf.add_state(_('identified')) + released = twf.add_state(_('released')) + twf.add_wftransition(_('identify'), subwf, created, + [(xaborted, None), (xsigned, identified)]) + twf.add_wftransition(_('release'), subwf, identified, + [(xaborted, None)]) + self.commit() + group = self.add_entity('CWGroup', name=u'grp1') + self.commit() + for trans, nextstate in (('identify', 'xsigning'), + ('xabort', 'created'), + ('identify', 'xsigning'), + ('xsign', 'identified'), + ('release', 'xsigning'), + ('xabort', 'identified') + ): + group.fire_transition(trans) + self.commit() + group.clear_all_caches() + self.assertEquals(group.state, nextstate) + class CustomWorkflowTC(CubicWebTC): diff -r 1b0dbcf4b214 -r 559cad62c786 entities/wfobjs.py --- a/entities/wfobjs.py Wed Oct 07 12:38:30 2009 +0200 +++ b/entities/wfobjs.py Fri Oct 09 16:39:26 2009 +0200 @@ -124,27 +124,28 @@ tr.set_transition_permissions(requiredgroups, conditions, reset=False) return tr - def add_transition(self, name, fromstates, tostate, + def add_transition(self, name, fromstates, tostate=None, requiredgroups=(), conditions=(), **kwargs): """add a transition to this workflow from some state(s) to another""" tr = self._add_transition('Transition', name, fromstates, requiredgroups, conditions, **kwargs) - if hasattr(tostate, 'eid'): - tostate = tostate.eid - self._cw.execute('SET T destination_state S ' - 'WHERE S eid %(s)s, T eid %(t)s', - {'t': tr.eid, 's': tostate}, ('s', 't')) + if tostate is not None: + if hasattr(tostate, 'eid'): + tostate = tostate.eid + self._cw.execute('SET T destination_state S ' + 'WHERE S eid %(s)s, T eid %(t)s', + {'t': tr.eid, 's': tostate}, ('s', 't')) return tr - def add_wftransition(self, name, subworkflow, fromstates, exitpoints, + def add_wftransition(self, name, subworkflow, fromstates, exitpoints=(), requiredgroups=(), conditions=(), **kwargs): """add a workflow transition to this workflow""" tr = self._add_transition('WorkflowTransition', name, fromstates, requiredgroups, conditions, **kwargs) if hasattr(subworkflow, 'eid'): subworkflow = subworkflow.eid - self._cw.execute('SET T subworkflow WF WHERE WF eid %(wf)s,T eid %(t)s', - {'t': tr.eid, 'wf': subworkflow}, ('wf', 't')) + assert _cw.req.execute('SET T subworkflow WF WHERE WF eid %(wf)s,T eid %(t)s', + {'t': tr.eid, 'wf': subworkflow}, ('wf', 't')) for fromstate, tostate in exitpoints: tr.add_exit_point(fromstate, tostate) return tr @@ -258,28 +259,37 @@ def add_exit_point(self, fromstate, tostate): if hasattr(fromstate, 'eid'): fromstate = fromstate.eid - if hasattr(tostate, 'eid'): - tostate = tostate.eid - self._cw.execute('INSERT SubWorkflowExitPoint X: T subworkflow_exit X, ' - 'X subworkflow_state FS, X destination_state TS ' - 'WHERE T eid %(t)s, FS eid %(fs)s, TS eid %(ts)s', - {'t': self.eid, 'fs': fromstate, 'ts': tostate}, - ('t', 'fs', 'ts')) + if tostate is None: + self._cw.execute('INSERT SubWorkflowExitPoint X: T subworkflow_exit X, ' + 'X subworkflow_state FS WHERE T eid %(t)s, FS eid %(fs)s', + {'t': self.eid, 'fs': fromstate}, ('t', 'fs')) + else: + if hasattr(tostate, 'eid'): + tostate = tostate.eid + self._cw.execute('INSERT SubWorkflowExitPoint X: T subworkflow_exit X, ' + 'X subworkflow_state FS, X destination_state TS ' + 'WHERE T eid %(t)s, FS eid %(fs)s, TS eid %(ts)s', + {'t': self.eid, 'fs': fromstate, 'ts': tostate}, + ('t', 'fs', 'ts')) - def get_exit_point(self, state): + def get_exit_point(self, entity, stateeid): """if state is an exit point, return its associated destination state""" - if hasattr(state, 'eid'): - state = state.eid - stateeid = self.exit_points().get(state) - if stateeid is not None: - return self._cw.entity_from_eid(stateeid) - return None + if hasattr(stateeid, 'eid'): + stateeid = stateeid.eid + try: + tostateeid = self.exit_points()[stateeid] + except KeyError: + return None + if tostateeid is None: + # go back to state from which we've entered the subworkflow + return entity.subworkflow_input_trinfo().previous_state + return self._cw.entity_from_eid(tostateeid) @cached def exit_points(self): result = {} for ep in self.subworkflow_exit: - result[ep.subwf_state.eid] = ep.destination.eid + result[ep.subwf_state.eid] = ep.destination and ep.destination.eid return result def clear_all_caches(self): @@ -297,7 +307,7 @@ @property def destination(self): - return self.destination_state[0] + return self.destination_state and self.destination_state[0] or None class State(AnyEntity): @@ -458,11 +468,10 @@ """ assert self.current_workflow if isinstance(tr, basestring): - tr = self.current_workflow.transition_by_name(tr) - tr = self.current_workflow.transition_by_name(trname) - if tr is None: - raise WorkflowException('not a %s transition: %s' % (self.__regid__, - trname)) + _tr = self.current_workflow.transition_by_name(tr) + assert _tr is not None, 'not a %s transition: %s' % ( + self.__regid__, tr) + tr = _tr return self._add_trinfo(comment, commentformat, tr.eid) def change_state(self, statename, comment=None, commentformat=None, tr=None): @@ -487,18 +496,20 @@ # XXX try to find matching transition? return self._add_trinfo(comment, commentformat, tr and tr.eid, stateeid) - def subworkflow_input_transition(self): - """return the transition which has went through the current sub-workflow + def subworkflow_input_trinfo(self): + """return the TrInfo which has be recorded when this entity went into + the current sub-workflow """ if self.main_workflow.eid == self.current_workflow.eid: return # doesn't make sense subwfentries = [] - for trinfo in reversed(self.workflow_history): + for trinfo in self.workflow_history: if (trinfo.transition and trinfo.previous_state.workflow.eid != trinfo.new_state.workflow.eid): # entering or leaving a subworkflow if (subwfentries and - subwfentries[-1].new_state.workflow.eid == trinfo.previous_state.workflow.eid): + subwfentries[-1].new_state.workflow.eid == trinfo.previous_state.workflow.eid and + subwfentries[-1].previous_state.workflow.eid == trinfo.new_state.workflow.eid): # leave del subwfentries[-1] else: @@ -506,7 +517,12 @@ subwfentries.append(trinfo) if not subwfentries: return None - return subwfentries[-1].transition + return subwfentries[-1] + + def subworkflow_input_transition(self): + """return the transition which has went through the current sub-workflow + """ + return getattr(self.subworkflow_input_trinfo(), 'transition', None) def clear_all_caches(self): super(WorkflowableMixIn, self).clear_all_caches() diff -r 1b0dbcf4b214 -r 559cad62c786 entity.py --- a/entity.py Wed Oct 07 12:38:30 2009 +0200 +++ b/entity.py Fri Oct 09 16:39:26 2009 +0200 @@ -61,7 +61,7 @@ :cvar skip_copy_for: a list of relations that should be skipped when copying this kind of entity. Note that some relations such as composite relations or relations that have '?1' as object - cardinality + cardinality are always skipped. """ __registry__ = 'etypes' __select__ = yes() @@ -373,7 +373,9 @@ # entity cloning ########################################################## def copy_relations(self, ceid): - """copy relations of the object with the given eid on this object + """copy relations of the object with the given eid on this + object (this method is called on the newly created copy, and + ceid designates the original entity). By default meta and composite relations are skipped. Overrides this if you want another behaviour diff -r 1b0dbcf4b214 -r 559cad62c786 etwist/server.py --- a/etwist/server.py Wed Oct 07 12:38:30 2009 +0200 +++ b/etwist/server.py Fri Oct 09 16:39:26 2009 +0200 @@ -35,10 +35,10 @@ # (start-repository command) # See http://www.erlenstar.demon.co.uk/unix/faq_toc.html#TOC16 if os.fork(): # launch child and... - os._exit(0) + return 1 os.setsid() - if os.fork(): # launch child and... - os._exit(0) # kill off parent again. + if os.fork(): # launch child again. + return 1 # move to the root to avoit mount pb os.chdir('/') # set paranoid umask @@ -97,14 +97,17 @@ addSlash = False def __init__(self, config, debug=None): - self.appli = CubicWebPublisher(config, debug=debug) self.debugmode = debug self.config = config self.base_url = config['base-url'] or config.default_base_url() - self.versioned_datadir = 'data%s' % config.instance_md5_version() assert self.base_url[-1] == '/' self.https_url = config['https-url'] assert not self.https_url or self.https_url[-1] == '/' + + def init_publisher(self): + config = self.config + self.appli = CubicWebPublisher(config, debug=self.debugmode) + self.versioned_datadir = 'data%s' % config.instance_md5_version() # when we have an in-memory repository, clean unused sessions every XX # seconds and properly shutdown the server if config.repo_method == 'inmemory': @@ -122,6 +125,9 @@ self.appli.repo.start_looping_tasks() self.set_url_rewriter() CW_EVENT_MANAGER.bind('after-registry-reload', self.set_url_rewriter) + + def start_service(self): + config = self.config interval = min(config['cleanup-session-time'] or 120, config['cleanup-anonymous-session-time'] or 720) / 2. start_task(interval, self.appli.session_handler.clean_sessions) @@ -375,12 +381,12 @@ # serve it via standard HTTP on port set in the configuration port = config['port'] or 8080 reactor.listenTCP(port, channel.HTTPFactory(website)) - baseurl = config['base-url'] or config.default_base_url() logger = getLogger('cubicweb.twisted') - logger.info('instance started on %s', baseurl) + logger.info('instance started on %s', root_resource.base_url) if not debug: print 'instance starting in the background' - daemonize() + if daemonize(): + return # child process if config['pid-file']: # ensure the directory where the pid-file should be set exists (for # instance /var/run/cubicweb may be deleted on computer restart) @@ -388,6 +394,7 @@ if not os.path.exists(piddir): os.makedirs(piddir) file(config['pid-file'], 'w').write(str(os.getpid())) + root_resource.init_publisher() # before changing uid if config['uid'] is not None: try: uid = int(config['uid']) @@ -395,6 +402,7 @@ from pwd import getpwnam uid = getpwnam(config['uid']).pw_uid os.setuid(uid) + root_resource.start_service() if config['profile']: prof = hotshot.Profile(config['profile']) prof.runcall(reactor.run) diff -r 1b0dbcf4b214 -r 559cad62c786 hooks/workflow.py --- a/hooks/workflow.py Wed Oct 07 12:38:30 2009 +0200 +++ b/hooks/workflow.py Fri Oct 09 16:39:26 2009 +0200 @@ -242,7 +242,7 @@ # inconsistency detected msg = session._("state doesn't belong to entity's current workflow") raise ValidationError(entity.eid, {'to_state': msg}) - tostate = wftr.get_exit_point(entity['to_state']) + tostate = wftr.get_exit_point(forentity, entity['to_state']) if tostate is not None: # reached an exit point msg = session._('exiting from subworkflow %s') diff -r 1b0dbcf4b214 -r 559cad62c786 i18n/en.po --- a/i18n/en.po Wed Oct 07 12:38:30 2009 +0200 +++ b/i18n/en.po Fri Oct 09 16:39:26 2009 +0200 @@ -31,6 +31,14 @@ msgstr "" #, python-format +msgid "%(attr)s set to %(newvalue)s" +msgstr "" + +#, python-format +msgid "%(attr)s updated from %(oldvalue)s to %(newvalue)s" +msgstr "" + +#, python-format msgid "%(cstr)s constraint failed for value %(value)r" msgstr "" @@ -118,6 +126,10 @@ msgid "%s software version of the database" msgstr "" +#, python-format +msgid "%s updated" +msgstr "" + msgid "(UNEXISTANT EID)" msgstr "" @@ -533,13 +545,13 @@ msgid "This CWConstraintType" msgstr "This constraint type" +msgid "This CWEType" +msgstr "This entity type" + msgctxt "inlined:CWRelation.from_entity.subject" msgid "This CWEType" msgstr "" -msgid "This CWEType" -msgstr "This entity type" - msgctxt "inlined:CWRelation.to_entity.subject" msgid "This CWEType" msgstr "" @@ -709,6 +721,12 @@ msgid "actions" msgstr "" +msgid "actions_about" +msgstr "" + +msgid "actions_about_description" +msgstr "" + msgid "actions_addentity" msgstr "add an entity of this type" @@ -727,6 +745,12 @@ msgid "actions_cancel_description" msgstr "" +msgid "actions_changelog" +msgstr "" + +msgid "actions_changelog_description" +msgstr "" + msgid "actions_copy" msgstr "copy" @@ -799,6 +823,12 @@ msgid "actions_myprefs_description" msgstr "" +msgid "actions_poweredby" +msgstr "" + +msgid "actions_poweredby_description" +msgstr "" + msgid "actions_prefs" msgstr "preferences" @@ -856,6 +886,9 @@ msgid "add" msgstr "" +msgid "add BaseTransition transition_of Workflow object" +msgstr "" + msgid "add Bookmark bookmarked_by CWUser object" msgstr "bookmark" @@ -934,11 +967,11 @@ msgid "add WorkflowTransition transition_of Workflow object" msgstr "workflow-transition" -msgctxt "inlined:CWRelation.to_entity.subject" +msgctxt "inlined:CWRelation.from_entity.subject" msgid "add a CWEType" msgstr "add an entity type" -msgctxt "inlined:CWRelation.from_entity.subject" +msgctxt "inlined:CWRelation.to_entity.subject" msgid "add a CWEType" msgstr "add an entity type" @@ -974,6 +1007,10 @@ msgid "add_permission" msgstr "add permission" +msgctxt "CWGroup" +msgid "add_permission_object" +msgstr "can add" + msgctxt "RQLExpression" msgid "add_permission_object" msgstr "used to define add permission on" @@ -981,10 +1018,6 @@ msgid "add_permission_object" msgstr "has permission to add" -msgctxt "CWGroup" -msgid "add_permission_object" -msgstr "can add" - #, python-format msgid "added %(etype)s #%(eid)s (%(title)s)" msgstr "" @@ -996,7 +1029,7 @@ msgstr "" msgid "addrelated" -msgstr "" +msgstr "add" msgid "address" msgstr "" @@ -1005,13 +1038,13 @@ msgid "address" msgstr "address" +msgid "alias" +msgstr "" + msgctxt "EmailAddress" msgid "alias" msgstr "alias" -msgid "alias" -msgstr "" - msgid "allow to set a specific workflow for an entity" msgstr "" @@ -1028,6 +1061,11 @@ msgid "allowed_transition" msgstr "allowed transition" +msgctxt "BaseTransition" +msgid "allowed_transition_object" +msgstr "incoming states" + +msgctxt "Transition" msgid "allowed_transition_object" msgstr "incoming states" @@ -1035,11 +1073,6 @@ msgid "allowed_transition_object" msgstr "incoming states" -msgctxt "Transition" -msgid "allowed_transition_object" -msgstr "incoming states" - -msgctxt "BaseTransition" msgid "allowed_transition_object" msgstr "incoming states" @@ -1098,6 +1131,9 @@ msgid "authentication failure" msgstr "" +msgid "auto" +msgstr "automatic" + msgid "automatic" msgstr "" @@ -1211,17 +1247,13 @@ msgid "by relation" msgstr "" +msgid "by_transition" +msgstr "by transition" + msgctxt "TrInfo" msgid "by_transition" msgstr "by transition" -msgid "by_transition" -msgstr "by transition" - -msgctxt "WorkflowTransition" -msgid "by_transition_object" -msgstr "transition information" - msgctxt "BaseTransition" msgid "by_transition_object" msgstr "transition information" @@ -1230,6 +1262,10 @@ msgid "by_transition_object" msgstr "transition information" +msgctxt "WorkflowTransition" +msgid "by_transition_object" +msgstr "transition information" + msgid "by_transition_object" msgstr "transition information" @@ -1278,10 +1314,6 @@ msgid "cancel this insert" msgstr "" -msgctxt "CWRelation" -msgid "cardinality" -msgstr "cardinality" - msgid "cardinality" msgstr "cardinality" @@ -1289,6 +1321,10 @@ msgid "cardinality" msgstr "cardinality" +msgctxt "CWRelation" +msgid "cardinality" +msgstr "cardinality" + msgid "category" msgstr "" @@ -1389,7 +1425,10 @@ msgid "composite" msgstr "composite" -msgctxt "WorkflowTransition" +msgid "condition" +msgstr "condition" + +msgctxt "BaseTransition" msgid "condition" msgstr "condition" @@ -1397,23 +1436,20 @@ msgid "condition" msgstr "condition" -msgid "condition" -msgstr "condition" - -msgctxt "BaseTransition" +msgctxt "WorkflowTransition" msgid "condition" msgstr "condition" msgid "condition:" msgstr "condtion:" +msgctxt "RQLExpression" +msgid "condition_object" +msgstr "" + msgid "condition_object" msgstr "condition of" -msgctxt "RQLExpression" -msgid "condition_object" -msgstr "" - msgid "confirm password" msgstr "" @@ -1428,10 +1464,10 @@ msgid "constrained_by" msgstr "constrained by" +msgctxt "CWConstraint" msgid "constrained_by_object" msgstr "constraints" -msgctxt "CWConstraint" msgid "constrained_by_object" msgstr "constraints" @@ -1550,6 +1586,10 @@ msgid "created_by_object" msgstr "has created" +msgid "" +"creating BaseTransition (BaseTransition transition_of Workflow %(linkto)s)" +msgstr "" + msgid "creating Bookmark (Bookmark bookmarked_by CWUser %(linkto)s)" msgstr "creating bookmark for %(linkto)s" @@ -1654,20 +1694,20 @@ msgid "creation_date" msgstr "creation date" +msgid "cstrtype" +msgstr "constraint's type" + msgctxt "CWConstraint" msgid "cstrtype" msgstr "constraint type" -msgid "cstrtype" -msgstr "constraint's type" - -msgid "cstrtype_object" -msgstr "used by" - msgctxt "CWConstraintType" msgid "cstrtype_object" msgstr "constraint type of" +msgid "cstrtype_object" +msgstr "used by" + msgid "csv entities export" msgstr "" @@ -1726,17 +1766,17 @@ msgid "default workflow for an entity type" msgstr "" +msgid "default_workflow" +msgstr "default workflow" + msgctxt "CWEType" msgid "default_workflow" msgstr "default workflow" -msgid "default_workflow" -msgstr "default workflow" - +msgctxt "Workflow" msgid "default_workflow_object" msgstr "default workflow of" -msgctxt "Workflow" msgid "default_workflow_object" msgstr "default workflow of" @@ -1804,14 +1844,15 @@ msgid "delete_permission" msgstr "can be deleted by" +msgctxt "CWEType" +msgid "delete_permission" +msgstr "delete permission" + msgctxt "CWRType" msgid "delete_permission" msgstr "delete permission" -msgctxt "CWEType" -msgid "delete_permission" -msgstr "delete permission" - +msgctxt "CWGroup" msgid "delete_permission_object" msgstr "has permission to delete" @@ -1819,7 +1860,6 @@ msgid "delete_permission_object" msgstr "has permission to delete" -msgctxt "CWGroup" msgid "delete_permission_object" msgstr "has permission to delete" @@ -1839,7 +1879,11 @@ msgid "description" msgstr "" -msgctxt "Transition" +msgctxt "CWEType" +msgid "description" +msgstr "description" + +msgctxt "CWRelation" msgid "description" msgstr "description" @@ -1847,7 +1891,11 @@ msgid "description" msgstr "description" -msgctxt "CWRelation" +msgctxt "CWAttribute" +msgid "description" +msgstr "description" + +msgctxt "Transition" msgid "description" msgstr "description" @@ -1859,10 +1907,6 @@ msgid "description" msgstr "description" -msgctxt "CWEType" -msgid "description" -msgstr "description" - msgctxt "CWRType" msgid "description" msgstr "description" @@ -1871,14 +1915,6 @@ msgid "description" msgstr "description" -msgctxt "CWAttribute" -msgid "description" -msgstr "description" - -msgctxt "CWRelation" -msgid "description_format" -msgstr "format" - msgid "description_format" msgstr "format" @@ -1886,6 +1922,10 @@ msgid "description_format" msgstr "format" +msgctxt "CWRelation" +msgid "description_format" +msgstr "format" + msgctxt "Workflow" msgid "description_format" msgstr "format" @@ -1926,14 +1966,14 @@ msgid "destination_state" msgstr "destination state" +msgctxt "Transition" +msgid "destination_state" +msgstr "" + msgctxt "SubWorkflowExitPoint" msgid "destination_state" msgstr "destination state" -msgctxt "Transition" -msgid "destination_state" -msgstr "" - msgctxt "State" msgid "destination_state_object" msgstr "destination of" @@ -2091,13 +2131,13 @@ msgid "expected:" msgstr "" +msgid "expression" +msgstr "" + msgctxt "RQLExpression" msgid "expression" msgstr "" -msgid "expression" -msgstr "" - msgid "exprtype" msgstr "expression's type" @@ -2153,37 +2193,37 @@ msgid "file tree view" msgstr "" +msgid "final" +msgstr "" + msgctxt "CWEType" msgid "final" msgstr "" -msgid "final" -msgstr "" - msgctxt "CWRType" msgid "final" msgstr "" +msgid "firstname" +msgstr "" + msgctxt "CWUser" msgid "firstname" msgstr "" -msgid "firstname" -msgstr "" - msgid "foaf" msgstr "" msgid "follow" msgstr "" +msgid "for_user" +msgstr "for user" + msgctxt "CWProperty" msgid "for_user" msgstr "" -msgid "for_user" -msgstr "for user" - msgctxt "CWUser" msgid "for_user_object" msgstr "" @@ -2239,20 +2279,20 @@ msgid "full text or RQL query" msgstr "" +msgid "fulltext_container" +msgstr "fulltext container" + msgctxt "CWRType" msgid "fulltext_container" msgstr "fulltext container" -msgid "fulltext_container" -msgstr "fulltext container" +msgid "fulltextindexed" +msgstr "fulltext indexed" msgctxt "CWAttribute" msgid "fulltextindexed" msgstr "" -msgid "fulltextindexed" -msgstr "fulltext indexed" - msgid "generic plot" msgstr "" @@ -2389,10 +2429,10 @@ msgid "in memory relation schema" msgstr "" -msgctxt "CWUser" msgid "in_group" msgstr "in group" +msgctxt "CWUser" msgid "in_group" msgstr "in group" @@ -2447,10 +2487,10 @@ msgid "initial state for this workflow" msgstr "" -msgctxt "Workflow" msgid "initial_state" msgstr "initial state" +msgctxt "Workflow" msgid "initial_state" msgstr "initial state" @@ -2626,10 +2666,10 @@ msgid "main informations" msgstr "" -msgctxt "RQLExpression" msgid "mainvars" msgstr "main vars" +msgctxt "RQLExpression" msgid "mainvars" msgstr "main vars" @@ -2694,38 +2734,6 @@ msgid "my custom search" msgstr "" -msgctxt "CWPermission" -msgid "name" -msgstr "name" - -msgctxt "State" -msgid "name" -msgstr "name" - -msgctxt "BaseTransition" -msgid "name" -msgstr "" - -msgctxt "CWRType" -msgid "name" -msgstr "" - -msgctxt "CWGroup" -msgid "name" -msgstr "" - -msgctxt "WorkflowTransition" -msgid "name" -msgstr "" - -msgctxt "CWCache" -msgid "name" -msgstr "" - -msgid "name" -msgstr "" - -msgctxt "CWConstraintType" msgid "name" msgstr "" @@ -2741,6 +2749,38 @@ msgid "name" msgstr "" +msgctxt "CWGroup" +msgid "name" +msgstr "" + +msgctxt "CWConstraintType" +msgid "name" +msgstr "" + +msgctxt "WorkflowTransition" +msgid "name" +msgstr "" + +msgctxt "State" +msgid "name" +msgstr "name" + +msgctxt "CWPermission" +msgid "name" +msgstr "name" + +msgctxt "CWRType" +msgid "name" +msgstr "" + +msgctxt "BaseTransition" +msgid "name" +msgstr "" + +msgctxt "CWCache" +msgid "name" +msgstr "" + msgid "name of the cache" msgstr "" @@ -2804,6 +2844,9 @@ msgid "no version information" msgstr "" +msgid "normal" +msgstr "" + msgid "not authorized" msgstr "" @@ -2843,7 +2886,6 @@ msgid "order" msgstr "" -msgctxt "CWRelation" msgid "ordernum" msgstr "order" @@ -2851,6 +2893,7 @@ msgid "ordernum" msgstr "order" +msgctxt "CWRelation" msgid "ordernum" msgstr "order" @@ -2910,10 +2953,10 @@ msgid "pick existing bookmarks" msgstr "" -msgctxt "CWProperty" msgid "pkey" msgstr "key" +msgctxt "CWProperty" msgid "pkey" msgstr "key" @@ -2959,13 +3002,13 @@ msgid "primary_email" msgstr "primary email" +msgctxt "EmailAddress" +msgid "primary_email_object" +msgstr "" + msgid "primary_email_object" msgstr "primary email of" -msgctxt "EmailAddress" -msgid "primary_email_object" -msgstr "" - msgid "progress" msgstr "" @@ -2981,6 +3024,9 @@ msgid "read_perm" msgstr "read perm" +msgid "read_permission" +msgstr "can be read by" + msgctxt "CWEType" msgid "read_permission" msgstr "read permission" @@ -2989,12 +3035,6 @@ msgid "read_permission" msgstr "read permission" -msgid "read_permission" -msgstr "can be read by" - -msgid "read_permission_object" -msgstr "has permission to delete" - msgctxt "CWGroup" msgid "read_permission_object" msgstr "" @@ -3003,6 +3043,9 @@ msgid "read_permission_object" msgstr "" +msgid "read_permission_object" +msgstr "has permission to delete" + msgid "registry" msgstr "" @@ -3027,13 +3070,13 @@ msgid "relation_type" msgstr "relation type" +msgctxt "CWRType" +msgid "relation_type_object" +msgstr "" + msgid "relation_type_object" msgstr "relation definitions" -msgctxt "CWRType" -msgid "relation_type_object" -msgstr "" - msgid "relations" msgstr "" @@ -3059,10 +3102,6 @@ msgid "remove this EmailAddress" msgstr "" -msgctxt "WorkflowTransition" -msgid "require_group" -msgstr "require group" - msgid "require_group" msgstr "require the group" @@ -3078,6 +3117,10 @@ msgid "require_group" msgstr "require group" +msgctxt "WorkflowTransition" +msgid "require_group" +msgstr "require group" + msgctxt "CWGroup" msgid "require_group_object" msgstr "" @@ -3271,13 +3314,13 @@ msgid "specializes" msgstr "" +msgctxt "CWEType" +msgid "specializes_object" +msgstr "" + msgid "specializes_object" msgstr "specialized by" -msgctxt "CWEType" -msgid "specializes_object" -msgstr "" - msgid "startup views" msgstr "" @@ -3295,13 +3338,13 @@ "workflow for this entity first." msgstr "" +msgid "state_of" +msgstr "state of" + msgctxt "State" msgid "state_of" msgstr "" -msgid "state_of" -msgstr "state of" - msgctxt "Workflow" msgid "state_of_object" msgstr "" @@ -3359,10 +3402,10 @@ msgid "subworkflow_object" msgstr "subworkflow of" -msgctxt "SubWorkflowExitPoint" msgid "subworkflow_state" msgstr "subworkflow state" +msgctxt "SubWorkflowExitPoint" msgid "subworkflow_state" msgstr "subworkflow state" @@ -3472,7 +3515,6 @@ msgid "to associate with" msgstr "" -msgctxt "CWRelation" msgid "to_entity" msgstr "to entity" @@ -3480,6 +3522,7 @@ msgid "to_entity" msgstr "to entity" +msgctxt "CWRelation" msgid "to_entity" msgstr "to entity" @@ -3493,20 +3536,20 @@ msgid "to_interval_end" msgstr "to" +msgid "to_state" +msgstr "to state" + msgctxt "TrInfo" msgid "to_state" msgstr "" -msgid "to_state" -msgstr "to state" +msgctxt "State" +msgid "to_state_object" +msgstr "" msgid "to_state_object" msgstr "transitions to this state" -msgctxt "State" -msgid "to_state_object" -msgstr "" - msgid "todo_by" msgstr "to do by" @@ -3522,6 +3565,9 @@ msgid "transition may not be fired" msgstr "" +msgid "transition_of" +msgstr "transition of" + msgctxt "BaseTransition" msgid "transition_of" msgstr "transition of" @@ -3534,9 +3580,6 @@ msgid "transition_of" msgstr "" -msgid "transition_of" -msgstr "transition of" - msgctxt "Workflow" msgid "transition_of_object" msgstr "" @@ -3553,6 +3596,18 @@ msgid "type" msgstr "" +msgctxt "BaseTransition" +msgid "type" +msgstr "" + +msgctxt "Transition" +msgid "type" +msgstr "" + +msgctxt "WorkflowTransition" +msgid "type" +msgstr "" + msgid "type here a sparql query" msgstr "" @@ -3610,13 +3665,13 @@ msgid "up" msgstr "" +msgid "upassword" +msgstr "password" + msgctxt "CWUser" msgid "upassword" msgstr "" -msgid "upassword" -msgstr "password" - msgid "update" msgstr "" @@ -3630,28 +3685,31 @@ msgid "update_permission" msgstr "" +msgctxt "CWGroup" msgid "update_permission_object" -msgstr "has permission to update" +msgstr "" msgctxt "RQLExpression" msgid "update_permission_object" msgstr "" -msgctxt "CWGroup" msgid "update_permission_object" +msgstr "has permission to update" + +msgid "updated" msgstr "" #, python-format msgid "updated %(etype)s #%(eid)s (%(title)s)" msgstr "" +msgid "uri" +msgstr "" + msgctxt "ExternalUri" msgid "uri" msgstr "" -msgid "uri" -msgstr "" - msgid "use template languages" msgstr "" @@ -3660,13 +3718,13 @@ "states in workflow's definitions." msgstr "" +msgid "use_email" +msgstr "use email" + msgctxt "CWUser" msgid "use_email" msgstr "" -msgid "use_email" -msgstr "use email" - msgctxt "EmailAddress" msgid "use_email_object" msgstr "" @@ -3721,11 +3779,11 @@ msgid "value" msgstr "" -msgctxt "CWProperty" +msgctxt "CWConstraint" msgid "value" msgstr "" -msgctxt "CWConstraint" +msgctxt "CWProperty" msgid "value" msgstr "" @@ -3803,13 +3861,13 @@ msgid "workflow to which this transition belongs" msgstr "" +msgid "workflow_of" +msgstr "" + msgctxt "Workflow" msgid "workflow_of" msgstr "" -msgid "workflow_of" -msgstr "" - msgctxt "CWEType" msgid "workflow_of_object" msgstr "" diff -r 1b0dbcf4b214 -r 559cad62c786 i18n/es.po --- a/i18n/es.po Wed Oct 07 12:38:30 2009 +0200 +++ b/i18n/es.po Fri Oct 09 16:39:26 2009 +0200 @@ -36,6 +36,14 @@ msgstr " del estado %(fromstate)s hacia el estado %(tostate)s\n" #, python-format +msgid "%(attr)s set to %(newvalue)s" +msgstr "" + +#, python-format +msgid "%(attr)s updated from %(oldvalue)s to %(newvalue)s" +msgstr "" + +#, python-format msgid "%(cstr)s constraint failed for value %(value)r" msgstr "el valor %(value)r no satisface la condición %(cstr)s" @@ -123,6 +131,10 @@ msgid "%s software version of the database" msgstr "versión sistema de la base para %s" +#, python-format +msgid "%s updated" +msgstr "" + msgid "(UNEXISTANT EID)" msgstr "" @@ -541,10 +553,6 @@ msgid "This CWConstraintType" msgstr "Este tipo de Restricción" -msgctxt "inlined:CWRelation.to_entity.subject" -msgid "This CWEType" -msgstr "" - msgid "This CWEType" msgstr "Este tipo de Entidad" @@ -552,6 +560,10 @@ msgid "This CWEType" msgstr "" +msgctxt "inlined:CWRelation.to_entity.subject" +msgid "This CWEType" +msgstr "" + msgid "This CWGroup" msgstr "Este grupo" @@ -561,26 +573,26 @@ msgid "This CWProperty" msgstr "Esta propiedad" +msgid "This CWRType" +msgstr "Este tipo de relación" + msgctxt "inlined:CWRelation.relation_type.subject" msgid "This CWRType" msgstr "" -msgid "This CWRType" -msgstr "Este tipo de relación" - msgid "This CWRelation" msgstr "Esta definición de relación no final" msgid "This CWUser" msgstr "Este usuario" +msgctxt "inlined:CWUser.use_email.subject" +msgid "This EmailAddress" +msgstr "" + msgid "This EmailAddress" msgstr "Esta dirección electrónica" -msgctxt "inlined:CWUser.use_email.subject" -msgid "This EmailAddress" -msgstr "" - msgid "This ExternalUri" msgstr "" @@ -732,6 +744,12 @@ msgid "actions" msgstr "acciones" +msgid "actions_about" +msgstr "" + +msgid "actions_about_description" +msgstr "" + msgid "actions_addentity" msgstr "agregar una entidad de este tipo" @@ -750,6 +768,12 @@ msgid "actions_cancel_description" msgstr "" +msgid "actions_changelog" +msgstr "" + +msgid "actions_changelog_description" +msgstr "" + msgid "actions_copy" msgstr "Copiar" @@ -822,6 +846,12 @@ msgid "actions_myprefs_description" msgstr "" +msgid "actions_poweredby" +msgstr "" + +msgid "actions_poweredby_description" +msgstr "" + msgid "actions_prefs" msgstr "Preferencias" @@ -879,6 +909,9 @@ msgid "add" msgstr "Agregar" +msgid "add BaseTransition transition_of Workflow object" +msgstr "" + msgid "add Bookmark bookmarked_by CWUser object" msgstr "Agregar a los favoritos " @@ -957,11 +990,11 @@ msgid "add WorkflowTransition transition_of Workflow object" msgstr "" -msgctxt "inlined:CWRelation.to_entity.subject" +msgctxt "inlined:CWRelation.from_entity.subject" msgid "add a CWEType" msgstr "" -msgctxt "inlined:CWRelation.from_entity.subject" +msgctxt "inlined:CWRelation.to_entity.subject" msgid "add a CWEType" msgstr "" @@ -984,14 +1017,14 @@ # subject and object forms for each relation type # (no object form for final relation types) -msgctxt "CWEType" msgid "add_permission" -msgstr "" +msgstr "Autorización para agregar" # subject and object forms for each relation type # (no object form for final relation types) +msgctxt "CWEType" msgid "add_permission" -msgstr "Autorización para agregar" +msgstr "" msgctxt "CWRType" msgid "add_permission" @@ -1001,13 +1034,13 @@ msgid "add_permission_object" msgstr "" +msgctxt "RQLExpression" +msgid "add_permission_object" +msgstr "" + msgid "add_permission_object" msgstr "tiene la autorización para agregar" -msgctxt "RQLExpression" -msgid "add_permission_object" -msgstr "" - #, python-format msgid "added %(etype)s #%(eid)s (%(title)s)" msgstr "Agregado %(etype)s #%(eid)s (%(title)s)" @@ -1023,20 +1056,20 @@ msgid "addrelated" msgstr "" -msgctxt "EmailAddress" -msgid "address" -msgstr "" - msgid "address" msgstr "dirección" msgctxt "EmailAddress" -msgid "alias" +msgid "address" msgstr "" msgid "alias" msgstr "alias" +msgctxt "EmailAddress" +msgid "alias" +msgstr "" + msgid "allow to set a specific workflow for an entity" msgstr "" @@ -1046,13 +1079,13 @@ msgid "allowed transitions from this state" msgstr "transiciones autorizadas desde este estado" +msgid "allowed_transition" +msgstr "transición autorizada" + msgctxt "State" msgid "allowed_transition" msgstr "" -msgid "allowed_transition" -msgstr "transición autorizada" - msgctxt "BaseTransition" msgid "allowed_transition_object" msgstr "" @@ -1125,6 +1158,9 @@ msgid "authentication failure" msgstr "Usuario o contraseña incorrecta" +msgid "auto" +msgstr "" + msgid "automatic" msgstr "Automático" @@ -1239,14 +1275,14 @@ msgid "by relation" msgstr "por relación" +msgid "by_transition" +msgstr "" + msgctxt "TrInfo" msgid "by_transition" msgstr "" -msgid "by_transition" -msgstr "" - -msgctxt "WorkflowTransition" +msgctxt "BaseTransition" msgid "by_transition_object" msgstr "" @@ -1254,10 +1290,10 @@ msgid "by_transition_object" msgstr "" +msgctxt "WorkflowTransition" msgid "by_transition_object" msgstr "" -msgctxt "BaseTransition" msgid "by_transition_object" msgstr "" @@ -1308,16 +1344,16 @@ msgid "cancel this insert" msgstr "Cancelar esta inserción" -msgctxt "CWRelation" msgid "cardinality" -msgstr "" +msgstr "cardinalidad" msgctxt "CWAttribute" msgid "cardinality" msgstr "" +msgctxt "CWRelation" msgid "cardinality" -msgstr "cardinalidad" +msgstr "" msgid "category" msgstr "categoria" @@ -1345,13 +1381,13 @@ msgid "comment" msgstr "" +msgid "comment_format" +msgstr "Formato" + msgctxt "TrInfo" msgid "comment_format" msgstr "" -msgid "comment_format" -msgstr "Formato" - msgid "components" msgstr "Componentes" @@ -1415,13 +1451,13 @@ msgid "components_rqlinput_description" msgstr "La barra de demanda rql, en el encabezado de página" +msgid "composite" +msgstr "composite" + msgctxt "CWRelation" msgid "composite" msgstr "" -msgid "composite" -msgstr "composite" - msgid "condition" msgstr "condición" @@ -1450,6 +1486,9 @@ msgid "confirm password" msgstr "Confirmar contraseña" +msgid "constrained_by" +msgstr "Restricción hecha por" + msgctxt "CWAttribute" msgid "constrained_by" msgstr "" @@ -1458,16 +1497,13 @@ msgid "constrained_by" msgstr "" -msgid "constrained_by" -msgstr "Restricción hecha por" +msgctxt "CWConstraint" +msgid "constrained_by_object" +msgstr "" msgid "constrained_by_object" msgstr "ha restringido" -msgctxt "CWConstraint" -msgid "constrained_by_object" -msgstr "" - msgid "constraint factory" msgstr "FAbrica de restricciones" @@ -1599,6 +1635,10 @@ msgid "created_by_object" msgstr "ha creado" +msgid "" +"creating BaseTransition (BaseTransition transition_of Workflow %(linkto)s)" +msgstr "" + msgid "creating Bookmark (Bookmark bookmarked_by CWUser %(linkto)s)" msgstr "Creando Favorito" @@ -1718,13 +1758,13 @@ msgid "cstrtype" msgstr "" +msgctxt "CWConstraintType" +msgid "cstrtype_object" +msgstr "" + msgid "cstrtype_object" msgstr "utilizado por" -msgctxt "CWConstraintType" -msgid "cstrtype_object" -msgstr "" - msgid "csv entities export" msgstr "Exportar entidades en csv" @@ -1797,13 +1837,13 @@ msgid "default_workflow_object" msgstr "" +msgid "defaultval" +msgstr "Valor por defecto" + msgctxt "CWAttribute" msgid "defaultval" msgstr "" -msgid "defaultval" -msgstr "Valor por defecto" - msgid "define a CubicWeb user" msgstr "Define un usuario CubicWeb" @@ -1871,6 +1911,10 @@ msgid "delete_permission" msgstr "" +msgctxt "CWGroup" +msgid "delete_permission_object" +msgstr "" + msgctxt "RQLExpression" msgid "delete_permission_object" msgstr "" @@ -1878,10 +1922,6 @@ msgid "delete_permission_object" msgstr "posee la autorización de eliminar" -msgctxt "CWGroup" -msgid "delete_permission_object" -msgstr "" - #, python-format msgid "deleted %(etype)s #%(eid)s (%(title)s)" msgstr "Eliminación de la entidad %(etype)s #%(eid)s (%(title)s)" @@ -1897,15 +1937,18 @@ msgid "depends on the constraint type" msgstr "Depende del tipo de condición" -msgctxt "State" +msgid "description" +msgstr "Descripción" + +msgctxt "CWEType" msgid "description" msgstr "" -msgctxt "WorkflowTransition" +msgctxt "CWRelation" msgid "description" msgstr "" -msgctxt "Transition" +msgctxt "Workflow" msgid "description" msgstr "" @@ -1913,21 +1956,18 @@ msgid "description" msgstr "" -msgctxt "Workflow" +msgctxt "Transition" msgid "description" msgstr "" -msgctxt "CWRelation" +msgctxt "WorkflowTransition" msgid "description" msgstr "" -msgctxt "CWEType" +msgctxt "State" msgid "description" msgstr "" -msgid "description" -msgstr "Descripción" - msgctxt "CWRType" msgid "description" msgstr "" @@ -1936,19 +1976,22 @@ msgid "description" msgstr "" -msgctxt "BaseTransition" msgid "description_format" -msgstr "" - -msgctxt "CWRType" +msgstr "Formato" + +msgctxt "CWEType" msgid "description_format" msgstr "" -msgctxt "State" +msgctxt "CWRelation" msgid "description_format" msgstr "" -msgctxt "WorkflowTransition" +msgctxt "Workflow" +msgid "description_format" +msgstr "" + +msgctxt "CWAttribute" msgid "description_format" msgstr "" @@ -1956,25 +1999,22 @@ msgid "description_format" msgstr "" -msgctxt "CWAttribute" +msgctxt "WorkflowTransition" msgid "description_format" msgstr "" -msgctxt "Workflow" +msgctxt "State" msgid "description_format" msgstr "" -msgctxt "CWRelation" +msgctxt "CWRType" msgid "description_format" msgstr "" -msgctxt "CWEType" +msgctxt "BaseTransition" msgid "description_format" msgstr "" -msgid "description_format" -msgstr "Formato" - msgid "destination state" msgstr "" @@ -1984,24 +2024,24 @@ msgid "destination state of a transition" msgstr "Estado destino de una transición" +msgid "destination_state" +msgstr "Estado destino" + msgctxt "Transition" msgid "destination_state" msgstr "" -msgid "destination_state" -msgstr "Estado destino" - msgctxt "SubWorkflowExitPoint" msgid "destination_state" msgstr "" +msgctxt "State" +msgid "destination_state_object" +msgstr "" + msgid "destination_state_object" msgstr "Destino de" -msgctxt "State" -msgid "destination_state_object" -msgstr "" - msgid "detach attached file" msgstr "soltar el archivo existente" @@ -2159,13 +2199,13 @@ msgid "expected:" msgstr "Previsto :" +msgid "expression" +msgstr "Expresión" + msgctxt "RQLExpression" msgid "expression" msgstr "" -msgid "expression" -msgstr "Expresión" - msgid "exprtype" msgstr "Tipo de la expresión" @@ -2224,34 +2264,34 @@ msgid "final" msgstr "Final" +msgctxt "CWEType" +msgid "final" +msgstr "" + msgctxt "CWRType" msgid "final" msgstr "" -msgctxt "CWEType" -msgid "final" -msgstr "" - -msgctxt "CWUser" -msgid "firstname" -msgstr "" - msgid "firstname" msgstr "Nombre" +msgctxt "CWUser" +msgid "firstname" +msgstr "" + msgid "foaf" msgstr "Amigo de un Amigo, FOAF" msgid "follow" msgstr "Seguir la liga" +msgid "for_user" +msgstr "Para el usuario" + msgctxt "CWProperty" msgid "for_user" msgstr "" -msgid "for_user" -msgstr "Para el usuario" - msgctxt "CWUser" msgid "for_user_object" msgstr "" @@ -2280,23 +2320,23 @@ msgid "from_entity" msgstr "" -msgid "from_entity_object" -msgstr "Relación sujeto" - msgctxt "CWEType" msgid "from_entity_object" msgstr "" +msgid "from_entity_object" +msgstr "Relación sujeto" + msgid "from_interval_start" msgstr "" -msgctxt "TrInfo" -msgid "from_state" -msgstr "" - msgid "from_state" msgstr "De el estado" +msgctxt "TrInfo" +msgid "from_state" +msgstr "" + msgctxt "State" msgid "from_state_object" msgstr "" @@ -2307,20 +2347,20 @@ msgid "full text or RQL query" msgstr "Texto de búsqueda o demanda RQL" +msgid "fulltext_container" +msgstr "Contenedor de texto indexado" + msgctxt "CWRType" msgid "fulltext_container" msgstr "" -msgid "fulltext_container" -msgstr "Contenedor de texto indexado" - -msgctxt "CWAttribute" -msgid "fulltextindexed" -msgstr "" - msgid "fulltextindexed" msgstr "Indexación de texto" +msgctxt "CWAttribute" +msgid "fulltextindexed" +msgstr "" + msgid "generic plot" msgstr "Trazado de curbas estándares" @@ -2465,20 +2505,20 @@ msgid "in memory relation schema" msgstr "Esquema de la relación en memoria" +msgid "in_group" +msgstr "En el grupo" + msgctxt "CWUser" msgid "in_group" msgstr "" -msgid "in_group" -msgstr "En el grupo" +msgctxt "CWGroup" +msgid "in_group_object" +msgstr "" msgid "in_group_object" msgstr "Miembros" -msgctxt "CWGroup" -msgid "in_group_object" -msgstr "" - msgid "in_state" msgstr "estado" @@ -2498,13 +2538,13 @@ msgid "index this attribute's value in the plain text index" msgstr "Indexar el valor de este atributo en el índice de texto simple" +msgid "indexed" +msgstr "Indexado" + msgctxt "CWAttribute" msgid "indexed" msgstr "" -msgid "indexed" -msgstr "Indexado" - msgid "indicate the current state of an entity" msgstr "Indica el estado actual de una entidad" @@ -2531,20 +2571,20 @@ msgid "initial_state" msgstr "" +msgctxt "State" +msgid "initial_state_object" +msgstr "" + msgid "initial_state_object" msgstr "es el estado inicial de" -msgctxt "State" -msgid "initial_state_object" -msgstr "" +msgid "inlined" +msgstr "Puesto en línea" msgctxt "CWRType" msgid "inlined" msgstr "" -msgid "inlined" -msgstr "Puesto en línea" - msgid "instance schema" msgstr "" @@ -2625,13 +2665,13 @@ msgid "last connection date" msgstr "Ultima fecha de conexión" +msgid "last_login_time" +msgstr "Ultima fecha de conexión" + msgctxt "CWUser" msgid "last_login_time" msgstr "" -msgid "last_login_time" -msgstr "Ultima fecha de conexión" - msgid "latest modification time of an entity" msgstr "Fecha de la última modificación de una entidad " @@ -2780,7 +2820,26 @@ msgid "my custom search" msgstr "Mi busqueda personalizada" -msgctxt "CWRType" +msgid "name" +msgstr "Nombre" + +msgctxt "CWEType" +msgid "name" +msgstr "" + +msgctxt "Transition" +msgid "name" +msgstr "" + +msgctxt "Workflow" +msgid "name" +msgstr "" + +msgctxt "CWGroup" +msgid "name" +msgstr "" + +msgctxt "CWConstraintType" msgid "name" msgstr "" @@ -2792,10 +2851,11 @@ msgid "name" msgstr "" +msgctxt "CWPermission" msgid "name" -msgstr "Nombre" - -msgctxt "CWGroup" +msgstr "" + +msgctxt "CWRType" msgid "name" msgstr "" @@ -2803,30 +2863,10 @@ msgid "name" msgstr "" -msgctxt "Workflow" -msgid "name" -msgstr "" - msgctxt "CWCache" msgid "name" msgstr "" -msgctxt "CWConstraintType" -msgid "name" -msgstr "" - -msgctxt "Transition" -msgid "name" -msgstr "" - -msgctxt "CWEType" -msgid "name" -msgstr "" - -msgctxt "CWPermission" -msgid "name" -msgstr "" - msgid "name of the cache" msgstr "Nombre del Cache" @@ -2896,6 +2936,9 @@ msgid "no version information" msgstr "no información de version" +msgid "normal" +msgstr "" + msgid "not authorized" msgstr "no autorizado" @@ -2935,6 +2978,9 @@ msgid "order" msgstr "orden" +msgid "ordernum" +msgstr "orden" + msgctxt "CWAttribute" msgid "ordernum" msgstr "" @@ -2943,9 +2989,6 @@ msgid "ordernum" msgstr "" -msgid "ordernum" -msgstr "orden" - msgid "owl" msgstr "owl" @@ -3001,13 +3044,13 @@ msgid "pick existing bookmarks" msgstr "Seleccione los favoritos existentes" +msgid "pkey" +msgstr "pkey" + msgctxt "CWProperty" msgid "pkey" msgstr "" -msgid "pkey" -msgstr "pkey" - msgid "please correct errors below" msgstr "Favor de corregir errores" @@ -3020,13 +3063,13 @@ msgid "powered by CubicWeb" msgstr "" +msgid "prefered_form" +msgstr "" + msgctxt "EmailAddress" msgid "prefered_form" msgstr "" -msgid "prefered_form" -msgstr "" - msgctxt "EmailAddress" msgid "prefered_form_object" msgstr "" @@ -3050,13 +3093,13 @@ msgid "primary_email" msgstr "" +msgctxt "EmailAddress" +msgid "primary_email_object" +msgstr "" + msgid "primary_email_object" msgstr "Dirección de email principal (objeto)" -msgctxt "EmailAddress" -msgid "primary_email_object" -msgstr "" - msgid "progress" msgstr "Avance" @@ -3083,9 +3126,6 @@ msgid "read_permission" msgstr "" -msgid "read_permission_object" -msgstr "Objeto_permiso_lectura" - msgctxt "CWGroup" msgid "read_permission_object" msgstr "" @@ -3094,6 +3134,9 @@ msgid "read_permission_object" msgstr "" +msgid "read_permission_object" +msgstr "Objeto_permiso_lectura" + msgid "registry" msgstr "" @@ -3110,11 +3153,11 @@ msgid "relation_type" msgstr "tipo de relación" -msgctxt "CWRelation" +msgctxt "CWAttribute" msgid "relation_type" msgstr "" -msgctxt "CWAttribute" +msgctxt "CWRelation" msgid "relation_type" msgstr "" @@ -3134,11 +3177,11 @@ msgid "relative url of the bookmarked page" msgstr "Url relativa de la pagina" -msgctxt "inlined:CWRelation.to_entity.subject" +msgctxt "inlined:CWRelation.from_entity.subject" msgid "remove this CWEType" msgstr "" -msgctxt "inlined:CWRelation.from_entity.subject" +msgctxt "inlined:CWRelation.to_entity.subject" msgid "remove this CWEType" msgstr "" @@ -3150,10 +3193,6 @@ msgid "remove this EmailAddress" msgstr "" -msgctxt "WorkflowTransition" -msgid "require_group" -msgstr "" - msgid "require_group" msgstr "Requiere grupo" @@ -3161,11 +3200,15 @@ msgid "require_group" msgstr "" +msgctxt "Transition" +msgid "require_group" +msgstr "" + msgctxt "CWPermission" msgid "require_group" msgstr "" -msgctxt "Transition" +msgctxt "WorkflowTransition" msgid "require_group" msgstr "" @@ -3394,20 +3437,20 @@ "workflow for this entity first." msgstr "" +msgid "state_of" +msgstr "estado_de" + msgctxt "State" msgid "state_of" msgstr "" -msgid "state_of" -msgstr "estado_de" +msgctxt "Workflow" +msgid "state_of_object" +msgstr "" msgid "state_of_object" msgstr "objeto_estado_de" -msgctxt "Workflow" -msgid "state_of_object" -msgstr "" - msgid "status change" msgstr "cambio de estatus" @@ -3427,41 +3470,41 @@ msgid "subject_plural:" msgstr "sujetos:" +msgid "subworkflow" +msgstr "" + msgctxt "WorkflowTransition" msgid "subworkflow" msgstr "" -msgid "subworkflow" -msgstr "" - msgid "subworkflow state" msgstr "" +msgid "subworkflow_exit" +msgstr "" + msgctxt "WorkflowTransition" msgid "subworkflow_exit" msgstr "" -msgid "subworkflow_exit" +msgctxt "SubWorkflowExitPoint" +msgid "subworkflow_exit_object" msgstr "" msgid "subworkflow_exit_object" msgstr "" -msgctxt "SubWorkflowExitPoint" -msgid "subworkflow_exit_object" -msgstr "" - -msgid "subworkflow_object" -msgstr "" - msgctxt "Workflow" msgid "subworkflow_object" msgstr "" -msgctxt "SubWorkflowExitPoint" +msgid "subworkflow_object" +msgstr "" + msgid "subworkflow_state" msgstr "" +msgctxt "SubWorkflowExitPoint" msgid "subworkflow_state" msgstr "" @@ -3482,13 +3525,13 @@ msgid "surname" msgstr "" +msgid "symetric" +msgstr "simetrico" + msgctxt "CWRType" msgid "symetric" msgstr "" -msgid "symetric" -msgstr "simetrico" - msgid "system entities" msgstr "entidades de sistema" @@ -3554,13 +3597,13 @@ msgid "timetable" msgstr "tabla de tiempos" +msgid "title" +msgstr "titulo" + msgctxt "Bookmark" msgid "title" msgstr "" -msgid "title" -msgstr "titulo" - msgid "to" msgstr "a" @@ -3571,34 +3614,34 @@ msgid "to associate with" msgstr "a asociar con" -msgctxt "CWRelation" msgid "to_entity" -msgstr "" +msgstr "hacia entidad" msgctxt "CWAttribute" msgid "to_entity" msgstr "" +msgctxt "CWRelation" msgid "to_entity" -msgstr "hacia entidad" - -msgid "to_entity_object" -msgstr "hacia entidad objeto" +msgstr "" msgctxt "CWEType" msgid "to_entity_object" msgstr "" +msgid "to_entity_object" +msgstr "hacia entidad objeto" + msgid "to_interval_end" msgstr "" -msgctxt "TrInfo" -msgid "to_state" -msgstr "" - msgid "to_state" msgstr "hacia el estado" +msgctxt "TrInfo" +msgid "to_state" +msgstr "" + msgctxt "State" msgid "to_state_object" msgstr "" @@ -3621,18 +3664,18 @@ msgid "transition may not be fired" msgstr "" -msgctxt "Transition" -msgid "transition_of" -msgstr "" - msgid "transition_of" msgstr "transicion de" -msgctxt "WorkflowTransition" +msgctxt "BaseTransition" msgid "transition_of" msgstr "" -msgctxt "BaseTransition" +msgctxt "Transition" +msgid "transition_of" +msgstr "" + +msgctxt "WorkflowTransition" msgid "transition_of" msgstr "" @@ -3652,6 +3695,18 @@ msgid "type" msgstr "type" +msgctxt "BaseTransition" +msgid "type" +msgstr "" + +msgctxt "Transition" +msgid "type" +msgstr "" + +msgctxt "WorkflowTransition" +msgid "type" +msgstr "" + msgid "type here a sparql query" msgstr "" @@ -3729,9 +3784,6 @@ msgid "update_permission" msgstr "" -msgid "update_permission_object" -msgstr "objeto de autorización de modificaciones" - msgctxt "CWGroup" msgid "update_permission_object" msgstr "" @@ -3740,17 +3792,23 @@ msgid "update_permission_object" msgstr "" +msgid "update_permission_object" +msgstr "objeto de autorización de modificaciones" + +msgid "updated" +msgstr "" + #, python-format msgid "updated %(etype)s #%(eid)s (%(title)s)" msgstr "actualización de la entidad %(etype)s #%(eid)s (%(title)s)" +msgid "uri" +msgstr "" + msgctxt "ExternalUri" msgid "uri" msgstr "" -msgid "uri" -msgstr "" - msgid "use template languages" msgstr "utilizar plantillas de lenguaje" @@ -3761,13 +3819,13 @@ "utilizado para definir una transición desde uno o multiples estados hacia " "uno o varios estados destino en las definiciones del workflow" +msgid "use_email" +msgstr "correo electrónico" + msgctxt "CWUser" msgid "use_email" msgstr "" -msgid "use_email" -msgstr "correo electrónico" - msgctxt "EmailAddress" msgid "use_email_object" msgstr "" @@ -3827,10 +3885,6 @@ msgid "validating..." msgstr "validando ..." -msgctxt "CWProperty" -msgid "value" -msgstr "" - msgid "value" msgstr "valor" @@ -3838,6 +3892,10 @@ msgid "value" msgstr "" +msgctxt "CWProperty" +msgid "value" +msgstr "" + msgid "value associated to this key is not editable manually" msgstr "el valor asociado a este elemento no es editable manualmente" diff -r 1b0dbcf4b214 -r 559cad62c786 i18n/fr.po --- a/i18n/fr.po Wed Oct 07 12:38:30 2009 +0200 +++ b/i18n/fr.po Fri Oct 09 16:39:26 2009 +0200 @@ -36,6 +36,14 @@ msgstr " de l'état %(fromstate)s vers l'état %(tostate)s\n" #, python-format +msgid "%(attr)s set to %(newvalue)s" +msgstr "%(attr)s modifié à %(newvalue)s" + +#, python-format +msgid "%(attr)s updated from %(oldvalue)s to %(newvalue)s" +msgstr "%(attr)s modifié de %(oldvalue)s à %(newvalue)s" + +#, python-format msgid "%(cstr)s constraint failed for value %(value)r" msgstr "la valeur %(value)r ne satisfait pas la contrainte %(cstr)s" @@ -123,6 +131,10 @@ msgid "%s software version of the database" msgstr "version logicielle de la base pour %s" +#, python-format +msgid "%s updated" +msgstr "%s mis à jour" + msgid "(UNEXISTANT EID)" msgstr "(EID INTROUVABLE)" @@ -540,13 +552,13 @@ msgid "This CWConstraintType" msgstr "Ce type de contrainte" +msgid "This CWEType" +msgstr "Ce type d'entité" + msgctxt "inlined:CWRelation.from_entity.subject" msgid "This CWEType" msgstr "type d'entité sujet" -msgid "This CWEType" -msgstr "Ce type d'entité" - msgctxt "inlined:CWRelation.to_entity.subject" msgid "This CWEType" msgstr "type d'entité objet" @@ -737,6 +749,12 @@ msgid "actions" msgstr "actions" +msgid "actions_about" +msgstr "" + +msgid "actions_about_description" +msgstr "" + msgid "actions_addentity" msgstr "ajouter une entité de ce type" @@ -755,6 +773,12 @@ msgid "actions_cancel_description" msgstr "" +msgid "actions_changelog" +msgstr "" + +msgid "actions_changelog_description" +msgstr "" + msgid "actions_copy" msgstr "copier" @@ -827,6 +851,12 @@ msgid "actions_myprefs_description" msgstr "" +msgid "actions_poweredby" +msgstr "" + +msgid "actions_poweredby_description" +msgstr "" + msgid "actions_prefs" msgstr "préférences" @@ -884,6 +914,9 @@ msgid "add" msgstr "ajouter" +msgid "add BaseTransition transition_of Workflow object" +msgstr "" + msgid "add Bookmark bookmarked_by CWUser object" msgstr "signet" @@ -962,14 +995,14 @@ msgid "add WorkflowTransition transition_of Workflow object" msgstr "transition workflow" +msgctxt "inlined:CWRelation.from_entity.subject" +msgid "add a CWEType" +msgstr "ajouter un type d'entité sujet" + msgctxt "inlined:CWRelation.to_entity.subject" msgid "add a CWEType" msgstr "ajouter un type d'entité objet" -msgctxt "inlined:CWRelation.from_entity.subject" -msgid "add a CWEType" -msgstr "ajouter un type d'entité sujet" - msgctxt "inlined:CWRelation.relation_type.subject" msgid "add a CWRType" msgstr "ajouter un type de relation" @@ -1002,6 +1035,10 @@ msgid "add_permission" msgstr "permission d'ajout" +msgctxt "CWGroup" +msgid "add_permission_object" +msgstr "a la permission d'ajouter" + msgctxt "RQLExpression" msgid "add_permission_object" msgstr "a la permission d'ajouter" @@ -1009,10 +1046,6 @@ msgid "add_permission_object" msgstr "a la permission d'ajouter" -msgctxt "CWGroup" -msgid "add_permission_object" -msgstr "a la permission d'ajouter" - #, python-format msgid "added %(etype)s #%(eid)s (%(title)s)" msgstr "ajout de l'entité %(etype)s #%(eid)s (%(title)s)" @@ -1035,10 +1068,10 @@ msgid "address" msgstr "adresse électronique" -msgctxt "EmailAddress" msgid "alias" msgstr "alias" +msgctxt "EmailAddress" msgid "alias" msgstr "alias" @@ -1058,10 +1091,7 @@ msgid "allowed_transition" msgstr "transitions autorisées" -msgid "allowed_transition_object" -msgstr "états en entrée" - -msgctxt "WorkflowTransition" +msgctxt "BaseTransition" msgid "allowed_transition_object" msgstr "transition autorisée de" @@ -1069,10 +1099,13 @@ msgid "allowed_transition_object" msgstr "transition autorisée de" -msgctxt "BaseTransition" +msgctxt "WorkflowTransition" msgid "allowed_transition_object" msgstr "transition autorisée de" +msgid "allowed_transition_object" +msgstr "états en entrée" + msgid "am/pm calendar (month)" msgstr "calendrier am/pm (mois)" @@ -1130,6 +1163,9 @@ msgid "authentication failure" msgstr "Identifiant ou mot de passe incorrect" +msgid "auto" +msgstr "automatique" + msgid "automatic" msgstr "automatique" @@ -1245,17 +1281,13 @@ msgid "by relation" msgstr "via la relation" +msgid "by_transition" +msgstr "transition" + msgctxt "TrInfo" msgid "by_transition" msgstr "transition" -msgid "by_transition" -msgstr "transition" - -msgctxt "WorkflowTransition" -msgid "by_transition_object" -msgstr "a pour information" - msgctxt "BaseTransition" msgid "by_transition_object" msgstr "a pour information" @@ -1264,6 +1296,10 @@ msgid "by_transition_object" msgstr "a pour information" +msgctxt "WorkflowTransition" +msgid "by_transition_object" +msgstr "a pour information" + msgid "by_transition_object" msgstr "changement d'états" @@ -1314,10 +1350,6 @@ msgid "cancel this insert" msgstr "annuler cette insertion" -msgctxt "CWRelation" -msgid "cardinality" -msgstr "cardinalité" - msgid "cardinality" msgstr "cardinalité" @@ -1325,6 +1357,10 @@ msgid "cardinality" msgstr "cardinalité" +msgctxt "CWRelation" +msgid "cardinality" +msgstr "cardinalité" + msgid "category" msgstr "categorie" @@ -1428,7 +1464,10 @@ msgid "composite" msgstr "composite" -msgctxt "WorkflowTransition" +msgid "condition" +msgstr "condition" + +msgctxt "BaseTransition" msgid "condition" msgstr "condition" @@ -1436,20 +1475,17 @@ msgid "condition" msgstr "condition" -msgid "condition" -msgstr "condition" - -msgctxt "BaseTransition" +msgctxt "WorkflowTransition" msgid "condition" msgstr "condition" msgid "condition:" msgstr "condition :" +msgctxt "RQLExpression" msgid "condition_object" msgstr "condition de" -msgctxt "RQLExpression" msgid "condition_object" msgstr "condition de" @@ -1467,10 +1503,10 @@ msgid "constrained_by" msgstr "contraint par" +msgctxt "CWConstraint" msgid "constrained_by_object" msgstr "contrainte de" -msgctxt "CWConstraint" msgid "constrained_by_object" msgstr "contrainte de" @@ -1606,6 +1642,10 @@ msgid "created_by_object" msgstr "a créé" +msgid "" +"creating BaseTransition (BaseTransition transition_of Workflow %(linkto)s)" +msgstr "" + msgid "creating Bookmark (Bookmark bookmarked_by CWUser %(linkto)s)" msgstr "création d'un signet pour %(linkto)s" @@ -1718,20 +1758,20 @@ msgid "creation_date" msgstr "date de création" +msgid "cstrtype" +msgstr "type de constrainte" + msgctxt "CWConstraint" msgid "cstrtype" msgstr "type" -msgid "cstrtype" -msgstr "type de constrainte" - -msgid "cstrtype_object" -msgstr "utilisé par" - msgctxt "CWConstraintType" msgid "cstrtype_object" msgstr "type des contraintes" +msgid "cstrtype_object" +msgstr "utilisé par" + msgid "csv entities export" msgstr "export d'entités en CSV" @@ -1790,17 +1830,17 @@ msgid "default workflow for an entity type" msgstr "workflow par défaut pour un type d'entité" +msgid "default_workflow" +msgstr "workflow par défaut" + msgctxt "CWEType" msgid "default_workflow" msgstr "workflow par défaut" -msgid "default_workflow" -msgstr "workflow par défaut" - +msgctxt "Workflow" msgid "default_workflow_object" msgstr "workflow par défaut de" -msgctxt "Workflow" msgid "default_workflow_object" msgstr "workflow par défaut de" @@ -1875,24 +1915,24 @@ msgid "delete_permission" msgstr "permission de supprimer" +msgctxt "CWEType" +msgid "delete_permission" +msgstr "permission de supprimer" + msgctxt "CWRType" msgid "delete_permission" msgstr "permission de supprimer" -msgctxt "CWEType" -msgid "delete_permission" -msgstr "permission de supprimer" - +msgctxt "CWGroup" msgid "delete_permission_object" -msgstr "a la permission de supprimer" +msgstr "peut supprimer" msgctxt "RQLExpression" msgid "delete_permission_object" msgstr "peut supprimer" -msgctxt "CWGroup" msgid "delete_permission_object" -msgstr "peut supprimer" +msgstr "a la permission de supprimer" #, python-format msgid "deleted %(etype)s #%(eid)s (%(title)s)" @@ -1912,7 +1952,11 @@ msgid "description" msgstr "description" -msgctxt "Transition" +msgctxt "CWEType" +msgid "description" +msgstr "description" + +msgctxt "CWRelation" msgid "description" msgstr "description" @@ -1920,7 +1964,11 @@ msgid "description" msgstr "description" -msgctxt "CWRelation" +msgctxt "CWAttribute" +msgid "description" +msgstr "description" + +msgctxt "Transition" msgid "description" msgstr "description" @@ -1932,10 +1980,6 @@ msgid "description" msgstr "description" -msgctxt "CWEType" -msgid "description" -msgstr "description" - msgctxt "CWRType" msgid "description" msgstr "description" @@ -1944,14 +1988,6 @@ msgid "description" msgstr "description" -msgctxt "CWAttribute" -msgid "description" -msgstr "description" - -msgctxt "CWRelation" -msgid "description_format" -msgstr "format" - msgid "description_format" msgstr "format" @@ -1959,6 +1995,10 @@ msgid "description_format" msgstr "format" +msgctxt "CWRelation" +msgid "description_format" +msgstr "format" + msgctxt "Workflow" msgid "description_format" msgstr "format" @@ -1999,11 +2039,11 @@ msgid "destination_state" msgstr "état de destination" -msgctxt "SubWorkflowExitPoint" +msgctxt "Transition" msgid "destination_state" msgstr "état de destination" -msgctxt "Transition" +msgctxt "SubWorkflowExitPoint" msgid "destination_state" msgstr "état de destination" @@ -2170,13 +2210,13 @@ msgid "expected:" msgstr "attendu :" +msgid "expression" +msgstr "expression" + msgctxt "RQLExpression" msgid "expression" msgstr "rql de l'expression" -msgid "expression" -msgstr "expression" - msgid "exprtype" msgstr "type de l'expression" @@ -2232,10 +2272,10 @@ msgid "file tree view" msgstr "arborescence (fichiers)" -msgctxt "CWEType" msgid "final" msgstr "final" +msgctxt "CWEType" msgid "final" msgstr "final" @@ -2243,10 +2283,10 @@ msgid "final" msgstr "final" -msgctxt "CWUser" msgid "firstname" msgstr "prénom" +msgctxt "CWUser" msgid "firstname" msgstr "prénom" @@ -2256,13 +2296,13 @@ msgid "follow" msgstr "suivre le lien" +msgid "for_user" +msgstr "pour l'utilisateur" + msgctxt "CWProperty" msgid "for_user" msgstr "propriété de l'utilisateur" -msgid "for_user" -msgstr "pour l'utilisateur" - msgctxt "CWUser" msgid "for_user_object" msgstr "a pour préférence" @@ -2318,20 +2358,20 @@ msgid "full text or RQL query" msgstr "texte à rechercher ou requête RQL" +msgid "fulltext_container" +msgstr "conteneur du texte indexé" + msgctxt "CWRType" msgid "fulltext_container" msgstr "objet à indexer" -msgid "fulltext_container" -msgstr "conteneur du texte indexé" +msgid "fulltextindexed" +msgstr "indexation du texte" msgctxt "CWAttribute" msgid "fulltextindexed" msgstr "texte indexé" -msgid "fulltextindexed" -msgstr "indexation du texte" - msgid "generic plot" msgstr "tracé de courbes standard" @@ -2477,13 +2517,13 @@ msgid "in memory relation schema" msgstr "schéma de la relation en mémoire" +msgid "in_group" +msgstr "dans le groupe" + msgctxt "CWUser" msgid "in_group" msgstr "fait partie du groupe" -msgid "in_group" -msgstr "dans le groupe" - msgctxt "CWGroup" msgid "in_group_object" msgstr "contient les utilisateurs" @@ -2536,10 +2576,10 @@ msgid "initial state for this workflow" msgstr "état initial pour ce workflow" -msgctxt "Workflow" msgid "initial_state" msgstr "état initial" +msgctxt "Workflow" msgid "initial_state" msgstr "état initial" @@ -2725,10 +2765,10 @@ msgid "main informations" msgstr "Informations générales" -msgctxt "RQLExpression" msgid "mainvars" msgstr "variables principales" +msgctxt "RQLExpression" msgid "mainvars" msgstr "variables principales" @@ -2793,38 +2833,6 @@ msgid "my custom search" msgstr "ma recherche personnalisée" -msgctxt "CWPermission" -msgid "name" -msgstr "nom" - -msgctxt "State" -msgid "name" -msgstr "nom" - -msgctxt "BaseTransition" -msgid "name" -msgstr "nom" - -msgctxt "CWRType" -msgid "name" -msgstr "nom" - -msgctxt "CWGroup" -msgid "name" -msgstr "nom" - -msgctxt "WorkflowTransition" -msgid "name" -msgstr "nom" - -msgctxt "CWCache" -msgid "name" -msgstr "nom" - -msgid "name" -msgstr "nom" - -msgctxt "CWConstraintType" msgid "name" msgstr "nom" @@ -2840,6 +2848,38 @@ msgid "name" msgstr "nom" +msgctxt "CWGroup" +msgid "name" +msgstr "nom" + +msgctxt "CWConstraintType" +msgid "name" +msgstr "nom" + +msgctxt "WorkflowTransition" +msgid "name" +msgstr "nom" + +msgctxt "State" +msgid "name" +msgstr "nom" + +msgctxt "CWPermission" +msgid "name" +msgstr "nom" + +msgctxt "CWRType" +msgid "name" +msgstr "nom" + +msgctxt "BaseTransition" +msgid "name" +msgstr "nom" + +msgctxt "CWCache" +msgid "name" +msgstr "nom" + msgid "name of the cache" msgstr "nom du cache applicatif" @@ -2905,6 +2945,9 @@ msgid "no version information" msgstr "pas d'information de version" +msgid "normal" +msgstr "normal" + msgid "not authorized" msgstr "non autorisé" @@ -2944,16 +2987,16 @@ msgid "order" msgstr "ordre" -msgctxt "CWRelation" msgid "ordernum" -msgstr "numéro d'ordre" +msgstr "ordre" msgctxt "CWAttribute" msgid "ordernum" msgstr "numéro d'ordre" +msgctxt "CWRelation" msgid "ordernum" -msgstr "ordre" +msgstr "numéro d'ordre" msgid "owl" msgstr "owl" @@ -3012,13 +3055,13 @@ msgid "pick existing bookmarks" msgstr "récupérer des signets existants" +msgid "pkey" +msgstr "clé" + msgctxt "CWProperty" msgid "pkey" msgstr "code de la propriété" -msgid "pkey" -msgstr "clé" - msgid "please correct errors below" msgstr "veuillez corriger les erreurs ci-dessous" @@ -3061,13 +3104,13 @@ msgid "primary_email" msgstr "email principal" -msgid "primary_email_object" -msgstr "adresse email principale (object)" - msgctxt "EmailAddress" msgid "primary_email_object" msgstr "adresse principale de" +msgid "primary_email_object" +msgstr "adresse email principale (object)" + msgid "progress" msgstr "avancement" @@ -3083,6 +3126,9 @@ msgid "read_perm" msgstr "lecture" +msgid "read_permission" +msgstr "permission de lire" + msgctxt "CWEType" msgid "read_permission" msgstr "permission d'ajouter" @@ -3091,12 +3137,6 @@ msgid "read_permission" msgstr "permission d'ajouter" -msgid "read_permission" -msgstr "permission de lire" - -msgid "read_permission_object" -msgstr "a la permission de lire" - msgctxt "CWGroup" msgid "read_permission_object" msgstr "peut lire" @@ -3105,6 +3145,9 @@ msgid "read_permission_object" msgstr "peut lire" +msgid "read_permission_object" +msgstr "a la permission de lire" + msgid "registry" msgstr "registre" @@ -3129,10 +3172,10 @@ msgid "relation_type" msgstr "type de relation" +msgctxt "CWRType" msgid "relation_type_object" msgstr "définition" -msgctxt "CWRType" msgid "relation_type_object" msgstr "définition" @@ -3161,10 +3204,6 @@ msgid "remove this EmailAddress" msgstr "supprimer cette adresse électronique" -msgctxt "WorkflowTransition" -msgid "require_group" -msgstr "restreinte au groupe" - msgid "require_group" msgstr "nécessite le groupe" @@ -3180,6 +3219,10 @@ msgid "require_group" msgstr "restreinte au groupe" +msgctxt "WorkflowTransition" +msgid "require_group" +msgstr "restreinte au groupe" + msgctxt "CWGroup" msgid "require_group_object" msgstr "dé" @@ -3385,10 +3428,10 @@ msgid "specializes" msgstr "spécialise" +msgctxt "CWEType" msgid "specializes_object" msgstr "parent de" -msgctxt "CWEType" msgid "specializes_object" msgstr "parent de" @@ -3411,10 +3454,10 @@ "l'état n'appartient pas au workflow courant de l'entité. Vous désirez peut-" "être spécifier que cette entité doit utiliser ce workflow." -msgctxt "State" msgid "state_of" msgstr "état de" +msgctxt "State" msgid "state_of" msgstr "état de" @@ -3475,13 +3518,13 @@ msgid "subworkflow_object" msgstr "utilisé par la transition" +msgid "subworkflow_state" +msgstr "état du sous-workflow" + msgctxt "SubWorkflowExitPoint" msgid "subworkflow_state" msgstr "état" -msgid "subworkflow_state" -msgstr "état du sous-workflow" - msgctxt "State" msgid "subworkflow_state_object" msgstr "état de sortie de" @@ -3589,16 +3632,16 @@ msgid "to associate with" msgstr "pour associer à" -msgctxt "CWRelation" msgid "to_entity" -msgstr "pour l'entité" +msgstr "vers l'entité" msgctxt "CWAttribute" msgid "to_entity" msgstr "pour l'entité" +msgctxt "CWRelation" msgid "to_entity" -msgstr "vers l'entité" +msgstr "pour l'entité" msgctxt "CWEType" msgid "to_entity_object" @@ -3610,20 +3653,20 @@ msgid "to_interval_end" msgstr "à" +msgid "to_state" +msgstr "vers l'état" + msgctxt "TrInfo" msgid "to_state" msgstr "état de destination" -msgid "to_state" -msgstr "vers l'état" - -msgid "to_state_object" -msgstr "transitions vers cet état" - msgctxt "State" msgid "to_state_object" msgstr "transition vers cet état" +msgid "to_state_object" +msgstr "transitions vers cet état" + msgid "todo_by" msgstr "à faire par" @@ -3639,6 +3682,9 @@ msgid "transition may not be fired" msgstr "la transition ne peut-être déclenchée" +msgid "transition_of" +msgstr "transition de" + msgctxt "BaseTransition" msgid "transition_of" msgstr "transition de" @@ -3651,9 +3697,6 @@ msgid "transition_of" msgstr "transition de" -msgid "transition_of" -msgstr "transition de" - msgctxt "Workflow" msgid "transition_of_object" msgstr "a pour transition" @@ -3670,6 +3713,18 @@ msgid "type" msgstr "type" +msgctxt "BaseTransition" +msgid "type" +msgstr "type" + +msgctxt "Transition" +msgid "type" +msgstr "type" + +msgctxt "WorkflowTransition" +msgid "type" +msgstr "type" + msgid "type here a sparql query" msgstr "Tapez une requête sparql" @@ -3727,10 +3782,10 @@ msgid "up" msgstr "haut" -msgctxt "CWUser" msgid "upassword" msgstr "mot de passe" +msgctxt "CWUser" msgid "upassword" msgstr "mot de passe" @@ -3747,25 +3802,28 @@ msgid "update_permission" msgstr "permission de modifier" +msgctxt "CWGroup" msgid "update_permission_object" -msgstr "à la permission de modifier" +msgstr "peut modifier" msgctxt "RQLExpression" msgid "update_permission_object" msgstr "peut modifier" -msgctxt "CWGroup" msgid "update_permission_object" -msgstr "peut modifier" +msgstr "à la permission de modifier" + +msgid "updated" +msgstr "" #, python-format msgid "updated %(etype)s #%(eid)s (%(title)s)" msgstr "modification de l'entité %(etype)s #%(eid)s (%(title)s)" -msgctxt "ExternalUri" msgid "uri" msgstr "uri" +msgctxt "ExternalUri" msgid "uri" msgstr "uri" @@ -3779,13 +3837,13 @@ "utiliser dans une définition de processus pour ajouter une transition depuis " "un ou plusieurs états vers un état de destination." +msgid "use_email" +msgstr "adresse électronique" + msgctxt "CWUser" msgid "use_email" msgstr "utilise l'adresse électronique" -msgid "use_email" -msgstr "adresse électronique" - msgctxt "EmailAddress" msgid "use_email_object" msgstr "utilisée par" @@ -3846,14 +3904,14 @@ msgid "value" msgstr "valeur" +msgctxt "CWConstraint" +msgid "value" +msgstr "contrainte" + msgctxt "CWProperty" msgid "value" msgstr "valeur" -msgctxt "CWConstraint" -msgid "value" -msgstr "contrainte" - msgid "value associated to this key is not editable manually" msgstr "la valeur associée à cette clé n'est pas éditable manuellement" @@ -3909,6 +3967,9 @@ "and python-projects@lists.logilab.org), set this to indicate which is the " "preferred form." msgstr "" +"quand plusieurs addresses sont équivalentes (comme python-projects@logilab." +"org et python-projects@lists.logilab.org), indique laquelle est la forme " +"préférentielle." msgid "workflow" msgstr "workflow" @@ -3929,10 +3990,10 @@ msgid "workflow to which this transition belongs" msgstr "workflow auquel cette transition appartient" -msgctxt "Workflow" msgid "workflow_of" msgstr "workflow de" +msgctxt "Workflow" msgid "workflow_of" msgstr "workflow de" diff -r 1b0dbcf4b214 -r 559cad62c786 misc/migration/3.5.3_Any.py --- a/misc/migration/3.5.3_Any.py Wed Oct 07 12:38:30 2009 +0200 +++ b/misc/migration/3.5.3_Any.py Fri Oct 09 16:39:26 2009 +0200 @@ -1,4 +1,7 @@ -sync_schema_props_perms('state_of') -sync_schema_props_perms('transition_of') - -add_attribute('BaseTransition', 'type') +# type attribute might already be there if migrating from +# version < 3.5 to version >= 3.5.3, BaseTransition being added +# in bootstrap_migration +if versions_map['cubicweb'][0] < (3, 5, 0): + add_attribute('BaseTransition', 'type') + sync_schema_props_perms('state_of') + sync_schema_props_perms('transition_of') diff -r 1b0dbcf4b214 -r 559cad62c786 req.py --- a/req.py Wed Oct 07 12:38:30 2009 +0200 +++ b/req.py Fri Oct 09 16:39:26 2009 +0200 @@ -108,7 +108,13 @@ # XXX move to CWEntityManager or even better as factory method (unclear # where yet...) def create_entity(self, etype, *args, **kwargs): - """add a new entity of the given type""" + """add a new entity of the given type + + Example (in a shell session): + + c = create_entity('Company', name='Logilab') + create_entity('Person', ('works_for', 'Y'), Y=c.eid, firstname='John', lastname='Doe') + """ rql = 'INSERT %s X' % etype relations = [] restrictions = [] diff -r 1b0dbcf4b214 -r 559cad62c786 rset.py --- a/rset.py Wed Oct 07 12:38:30 2009 +0200 +++ b/rset.py Fri Oct 09 16:39:26 2009 +0200 @@ -451,14 +451,19 @@ if rqlst.TYPE == 'select': # UNION query, find the subquery from which this entity has been # found - rqlst, col = rqlst.locate_subquery(col, etype, self.args) + select, col = rqlst.locate_subquery(col, etype, self.args) + else: + select = rqlst # take care, due to outer join support, we may find None # values for non final relation - for i, attr, x in attr_desc_iterator(rqlst, col): + for i, attr, x in attr_desc_iterator(select, col): + outerselidx = rqlst.subquery_selection_index(select, i) + if outerselidx is None: + continue if x == 'subject': rschema = eschema.subject_relation(attr) if rschema.is_final(): - entity[attr] = rowvalues[i] + entity[attr] = rowvalues[outerselidx] continue tetype = rschema.objects(etype)[0] card = rschema.rproperty(etype, tetype, 'cardinality')[0] @@ -468,7 +473,7 @@ card = rschema.rproperty(tetype, etype, 'cardinality')[1] # only keep value if it can't be multivalued if card in '1?': - if rowvalues[i] is None: + if rowvalues[outerselidx] is None: if x == 'subject': rql = 'Any Y WHERE X %s Y, X eid %s' else: @@ -476,7 +481,7 @@ rrset = ResultSet([], rql % (attr, entity.eid)) req.decorate_rset(rrset) else: - rrset = self._build_entity(row, i).as_rset() + rrset = self._build_entity(row, outerselidx).as_rset() entity.set_related_cache(attr, x, rrset) return entity @@ -602,7 +607,6 @@ break else: continue - #varname = var.name for ref in var.references(): rel = ref.relation() if rel is None or rel.is_types_restriction(): diff -r 1b0dbcf4b214 -r 559cad62c786 schemas/workflow.py --- a/schemas/workflow.py Wed Oct 07 12:38:30 2009 +0200 +++ b/schemas/workflow.py Fri Oct 09 16:39:26 2009 +0200 @@ -92,9 +92,10 @@ """ __specializes_schema__ = True - destination_state = SubjectRelation('State', cardinality='1*', - constraints=[RQLConstraint('S transition_of WF, O state_of WF')], - description=_('destination state for this transition')) + destination_state = SubjectRelation( + 'State', cardinality='1*', + constraints=[RQLConstraint('S transition_of WF, O state_of WF')], + description=_('destination state for this transition')) class WorkflowTransition(BaseTransition): @@ -103,18 +104,23 @@ subworkflow = SubjectRelation('Workflow', cardinality='1*', constraints=[RQLConstraint('S transition_of WF, WF workflow_of ET, O workflow_of ET')]) - subworkflow_exit = SubjectRelation('SubWorkflowExitPoint', cardinality='+1', + # XXX use exit_of and inline it + subworkflow_exit = SubjectRelation('SubWorkflowExitPoint', cardinality='*1', composite='subject') class SubWorkflowExitPoint(EntityType): """define how we get out from a sub-workflow""" - subworkflow_state = SubjectRelation('State', cardinality='1*', - constraints=[RQLConstraint('T subworkflow_exit S, T subworkflow WF, O state_of WF')], - description=_('subworkflow state')) - destination_state = SubjectRelation('State', cardinality='1*', - constraints=[RQLConstraint('T subworkflow_exit S, T transition_of WF, O state_of WF')], - description=_('destination state')) + subworkflow_state = SubjectRelation( + 'State', cardinality='1*', + constraints=[RQLConstraint('T subworkflow_exit S, T subworkflow WF, O state_of WF')], + description=_('subworkflow state')) + destination_state = SubjectRelation( + 'State', cardinality='?*', + constraints=[RQLConstraint('T subworkflow_exit S, T transition_of WF, O state_of WF')], + description=_('destination state. No destination state means that transition ' + 'should go back to the state from which we\'ve entered the ' + 'subworkflow.')) class TrInfo(EntityType): diff -r 1b0dbcf4b214 -r 559cad62c786 server/msplanner.py --- a/server/msplanner.py Wed Oct 07 12:38:30 2009 +0200 +++ b/server/msplanner.py Fri Oct 09 16:39:26 2009 +0200 @@ -636,7 +636,7 @@ sourcesterms[source][term].remove(solindex) except KeyError: import rql.base as rqlb - assert isinstance(term, rqlb.BaseNode), repr(term) + assert isinstance(term, (rqlb.BaseNode, Variable)), repr(term) continue # may occur with subquery column alias if not sourcesterms[source][term]: del sourcesterms[source][term] diff -r 1b0dbcf4b214 -r 559cad62c786 server/repository.py --- a/server/repository.py Wed Oct 07 12:38:30 2009 +0200 +++ b/server/repository.py Fri Oct 09 16:39:26 2009 +0200 @@ -1153,7 +1153,9 @@ def pyro_register(self, host=''): """register the repository as a pyro object""" - from logilab.common.pyro_ext import register_object + import tempfile + from logilab.common.pyro_ext import register_object, config + config.PYRO_STORAGE = tempfile.gettempdir() # XXX until lgc > 0.45.1 is out appid = self.config['pyro-instance-id'] or self.config.appid daemon = register_object(self, appid, self.config['pyro-ns-group'], self.config['pyro-host'], diff -r 1b0dbcf4b214 -r 559cad62c786 server/sources/pyrorql.py --- a/server/sources/pyrorql.py Wed Oct 07 12:38:30 2009 +0200 +++ b/server/sources/pyrorql.py Fri Oct 09 16:39:26 2009 +0200 @@ -219,7 +219,7 @@ nshost = self.config.get('pyro-ns-host') or self.repo.config['pyro-ns-host'] nsgroup = self.config.get('pyro-ns-group') or self.repo.config['pyro-ns-group'] self.info('connecting to instance :%s.%s for user %s', - nsgroup, nshost, self.config['cubicweb-user']) + nsgroup, self.config['pyro-ns-id'], self.config['cubicweb-user']) #cnxprops = ConnectionProperties(cnxtype=self.config['cnx-type']) return dbapi.connect(database=self.config['pyro-ns-id'], login=self.config['cubicweb-user'], diff -r 1b0dbcf4b214 -r 559cad62c786 server/sqlutils.py --- a/server/sqlutils.py Wed Oct 07 12:38:30 2009 +0200 +++ b/server/sqlutils.py Fri Oct 09 16:39:26 2009 +0200 @@ -33,7 +33,8 @@ SQL_PREFIX = 'cw_' -def sqlexec(sqlstmts, cursor_or_execute, withpb=True, pbtitle='', delimiter=';'): +def sqlexec(sqlstmts, cursor_or_execute, withpb=not os.environ.get('APYCOT_ROOT'), + pbtitle='', delimiter=';'): """execute sql statements ignoring DROP/ CREATE GROUP or USER statements error. If a cnx is given, commit at each statement """ diff -r 1b0dbcf4b214 -r 559cad62c786 web/component.py --- a/web/component.py Wed Oct 07 12:38:30 2009 +0200 +++ b/web/component.py Fri Oct 09 16:39:26 2009 +0200 @@ -104,6 +104,8 @@ start = int(self._cw.form[self.start_param]) except KeyError: start, stop = 0, self.page_size + if start >= len(self.rset): + start, stop = 0, self.page_size self.starting_from = start return start, stop diff -r 1b0dbcf4b214 -r 559cad62c786 web/uicfg.py --- a/web/uicfg.py Wed Oct 07 12:38:30 2009 +0200 +++ b/web/uicfg.py Fri Oct 09 16:39:26 2009 +0200 @@ -284,14 +284,9 @@ else: card, composed = _card_and_comp(sschema, rschema, oschema, role) if card in '1+': - if not rschema.is_final() and composed: - # XXX why? probably because we want it unlined, though - # this is not the case by default - sectdict['main'] = 'hidden' - else: - sectdict['main'] = 'attributes' - if not 'muledit' in sectdict: - sectdict['muledit'] = 'attributes' + sectdict['main'] = 'attributes' + if not 'muledit' in sectdict: + sectdict['muledit'] = 'attributes' elif rschema.is_final(): sectdict['main'] = 'attributes' else: @@ -402,7 +397,6 @@ continue yield (rschema, targetschemas, role) - autoform_section = AutoformSectionRelationTags('autoform_section') # relations'field class diff -r 1b0dbcf4b214 -r 559cad62c786 web/views/autoform.py --- a/web/views/autoform.py Wed Oct 07 12:38:30 2009 +0200 +++ b/web/views/autoform.py Fri Oct 09 16:39:26 2009 +0200 @@ -134,22 +134,12 @@ # -> generate the
node when the content is rendered # and we know the correct enctype (formrenderer's w attribute # is not a StringIO) - for rschema, targettypes, role in self.inlined_relations(): - # inlined forms don't handle multiple target types - if len(targettypes) != 1: - continue - targettype = targettypes[0] - if targettype in _tested: - continue - _tested.add(targettype) - if self.should_inline_relation_form(rschema, targettype, role): - entity = self._cw.vreg['etypes'].etype_class(targettype)(self._cw) - subform = self._cw.vreg['forms'].select('edition', self._cw, - entity=entity) - if hasattr(subform, '_subform_needs_multipart'): - needs_multipart = subform._subform_needs_multipart(_tested) + for formview in self.inlined_form_views(): + if formview.form: + if hasattr(formview.form, '_subform_needs_multipart'): + needs_multipart = formview.form._subform_needs_multipart(_tested) else: - needs_multipart = subform.form_needs_multipart + needs_multipart = formview.form.form_needs_multipart if needs_multipart: return True return False @@ -269,7 +259,7 @@ def inlined_form_views(self): """compute and return list of inlined form views (hosting the inlined form object) """ - formviews = [] + allformviews = [] entity = self.edited_entity for rschema, ttypes, role in self.inlined_relations(): # show inline forms only if there's one possible target type @@ -281,7 +271,7 @@ continue ttype = ttypes[0].type if self.should_inline_relation_form(rschema, ttype, role): - formviews += self.inline_edition_form_view(rschema, ttype, role) + formviews = list(self.inline_edition_form_view(rschema, ttype, role)) if role == 'subject': card = rschema.rproperty(entity.e_schema, ttype, 'cardinality')[0] else: @@ -298,7 +288,8 @@ etype=ttype, rtype=rschema, role=role, peid=self.edited_entity.eid, pform=self, card=card) formviews.append(addnewlink) - return formviews + allformviews += formviews + return allformviews def inlined_forms(self): for formview in self.inlined_form_views(): diff -r 1b0dbcf4b214 -r 559cad62c786 web/views/basecontrollers.py --- a/web/views/basecontrollers.py Wed Oct 07 12:38:30 2009 +0200 +++ b/web/views/basecontrollers.py Fri Oct 09 16:39:26 2009 +0200 @@ -192,8 +192,6 @@ except ValidationError, ex: return (False, _validation_error(req, ex), ctrl._edited_entity) except Redirect, ex: - if ctrl._edited_entity: - ctrl._edited_entity.complete() try: req.cnx.commit() # ValidationError may be raise on commit except ValidationError, ex: @@ -203,6 +201,10 @@ req.exception('unexpected error while validating form') return (False, req._(str(ex).decode('utf-8')), ctrl._edited_entity) else: + # complete entity: it can be used in js callbacks where we might + # want every possible information + if ctrl._edited_entity: + ctrl._edited_entity.complete() return (True, ex.location, ctrl._edited_entity) except Exception, ex: req.cnx.rollback() @@ -554,7 +556,6 @@ rql = 'Any X WHERE X eid in (%s)' % (','.join(eids)) rset = self._cw.execute(rql) for entity in rset.entities(): - entity.complete() # XXX really? yield entity @property diff -r 1b0dbcf4b214 -r 559cad62c786 web/views/editforms.py --- a/web/views/editforms.py Wed Oct 07 12:38:30 2009 +0200 +++ b/web/views/editforms.py Fri Oct 09 16:39:26 2009 +0200 @@ -371,6 +371,8 @@ entity """ __regid__ = 'copy' + + title = _('copy') warning_message = _('Please note that this is only a shallow copy') def render_form(self, entity): diff -r 1b0dbcf4b214 -r 559cad62c786 web/views/formrenderers.py --- a/web/views/formrenderers.py Wed Oct 07 12:38:30 2009 +0200 +++ b/web/views/formrenderers.py Fri Oct 09 16:39:26 2009 +0200 @@ -352,7 +352,7 @@ _options = FormRenderer._options + ('display_relations_form', 'main_form_title') display_relations_form = True - main_form_title = _('main information') + main_form_title = _('main informations') def render(self, form, values): rendered = super(EntityFormRenderer, self).render(form, values) diff -r 1b0dbcf4b214 -r 559cad62c786 web/views/treeview.py --- a/web/views/treeview.py Wed Oct 07 12:38:30 2009 +0200 +++ b/web/views/treeview.py Fri Oct 09 16:39:26 2009 +0200 @@ -180,6 +180,7 @@ # the local node info self.wview(vid, self.cw_rset, row=row, col=col, **morekwargs) if is_open and not is_leaf: # => rql is defined - self.wview(parentvid, self._cw.execute(rql), treeid=treeid, initial_load=False, **morekwargs) + self.wview(parentvid, self._cw.execute(rql), subvid=vid, + treeid=treeid, initial_load=False, **morekwargs) w(u'') diff -r 1b0dbcf4b214 -r 559cad62c786 web/views/urlrewrite.py --- a/web/views/urlrewrite.py Wed Oct 07 12:38:30 2009 +0200 +++ b/web/views/urlrewrite.py Fri Oct 09 16:39:26 2009 +0200 @@ -170,7 +170,7 @@ for key in formgroups: form2[key] = match.group(key) if "vtitle" in form2: - form2['vtitle'] = req._(form2['vtitle']) + form2['vtitle'] = req.__(form2['vtitle']) if form2: req.form.update(form2) return controller, rset