[gen] Removed obsolete function to create objects via an import form.
This commit is contained in:
		
							parent
							
								
									b98da33d47
								
							
						
					
					
						commit
						f629f2b323
					
				
					 15 changed files with 10 additions and 399 deletions
				
			
		| 
						 | 
					@ -40,43 +40,17 @@ from appy.fields.workflow import *
 | 
				
			||||||
from appy.gen.layout import Table
 | 
					from appy.gen.layout import Table
 | 
				
			||||||
from appy.gen.utils import No
 | 
					from appy.gen.utils import No
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Make the following classes available here: people may need to monkey-patch
 | 
					# Make the following classes available here: people may need to override some
 | 
				
			||||||
# some PXs on thoses classes.
 | 
					# of their PXs (defined as static attributes).
 | 
				
			||||||
from appy.gen.wrappers import AbstractWrapper as BaseObject
 | 
					from appy.gen.wrappers import AbstractWrapper as BaseObject
 | 
				
			||||||
from appy.gen.wrappers.ToolWrapper import ToolWrapper as BaseTool
 | 
					from appy.gen.wrappers.ToolWrapper import ToolWrapper as BaseTool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Import:
 | 
					 | 
				
			||||||
    '''Used for describing the place where to find the data to use for creating
 | 
					 | 
				
			||||||
       an object.'''
 | 
					 | 
				
			||||||
    def __init__(self, path, onElement=None, headers=(), sort=None):
 | 
					 | 
				
			||||||
        self.id = 'import'
 | 
					 | 
				
			||||||
        self.path = path
 | 
					 | 
				
			||||||
        # p_onElement hereafter must be a function (or a static method) that
 | 
					 | 
				
			||||||
        # will be called every time an element to import is found. It takes a
 | 
					 | 
				
			||||||
        # single arg that is the absolute filen name of the file to import,
 | 
					 | 
				
			||||||
        # within p_path. It must return a list of info about the element, or
 | 
					 | 
				
			||||||
        # None if the element must be ignored. The list will be used to display
 | 
					 | 
				
			||||||
        # information about the element in a tabular form.
 | 
					 | 
				
			||||||
        self.onElement = onElement
 | 
					 | 
				
			||||||
        # The following attribute must contain the names of the column headers
 | 
					 | 
				
			||||||
        # of the table that will display elements to import (retrieved from
 | 
					 | 
				
			||||||
        # calls to self.onElement). Every not-None element retrieved from
 | 
					 | 
				
			||||||
        # self.onElement must have the same length as self.headers.
 | 
					 | 
				
			||||||
        self.headers = headers
 | 
					 | 
				
			||||||
        # The following attribute must store a function or static method that
 | 
					 | 
				
			||||||
        # will be used to sort elements to import. It will be called with a
 | 
					 | 
				
			||||||
        # single param containing the list of all not-None elements as retrieved
 | 
					 | 
				
			||||||
        # by calls to self.onElement (but with one additional first element in
 | 
					 | 
				
			||||||
        # every list, which is the absolute file name of the element to import)
 | 
					 | 
				
			||||||
        # and must return a similar, sorted, list.
 | 
					 | 
				
			||||||
        self.sort = sort
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# ------------------------------------------------------------------------------
 | 
					# ------------------------------------------------------------------------------
 | 
				
			||||||
class Model: pass
 | 
					class Model: pass
 | 
				
			||||||
class Tool(Model):
 | 
					class Tool(Model):
 | 
				
			||||||
    '''If you want to extend or modify the Tool class, subclass me.'''
 | 
					    '''Subclass me to extend or modify the Tool class.'''
 | 
				
			||||||
class User(Model):
 | 
					class User(Model):
 | 
				
			||||||
    '''If you want to extend or modify the User class, subclass me.'''
 | 
					    '''Subclass me to extend or modify the User class.'''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# ------------------------------------------------------------------------------
 | 
					# ------------------------------------------------------------------------------
 | 
				
			||||||
class LdapConfig:
 | 
					class LdapConfig:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -260,28 +260,6 @@ class ToolMixin(BaseMixin):
 | 
				
			||||||
        klass = self.getAppyClass(className)
 | 
					        klass = self.getAppyClass(className)
 | 
				
			||||||
        return getattr(klass, 'resultMode', 'list')
 | 
					        return getattr(klass, 'resultMode', 'list')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def getImportElements(self, className):
 | 
					 | 
				
			||||||
        '''Returns the list of elements that can be imported from p_path for
 | 
					 | 
				
			||||||
           p_className.'''
 | 
					 | 
				
			||||||
        appyClass = self.getAppyClass(className)
 | 
					 | 
				
			||||||
        importParams = self.getCreateMeans(appyClass)['import']
 | 
					 | 
				
			||||||
        onElement = importParams.onElement.__get__('')
 | 
					 | 
				
			||||||
        sortMethod = importParams.sort
 | 
					 | 
				
			||||||
        if sortMethod: sortMethod = sortMethod.__get__('')
 | 
					 | 
				
			||||||
        elems = []
 | 
					 | 
				
			||||||
        importType = self.getAppyType('importPathFor%s' % className)
 | 
					 | 
				
			||||||
        importPath = importType.getValue(self)
 | 
					 | 
				
			||||||
        for elem in os.listdir(importPath):
 | 
					 | 
				
			||||||
            elemFullPath = os.path.join(importPath, elem)
 | 
					 | 
				
			||||||
            elemInfo = onElement(elemFullPath)
 | 
					 | 
				
			||||||
            if elemInfo:
 | 
					 | 
				
			||||||
                elemInfo.insert(0, elemFullPath) # To the result, I add the full
 | 
					 | 
				
			||||||
                # path of the elem, which will not be shown.
 | 
					 | 
				
			||||||
                elems.append(elemInfo)
 | 
					 | 
				
			||||||
        if sortMethod:
 | 
					 | 
				
			||||||
            elems = sortMethod(elems)
 | 
					 | 
				
			||||||
        return [importParams.headers, elems]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def showPortlet(self, obj, layoutType):
 | 
					    def showPortlet(self, obj, layoutType):
 | 
				
			||||||
        '''When must the portlet be shown? p_obj and p_layoutType can be None
 | 
					        '''When must the portlet be shown? p_obj and p_layoutType can be None
 | 
				
			||||||
           if we are not browing any objet (ie, we are on the home page).'''
 | 
					           if we are not browing any objet (ie, we are on the home page).'''
 | 
				
			||||||
| 
						 | 
					@ -484,26 +462,16 @@ class ToolMixin(BaseMixin):
 | 
				
			||||||
        return self.getProductConfig().allClassNames + [self.__class__.__name__]
 | 
					        return self.getProductConfig().allClassNames + [self.__class__.__name__]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def getCreateMeans(self, klass):
 | 
					    def getCreateMeans(self, klass):
 | 
				
			||||||
        '''Gets the different ways objects of p_klass can be created (via a web
 | 
					        '''Gets the different ways objects of p_klass can be created (currently:
 | 
				
			||||||
           form, by importing external data, etc). Result is a dict whose keys
 | 
					           via a web form or programmatically only). Result is a list.'''
 | 
				
			||||||
           are strings (ie "form", "import"...) and whose values are additional
 | 
					        res = []
 | 
				
			||||||
           data about the particular mean.'''
 | 
					 | 
				
			||||||
        res = {}
 | 
					 | 
				
			||||||
        if not klass.__dict__.has_key('create'):
 | 
					        if not klass.__dict__.has_key('create'):
 | 
				
			||||||
            res['form'] = None
 | 
					            return ['form']
 | 
				
			||||||
            # No additional data for this means, which is the default one.
 | 
					 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            means = pythonClass.create
 | 
					            means = pythonClass.create
 | 
				
			||||||
            if means:
 | 
					            if means:
 | 
				
			||||||
                if isinstance(means, basestring): res[means] = None
 | 
					                if isinstance(means, basestring): res = [means]
 | 
				
			||||||
                elif isinstance(means, list) or isinstance(means, tuple):
 | 
					                else: res = means
 | 
				
			||||||
                    for mean in means:
 | 
					 | 
				
			||||||
                        if isinstance(mean, basestring):
 | 
					 | 
				
			||||||
                            res[mean] = None
 | 
					 | 
				
			||||||
                        else:
 | 
					 | 
				
			||||||
                            res[mean.id] = mean
 | 
					 | 
				
			||||||
                else:
 | 
					 | 
				
			||||||
                    res[means.id] = means
 | 
					 | 
				
			||||||
        return res
 | 
					        return res
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def userMaySearch(self, klass):
 | 
					    def userMaySearch(self, klass):
 | 
				
			||||||
| 
						 | 
					@ -541,28 +509,6 @@ class ToolMixin(BaseMixin):
 | 
				
			||||||
            if role in creators:
 | 
					            if role in creators:
 | 
				
			||||||
                return True
 | 
					                return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def onImportObjects(self):
 | 
					 | 
				
			||||||
        '''This method is called when the user wants to create objects from
 | 
					 | 
				
			||||||
           external data.'''
 | 
					 | 
				
			||||||
        rq = self.REQUEST
 | 
					 | 
				
			||||||
        appyClass = self.getAppyClass(rq.get('className'))
 | 
					 | 
				
			||||||
        importPaths = rq.get('importPath').split('|')
 | 
					 | 
				
			||||||
        appFolder = self.getPath('/data')
 | 
					 | 
				
			||||||
        for importPath in importPaths:
 | 
					 | 
				
			||||||
            if not importPath: continue
 | 
					 | 
				
			||||||
            objectId = os.path.basename(importPath)
 | 
					 | 
				
			||||||
            self.appy().create(appyClass, id=objectId, _data=importPath)
 | 
					 | 
				
			||||||
        self.say(self.translate('import_done'))
 | 
					 | 
				
			||||||
        return self.goto(rq['HTTP_REFERER'])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def isAlreadyImported(self, contentType, importPath):
 | 
					 | 
				
			||||||
        data = self.getPath('/data')
 | 
					 | 
				
			||||||
        objectId = os.path.basename(importPath)
 | 
					 | 
				
			||||||
        if hasattr(data.aq_base, objectId):
 | 
					 | 
				
			||||||
            return True
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            return False
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def isSortable(self, name, className, usage):
 | 
					    def isSortable(self, name, className, usage):
 | 
				
			||||||
        '''Is field p_name defined on p_className sortable for p_usage purposes
 | 
					        '''Is field p_name defined on p_className sortable for p_usage purposes
 | 
				
			||||||
           (p_usage can be "ref" or "search")?'''
 | 
					           (p_usage can be "ref" or "search")?'''
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -103,10 +103,6 @@ msgstr ""
 | 
				
			||||||
msgid "query_create"
 | 
					msgid "query_create"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "import"
 | 
					 | 
				
			||||||
msgid "query_import"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Nothing to see for the moment."
 | 
					#. Default: "Nothing to see for the moment."
 | 
				
			||||||
msgid "query_no_result"
 | 
					msgid "query_no_result"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -115,26 +111,6 @@ msgstr ""
 | 
				
			||||||
msgid "query_consult_all"
 | 
					msgid "query_consult_all"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "Importing data into your application"
 | 
					 | 
				
			||||||
msgid "import_title"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Show / hide alreadly imported elements."
 | 
					 | 
				
			||||||
msgid "import_show_hide"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Already imported."
 | 
					 | 
				
			||||||
msgid "import_already"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import selected elements"
 | 
					 | 
				
			||||||
msgid "import_many"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import terminated successfully."
 | 
					 | 
				
			||||||
msgid "import_done"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Advanced search"
 | 
					#. Default: "Advanced search"
 | 
				
			||||||
msgid "search_title"
 | 
					msgid "search_title"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										24
									
								
								gen/tr/ar.po
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								gen/tr/ar.po
									
										
									
									
									
								
							| 
						 | 
					@ -103,10 +103,6 @@ msgstr ""
 | 
				
			||||||
msgid "query_create"
 | 
					msgid "query_create"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "import"
 | 
					 | 
				
			||||||
msgid "query_import"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Nothing to see for the moment."
 | 
					#. Default: "Nothing to see for the moment."
 | 
				
			||||||
msgid "query_no_result"
 | 
					msgid "query_no_result"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -115,26 +111,6 @@ msgstr ""
 | 
				
			||||||
msgid "query_consult_all"
 | 
					msgid "query_consult_all"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "Importing data into your application"
 | 
					 | 
				
			||||||
msgid "import_title"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Show / hide alreadly imported elements."
 | 
					 | 
				
			||||||
msgid "import_show_hide"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Already imported."
 | 
					 | 
				
			||||||
msgid "import_already"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import selected elements"
 | 
					 | 
				
			||||||
msgid "import_many"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import terminated successfully."
 | 
					 | 
				
			||||||
msgid "import_done"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Advanced search"
 | 
					#. Default: "Advanced search"
 | 
				
			||||||
msgid "search_title"
 | 
					msgid "search_title"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										24
									
								
								gen/tr/de.po
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								gen/tr/de.po
									
										
									
									
									
								
							| 
						 | 
					@ -103,10 +103,6 @@ msgstr "Nach unten verschieben"
 | 
				
			||||||
msgid "query_create"
 | 
					msgid "query_create"
 | 
				
			||||||
msgstr "Anfertigen"
 | 
					msgstr "Anfertigen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "import"
 | 
					 | 
				
			||||||
msgid "query_import"
 | 
					 | 
				
			||||||
msgstr "Importieren"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Nothing to see for the moment."
 | 
					#. Default: "Nothing to see for the moment."
 | 
				
			||||||
msgid "query_no_result"
 | 
					msgid "query_no_result"
 | 
				
			||||||
msgstr "Kein Resultat"
 | 
					msgstr "Kein Resultat"
 | 
				
			||||||
| 
						 | 
					@ -115,26 +111,6 @@ msgstr "Kein Resultat"
 | 
				
			||||||
msgid "query_consult_all"
 | 
					msgid "query_consult_all"
 | 
				
			||||||
msgstr "Alles untersuchen"
 | 
					msgstr "Alles untersuchen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "Importing data into your application"
 | 
					 | 
				
			||||||
msgid "import_title"
 | 
					 | 
				
			||||||
msgstr "Angaben importieren"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Show / hide alreadly imported elements."
 | 
					 | 
				
			||||||
msgid "import_show_hide"
 | 
					 | 
				
			||||||
msgstr "Zeigen / verbergen von bereits importierten Elementen."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Already imported."
 | 
					 | 
				
			||||||
msgid "import_already"
 | 
					 | 
				
			||||||
msgstr "Bereits importiert."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import selected elements"
 | 
					 | 
				
			||||||
msgid "import_many"
 | 
					 | 
				
			||||||
msgstr "Ausgewählte Elemente importieren."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import terminated successfully."
 | 
					 | 
				
			||||||
msgid "import_done"
 | 
					 | 
				
			||||||
msgstr "Das Importieren ist erfolgt."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Advanced search"
 | 
					#. Default: "Advanced search"
 | 
				
			||||||
msgid "search_title"
 | 
					msgid "search_title"
 | 
				
			||||||
msgstr "Fortgeschrittene Suche"
 | 
					msgstr "Fortgeschrittene Suche"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										24
									
								
								gen/tr/en.po
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								gen/tr/en.po
									
										
									
									
									
								
							| 
						 | 
					@ -104,10 +104,6 @@ msgstr "Move down"
 | 
				
			||||||
msgid "query_create"
 | 
					msgid "query_create"
 | 
				
			||||||
msgstr "create"
 | 
					msgstr "create"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "import"
 | 
					 | 
				
			||||||
msgid "query_import"
 | 
					 | 
				
			||||||
msgstr "import"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Nothing to see for the moment."
 | 
					#. Default: "Nothing to see for the moment."
 | 
				
			||||||
msgid "query_no_result"
 | 
					msgid "query_no_result"
 | 
				
			||||||
msgstr "Nothing to see for the moment."
 | 
					msgstr "Nothing to see for the moment."
 | 
				
			||||||
| 
						 | 
					@ -116,26 +112,6 @@ msgstr "Nothing to see for the moment."
 | 
				
			||||||
msgid "query_consult_all"
 | 
					msgid "query_consult_all"
 | 
				
			||||||
msgstr "consult all"
 | 
					msgstr "consult all"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "Importing data into your application"
 | 
					 | 
				
			||||||
msgid "import_title"
 | 
					 | 
				
			||||||
msgstr "Importing data into your application"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Show / hide alreadly imported elements."
 | 
					 | 
				
			||||||
msgid "import_show_hide"
 | 
					 | 
				
			||||||
msgstr "Show / hide alreadly imported elements."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Already imported."
 | 
					 | 
				
			||||||
msgid "import_already"
 | 
					 | 
				
			||||||
msgstr "Already imported."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import selected elements"
 | 
					 | 
				
			||||||
msgid "import_many"
 | 
					 | 
				
			||||||
msgstr "Import selected elements"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import terminated successfully."
 | 
					 | 
				
			||||||
msgid "import_done"
 | 
					 | 
				
			||||||
msgstr "Import terminated successfully."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Advanced search"
 | 
					#. Default: "Advanced search"
 | 
				
			||||||
msgid "search_title"
 | 
					msgid "search_title"
 | 
				
			||||||
msgstr "Advanced search"
 | 
					msgstr "Advanced search"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										24
									
								
								gen/tr/es.po
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								gen/tr/es.po
									
										
									
									
									
								
							| 
						 | 
					@ -103,10 +103,6 @@ msgstr "Mueva hacia abajo"
 | 
				
			||||||
msgid "query_create"
 | 
					msgid "query_create"
 | 
				
			||||||
msgstr "Crear"
 | 
					msgstr "Crear"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "import"
 | 
					 | 
				
			||||||
msgid "query_import"
 | 
					 | 
				
			||||||
msgstr "Importar"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Nothing to see for the moment."
 | 
					#. Default: "Nothing to see for the moment."
 | 
				
			||||||
msgid "query_no_result"
 | 
					msgid "query_no_result"
 | 
				
			||||||
msgstr "No hay resultados."
 | 
					msgstr "No hay resultados."
 | 
				
			||||||
| 
						 | 
					@ -115,26 +111,6 @@ msgstr "No hay resultados."
 | 
				
			||||||
msgid "query_consult_all"
 | 
					msgid "query_consult_all"
 | 
				
			||||||
msgstr "Consultar todo"
 | 
					msgstr "Consultar todo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "Importing data into your application"
 | 
					 | 
				
			||||||
msgid "import_title"
 | 
					 | 
				
			||||||
msgstr "Importar datos"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Show / hide alreadly imported elements."
 | 
					 | 
				
			||||||
msgid "import_show_hide"
 | 
					 | 
				
			||||||
msgstr "Mostrar / ocultar los elementos ya importados."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Already imported."
 | 
					 | 
				
			||||||
msgid "import_already"
 | 
					 | 
				
			||||||
msgstr "Ya importado."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import selected elements"
 | 
					 | 
				
			||||||
msgid "import_many"
 | 
					 | 
				
			||||||
msgstr "Importar los elementos seleccionados."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import terminated successfully."
 | 
					 | 
				
			||||||
msgid "import_done"
 | 
					 | 
				
			||||||
msgstr "La importación se ha desarrollado con éxito"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Advanced search"
 | 
					#. Default: "Advanced search"
 | 
				
			||||||
msgid "search_title"
 | 
					msgid "search_title"
 | 
				
			||||||
msgstr "Búsqueda avanzada"
 | 
					msgstr "Búsqueda avanzada"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										24
									
								
								gen/tr/fr.po
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								gen/tr/fr.po
									
										
									
									
									
								
							| 
						 | 
					@ -104,10 +104,6 @@ msgstr "Déplacer vers le bas"
 | 
				
			||||||
msgid "query_create"
 | 
					msgid "query_create"
 | 
				
			||||||
msgstr "Créer"
 | 
					msgstr "Créer"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "import"
 | 
					 | 
				
			||||||
msgid "query_import"
 | 
					 | 
				
			||||||
msgstr "Importer"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Nothing to see for the moment."
 | 
					#. Default: "Nothing to see for the moment."
 | 
				
			||||||
msgid "query_no_result"
 | 
					msgid "query_no_result"
 | 
				
			||||||
msgstr "Pas de résultat."
 | 
					msgstr "Pas de résultat."
 | 
				
			||||||
| 
						 | 
					@ -116,26 +112,6 @@ msgstr "Pas de résultat."
 | 
				
			||||||
msgid "query_consult_all"
 | 
					msgid "query_consult_all"
 | 
				
			||||||
msgstr "Tout consulter"
 | 
					msgstr "Tout consulter"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "Importing data into your application"
 | 
					 | 
				
			||||||
msgid "import_title"
 | 
					 | 
				
			||||||
msgstr "Importer des données"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Show / hide alreadly imported elements."
 | 
					 | 
				
			||||||
msgid "import_show_hide"
 | 
					 | 
				
			||||||
msgstr "Montrer / cacher les éléments déjà importés."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Already imported."
 | 
					 | 
				
			||||||
msgid "import_already"
 | 
					 | 
				
			||||||
msgstr "Déjà importé."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import selected elements"
 | 
					 | 
				
			||||||
msgid "import_many"
 | 
					 | 
				
			||||||
msgstr "Importer les éléments sélectionnés."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import terminated successfully."
 | 
					 | 
				
			||||||
msgid "import_done"
 | 
					 | 
				
			||||||
msgstr "L'importation s'est déroulée avec succès"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Advanced search"
 | 
					#. Default: "Advanced search"
 | 
				
			||||||
msgid "search_title"
 | 
					msgid "search_title"
 | 
				
			||||||
msgstr "Recherche avancée"
 | 
					msgstr "Recherche avancée"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										24
									
								
								gen/tr/it.po
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								gen/tr/it.po
									
										
									
									
									
								
							| 
						 | 
					@ -103,10 +103,6 @@ msgstr "Giù"
 | 
				
			||||||
msgid "query_create"
 | 
					msgid "query_create"
 | 
				
			||||||
msgstr "Creazione in corso"
 | 
					msgstr "Creazione in corso"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "import"
 | 
					 | 
				
			||||||
msgid "query_import"
 | 
					 | 
				
			||||||
msgstr "Import"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Nothing to see for the moment."
 | 
					#. Default: "Nothing to see for the moment."
 | 
				
			||||||
msgid "query_no_result"
 | 
					msgid "query_no_result"
 | 
				
			||||||
msgstr "Nessun risultato"
 | 
					msgstr "Nessun risultato"
 | 
				
			||||||
| 
						 | 
					@ -115,26 +111,6 @@ msgstr "Nessun risultato"
 | 
				
			||||||
msgid "query_consult_all"
 | 
					msgid "query_consult_all"
 | 
				
			||||||
msgstr "Consultare tutto"
 | 
					msgstr "Consultare tutto"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "Importing data into your application"
 | 
					 | 
				
			||||||
msgid "import_title"
 | 
					 | 
				
			||||||
msgstr "Importare i dati"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Show / hide alreadly imported elements."
 | 
					 | 
				
			||||||
msgid "import_show_hide"
 | 
					 | 
				
			||||||
msgstr "Evidenzia / nascondi gli elementi già importati."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Already imported."
 | 
					 | 
				
			||||||
msgid "import_already"
 | 
					 | 
				
			||||||
msgstr "Già importati"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import selected elements"
 | 
					 | 
				
			||||||
msgid "import_many"
 | 
					 | 
				
			||||||
msgstr "Importare gli elementi selezionati."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import terminated successfully."
 | 
					 | 
				
			||||||
msgid "import_done"
 | 
					 | 
				
			||||||
msgstr "Import è terminato con successo"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Advanced search"
 | 
					#. Default: "Advanced search"
 | 
				
			||||||
msgid "search_title"
 | 
					msgid "search_title"
 | 
				
			||||||
msgstr "Ricerca avanzata"
 | 
					msgstr "Ricerca avanzata"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										24
									
								
								gen/tr/nl.po
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								gen/tr/nl.po
									
										
									
									
									
								
							| 
						 | 
					@ -103,10 +103,6 @@ msgstr "Verplaats naar beneden"
 | 
				
			||||||
msgid "query_create"
 | 
					msgid "query_create"
 | 
				
			||||||
msgstr "Aanmaken"
 | 
					msgstr "Aanmaken"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "import"
 | 
					 | 
				
			||||||
msgid "query_import"
 | 
					 | 
				
			||||||
msgstr "Importeren"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Nothing to see for the moment."
 | 
					#. Default: "Nothing to see for the moment."
 | 
				
			||||||
msgid "query_no_result"
 | 
					msgid "query_no_result"
 | 
				
			||||||
msgstr "Geen resultaat"
 | 
					msgstr "Geen resultaat"
 | 
				
			||||||
| 
						 | 
					@ -115,26 +111,6 @@ msgstr "Geen resultaat"
 | 
				
			||||||
msgid "query_consult_all"
 | 
					msgid "query_consult_all"
 | 
				
			||||||
msgstr "Alles raadplegen"
 | 
					msgstr "Alles raadplegen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Default: "Importing data into your application"
 | 
					 | 
				
			||||||
msgid "import_title"
 | 
					 | 
				
			||||||
msgstr "Gegevens importeren"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Show / hide alreadly imported elements."
 | 
					 | 
				
			||||||
msgid "import_show_hide"
 | 
					 | 
				
			||||||
msgstr "Tonen / verbergen van reeds geïmporteerde elementen."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Already imported."
 | 
					 | 
				
			||||||
msgid "import_already"
 | 
					 | 
				
			||||||
msgstr "Reeds geïmporteerd."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import selected elements"
 | 
					 | 
				
			||||||
msgid "import_many"
 | 
					 | 
				
			||||||
msgstr "Geselecteerde elementen importeren."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Import terminated successfully."
 | 
					 | 
				
			||||||
msgid "import_done"
 | 
					 | 
				
			||||||
msgstr "Het importeren is met succes afgelopen."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#. Default: "Advanced search"
 | 
					#. Default: "Advanced search"
 | 
				
			||||||
msgid "search_title"
 | 
					msgid "search_title"
 | 
				
			||||||
msgstr "Gevorderde opzoeking"
 | 
					msgstr "Gevorderde opzoeking"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -238,11 +238,6 @@ function askRefField(hookId, objectUrl, fieldName, innerRef, startNumber,
 | 
				
			||||||
  askAjaxChunk(hookId, 'GET', objectUrl, fieldName+':pxView', params);
 | 
					  askAjaxChunk(hookId, 'GET', objectUrl, fieldName+':pxView', params);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function askComputedField(hookId, objectUrl, fieldName) {
 | 
					 | 
				
			||||||
  // Sends an Ajax request for getting the content of a computed field
 | 
					 | 
				
			||||||
  askAjaxChunk(hookId, 'GET', objectUrl, fieldName+':pxViewContent');
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function askField(hookId, objectUrl, layoutType, showChanges, masterValues,
 | 
					function askField(hookId, objectUrl, layoutType, showChanges, masterValues,
 | 
				
			||||||
                  requestValue, error, className){
 | 
					                  requestValue, error, className){
 | 
				
			||||||
  // Sends an Ajax request for getting the content of any field.
 | 
					  // Sends an Ajax request for getting the content of any field.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 766 B  | 
							
								
								
									
										
											BIN
										
									
								
								gen/ui/eye.png
									
										
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								gen/ui/eye.png
									
										
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 372 B  | 
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 235 B  | 
| 
						 | 
					@ -187,7 +187,6 @@ class ToolWrapper(AbstractWrapper):
 | 
				
			||||||
        <!-- Actions -->
 | 
					        <!-- Actions -->
 | 
				
			||||||
        <x var="mayCreate=ztool.userMayCreate(rootClass);
 | 
					        <x var="mayCreate=ztool.userMayCreate(rootClass);
 | 
				
			||||||
                createMeans=ztool.getCreateMeans(rootClass)">
 | 
					                createMeans=ztool.getCreateMeans(rootClass)">
 | 
				
			||||||
 | 
					 | 
				
			||||||
         <!-- Create a new object from a web form. -->
 | 
					         <!-- Create a new object from a web form. -->
 | 
				
			||||||
         <input type="button" class="button"
 | 
					         <input type="button" class="button"
 | 
				
			||||||
                if="mayCreate and ('form' in createMeans)"
 | 
					                if="mayCreate and ('form' in createMeans)"
 | 
				
			||||||
| 
						 | 
					@ -195,15 +194,7 @@ class ToolWrapper(AbstractWrapper):
 | 
				
			||||||
                onclick=":'goto(%s)' % \
 | 
					                onclick=":'goto(%s)' % \
 | 
				
			||||||
                    q('%s/do?action=Create&className=%s' % \
 | 
					                    q('%s/do?action=Create&className=%s' % \
 | 
				
			||||||
                    (toolUrl, className))"/>
 | 
					                    (toolUrl, className))"/>
 | 
				
			||||||
 | 
					 | 
				
			||||||
         <!-- Create object(s) by importing data -->
 | 
					 | 
				
			||||||
         <input type="button" class="button"
 | 
					 | 
				
			||||||
                if="mayCreate and ('import' in createMeans)"
 | 
					 | 
				
			||||||
                style=":url('buttonImport', bg=True)" value=":_('query_import')"
 | 
					 | 
				
			||||||
                onclick=":'goto(%s)' % \
 | 
					 | 
				
			||||||
                        q('%s/import?className=%s' % (toolUrl, className))"/>
 | 
					 | 
				
			||||||
        </x>
 | 
					        </x>
 | 
				
			||||||
 | 
					 | 
				
			||||||
        <!-- Searches -->
 | 
					        <!-- Searches -->
 | 
				
			||||||
        <x if="ztool.advancedSearchEnabledFor(rootClass)">
 | 
					        <x if="ztool.advancedSearchEnabledFor(rootClass)">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -534,109 +525,6 @@ class ToolWrapper(AbstractWrapper):
 | 
				
			||||||
      </form>
 | 
					      </form>
 | 
				
			||||||
     </x>''', template=AbstractWrapper.pxTemplate, hook='content')
 | 
					     </x>''', template=AbstractWrapper.pxTemplate, hook='content')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pxImport = Px('''
 | 
					 | 
				
			||||||
     <x var="className=req['className'];
 | 
					 | 
				
			||||||
             importElems=ztool.getImportElements(className);
 | 
					 | 
				
			||||||
             allAreImported=True">
 | 
					 | 
				
			||||||
      <x>:tool.pxPagePrologue</x>
 | 
					 | 
				
			||||||
      <script type="text/javascript"><![CDATA[
 | 
					 | 
				
			||||||
      var importedElemsShown = false;
 | 
					 | 
				
			||||||
      function toggleViewableElements() {
 | 
					 | 
				
			||||||
        var rows = document.getElementsByName('importedElem');
 | 
					 | 
				
			||||||
        var newDisplay = 'table-row';
 | 
					 | 
				
			||||||
        if (isIe) newDisplay = 'block';
 | 
					 | 
				
			||||||
        if (importedElemsShown) newDisplay = 'none';
 | 
					 | 
				
			||||||
        for (var i=0; i<rows.length; i++) {
 | 
					 | 
				
			||||||
          rows[i].style.display = newDisplay;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        importedElemsShown = !importedElemsShown;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      var checkBoxesChecked = true;
 | 
					 | 
				
			||||||
      function toggleCheckboxes() {
 | 
					 | 
				
			||||||
        var checkBoxes = document.getElementsByName('cbElem');
 | 
					 | 
				
			||||||
        var newCheckValue = true;
 | 
					 | 
				
			||||||
        if (checkBoxesChecked) newCheckValue = false;
 | 
					 | 
				
			||||||
        for (var i=0; i<checkBoxes.length; i++) {
 | 
					 | 
				
			||||||
           checkBoxes[i].checked = newCheckValue;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        checkBoxesChecked = newCheckValue;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      function importSingleElement(importPath) {
 | 
					 | 
				
			||||||
        var f = document.forms['importElements'];
 | 
					 | 
				
			||||||
        f.importPath.value = importPath;
 | 
					 | 
				
			||||||
        f.submit();
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      function importManyElements() {
 | 
					 | 
				
			||||||
        var f = document.forms['importElements'];
 | 
					 | 
				
			||||||
        var importPaths = '';
 | 
					 | 
				
			||||||
        // Get the values of the checkboxes
 | 
					 | 
				
			||||||
        var checkBoxes = document.getElementsByName('cbElem');
 | 
					 | 
				
			||||||
        for (var i=0; i<checkBoxes.length; i++) {
 | 
					 | 
				
			||||||
          if (checkBoxes[i].checked) {
 | 
					 | 
				
			||||||
            importPaths += checkBoxes[i].value + '|';
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (! importPaths) alert(no_elem_selected);
 | 
					 | 
				
			||||||
        else {
 | 
					 | 
				
			||||||
          f.importPath.value = importPaths;
 | 
					 | 
				
			||||||
          f.submit();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }]]>
 | 
					 | 
				
			||||||
      </script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      <!-- Form for importing several elements at once. -->
 | 
					 | 
				
			||||||
      <form name="importElements"
 | 
					 | 
				
			||||||
            action=":ztool.absolute_url()+'/do'" method="post">
 | 
					 | 
				
			||||||
       <input type="hidden" name="action" value="ImportObjects"/>
 | 
					 | 
				
			||||||
       <input type="hidden" name="className" value=":className"/>
 | 
					 | 
				
			||||||
       <input type="hidden" name="importPath" value=""/>
 | 
					 | 
				
			||||||
      </form>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      <h1>:_('import_title')</h1><br/>
 | 
					 | 
				
			||||||
      <table class="list" width="100%">
 | 
					 | 
				
			||||||
       <tr>
 | 
					 | 
				
			||||||
        <th for="columnHeader in importElems[0]">
 | 
					 | 
				
			||||||
         <img if="loop.columnHeader.nb == 0" src=":url('eye')"
 | 
					 | 
				
			||||||
              title="_('import_show_hide')" class="clickable"
 | 
					 | 
				
			||||||
              onClick="toggleViewableElements()" align=":dleft" />
 | 
					 | 
				
			||||||
         <x>:columnHeader</x>
 | 
					 | 
				
			||||||
        </th>
 | 
					 | 
				
			||||||
        <th></th>
 | 
					 | 
				
			||||||
        <th width="20px"><img src=":url('select_elems')" class="clickable"
 | 
					 | 
				
			||||||
            title=":_('select_delesect')" onClick="toggleCheckboxes()"/></th>
 | 
					 | 
				
			||||||
       </tr>
 | 
					 | 
				
			||||||
       <tr for="row in importElems[1]"
 | 
					 | 
				
			||||||
           var2="alreadyImported=ztool.isAlreadyImported(className, row[0]);
 | 
					 | 
				
			||||||
                 allAreImported=allAreImported and alreadyImported;
 | 
					 | 
				
			||||||
                 odd=loop.row.odd"
 | 
					 | 
				
			||||||
           id=":alreadyImported and 'importedElem' or 'notImportedElem'"
 | 
					 | 
				
			||||||
           name=":alreadyImported and 'importedElem' or 'notImportedElem'"
 | 
					 | 
				
			||||||
           style=":alreadyImported and 'display:none' or 'display:table-row'"
 | 
					 | 
				
			||||||
           class=":odd and 'even' or 'odd'">
 | 
					 | 
				
			||||||
        <td for="elem in row[1:]">:elem</td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
         <input type="button" if="not alreadyImported"
 | 
					 | 
				
			||||||
                onClick=":'importSingleElement(%s)' % q(row[0])"
 | 
					 | 
				
			||||||
                value=":_('query_import')"/>
 | 
					 | 
				
			||||||
         <x if="alreadyImported">:_('import_already')</x>
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td align="center">
 | 
					 | 
				
			||||||
         <input if="not alreadyImported" type="checkbox" checked="checked"
 | 
					 | 
				
			||||||
                id="cbElem" name="cbElem" value="row[0]"/>
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
       </tr>
 | 
					 | 
				
			||||||
       <tr if="not importElems[1] or allAreImported">
 | 
					 | 
				
			||||||
        <td colspan="15">:_('query_no_result')</td></tr>
 | 
					 | 
				
			||||||
      </table>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      <!-- Button for importing several elements at once. -->
 | 
					 | 
				
			||||||
      <p align=":dright"><br/>
 | 
					 | 
				
			||||||
       <input if="importElems[1] and not allAreImported"
 | 
					 | 
				
			||||||
              type="button" onClick="importManyElements()"
 | 
					 | 
				
			||||||
              value=":_('import_many')"/>
 | 
					 | 
				
			||||||
      </p>
 | 
					 | 
				
			||||||
     </x>''', template=AbstractWrapper.pxTemplate, hook='content')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def isManager(self):
 | 
					    def isManager(self):
 | 
				
			||||||
        '''Some pages on the tool can only be accessed by managers.'''
 | 
					        '''Some pages on the tool can only be accessed by managers.'''
 | 
				
			||||||
        if self.user.has_role('Manager'): return 'view'
 | 
					        if self.user.has_role('Manager'): return 'view'
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue