############################################################################## # # Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved. # Sebastien Robin <seb@nexedi.com> # # WARNING: This program as such is intended to be used by professional # programmers who take the whole responsability of assessing all potential # consequences resulting from its eventual inadequacies and bugs # End users who are looking for a ready-to-use solution with commercial # garantees and support are strongly adviced to contract a Free Software # Service Company # # This program is Free Software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################## from Products.ERP5Type.Accessor.TypeDefinition import list_types from Globals import Persistent class SyncCode(Persistent): """ Class giving the Synchronization's Constants """ # SyncML Alert Codes TWO_WAY = 200 SLOW_SYNC = 201 # This means we get the data from the publication WAITING_DATA = 214 ONE_WAY_FROM_SERVER = 204 # SyncML Status Codes SUCCESS = 200 ITEM_ADDED = 201 CHUNK_OK = 214 CONFLICT = 409 # A conflict is detected CONFLICT_MERGE = 207 # We have merged the two versions, sending # whatever is needed to change(replace) CONFLICT_CLIENT_WIN = 208 # The client is the "winner", we keep # the version of the client UNAUTHORIZED = 401 AUTH_REQUIRED = 407 AUTH_ACCEPTED = 212 # Difference between publication and subscription PUB = 1 SUB = 0 NULL_ANCHOR = '00000000T000000Z' # ERP5 Sync Codes SYNCHRONIZED = 1 SENT = 2 NOT_SENT = 3 PARTIAL = 4 NOT_SYNCHRONIZED = 5 PUB_CONFLICT_MERGE = 6 PUB_CONFLICT_CLIENT_WIN = 8 MAX_LINES = 5000 MAX_OBJECTS = 100 action_tag = 'workflow_action' #NOT_EDITABLE_PROPERTY = ('id','object','uid','xupdate:element',action_tag, # 'xupdate:attribute','local_role') XUPDATE_INSERT = ('xupdate:insert-after','xupdate:insert-before') XUPDATE_ADD = ('xupdate:append',) XUPDATE_DEL = ('xupdate:remove',) XUPDATE_UPDATE = ('xupdate:update',) XUPDATE_EL = ('xupdate:element',) XUPDATE_INSERT_OR_ADD = tuple(XUPDATE_INSERT) + tuple(XUPDATE_ADD) XUPDATE_TAG = tuple(XUPDATE_INSERT) + tuple(XUPDATE_ADD) + \ tuple(XUPDATE_UPDATE) + tuple(XUPDATE_DEL) text_type_list = ('text','string') list_type_list = list_types force_conflict_list = ('layout_and_schema','ModificationDate') binary_type_list = ('image','file','document','pickle') date_type_list = ('date',) dict_type_list = ('dict',) int_type_list = ('int',) pickle_type_list = ('object',) xml_object_tag = 'object' #history_tag = 'workflow_history' history_tag = 'workflow_action' local_role_tag = 'local_role' local_permission_tag = 'local_permission' local_permission_list = (local_permission_tag,'/'+local_permission_tag) local_group_tag = 'local_group' local_role_list = (local_role_tag,'/'+local_role_tag, local_group_tag,'/'+local_group_tag) ADDABLE_PROPERTY = local_role_list + (history_tag,) + local_permission_list NOT_EDITABLE_PROPERTY = ('id','object','uid','xupdate:attribute') \ + XUPDATE_EL + ADDABLE_PROPERTY sub_object_exp = "/object\[@id='.*'\]/" object_exp = "/object\[@id='.*'\]" sub_sub_object_exp = "/object\[@id='.*'\]/object\[@id='.*'\]/" history_exp = "/%s\[@id='.*'\]" % history_tag local_role_exp = "/%s\[@id='.*'\]" % local_role_tag local_group_exp = "/%s\[@id='.*'\]" % local_group_tag bad_local_role_exp = "/%s\[@id='.*'\]/" % local_role_tag bad_local_group_exp = "/%s\[@id='.*'\]/" % local_group_tag bad_history_exp = "/%s\[@id='.*'\]/" % history_tag local_role_and_group_list = (local_group_exp,local_role_exp) bad_local_role_and_group_list = (bad_local_group_exp,bad_local_role_exp) #media types : MEDIA_TYPE = {} MEDIA_TYPE['TEXT_XML'] = 'text/xml' MEDIA_TYPE['TEXT_VCARD'] = 'text/vcard'