switch to tracking code sql class when appropriate (#6597)

This commit is contained in:
Frédéric Péters 2015-03-02 13:14:20 +01:00
parent ea77b4cdef
commit c692073d48
2 changed files with 7 additions and 4 deletions

View File

@ -44,7 +44,6 @@ from wcs.categories import Category
from wcs.formdef import FormDef
from wcs.formdata import FormData
from wcs.roles import logged_users_role
from wcs.tracking_code import TrackingCode
from wcs.workflows import Workflow, EditableWorkflowStatusItem
from wcs.api import get_user_from_api_query_string
@ -163,7 +162,7 @@ class TrackingCodeDirectory(Directory):
def load(self):
try:
tracking_code = TrackingCode.get(self.code)
tracking_code = get_publisher().tracking_code_class.get(self.code)
except KeyError:
raise errors.TraversalError()
formdata = tracking_code.formdata
@ -805,11 +804,11 @@ class FormPage(Directory):
old_draft_formdata = self.formdef.data_class().get(draft_formdata_id)
old_draft_formdata.remove_self()
if old_draft_formdata.tracking_code:
code = TrackingCode.get(old_draft_formdata.tracking_code)
code = get_publisher().tracking_code_class.get(old_draft_formdata.tracking_code)
form_data['draft_formdata_id'] = formdata.id
if code is None:
code = TrackingCode()
code = get_publisher().tracking_code_class()
code.formdata = formdata # this will .store() the code
def submitted_existing(self, form, editing):

View File

@ -41,6 +41,7 @@ from admin import RootDirectory as AdminRootDirectory
import sessions
from users import User
from tracking_code import TrackingCode
import pickle
@ -75,6 +76,7 @@ class WcsPublisher(StubWcsPublisher):
session_manager_class = sessions.StorageSessionManager
user_class = User
tracking_code_class = TrackingCode
unpickler_class = UnpicklerClass
def get_backoffice_module(cls):
@ -131,9 +133,11 @@ class WcsPublisher(StubWcsPublisher):
if self.has_site_option('postgresql') and get_cfg('postgresql', {}):
import sql
self.user_class = sql.SqlUser
self.tracking_code_class = sql.TrackingCode
sql.get_connection(new=True)
else:
self.user_class = User
self.tracking_code_class = TrackingCode
def import_zip(self, fd):
z = zipfile.ZipFile(fd)