Fix OS4 exporter
This commit is contained in:
parent
19a9eedf17
commit
d17a050d8b
@ -9,7 +9,10 @@ from django.conf import settings
|
|||||||
from django.db import connections
|
from django.db import connections
|
||||||
|
|
||||||
from openslides.mediafiles.models import Mediafile
|
from openslides.mediafiles.models import Mediafile
|
||||||
from openslides.mediafiles.views import use_mediafile_database
|
from openslides.mediafiles.views import (
|
||||||
|
mediafile_database_tablename,
|
||||||
|
use_mediafile_database,
|
||||||
|
)
|
||||||
from openslides.motions.models import Motion
|
from openslides.motions.models import Motion
|
||||||
from openslides.users.views import demo_mode_users, is_demo_mode
|
from openslides.users.views import demo_mode_users, is_demo_mode
|
||||||
from openslides.utils.cache import element_cache
|
from openslides.utils.cache import element_cache
|
||||||
@ -205,6 +208,9 @@ class OS4Exporter:
|
|||||||
def get_model(self, collection, id):
|
def get_model(self, collection, id):
|
||||||
return self.data[collection][id]
|
return self.data[collection][id]
|
||||||
|
|
||||||
|
def exists_model(self, collection, id):
|
||||||
|
return id in self.data[collection]
|
||||||
|
|
||||||
def iter_collection(self, collection):
|
def iter_collection(self, collection):
|
||||||
return self.data[collection].values()
|
return self.data[collection].values()
|
||||||
|
|
||||||
@ -633,7 +639,8 @@ class OS4Exporter:
|
|||||||
if use_mediafile_database:
|
if use_mediafile_database:
|
||||||
with connections["mediafiles"].cursor() as cursor:
|
with connections["mediafiles"].cursor() as cursor:
|
||||||
cursor.execute(
|
cursor.execute(
|
||||||
"SELECT data FROM mediafile_data WHERE id = %s", [old["id"]]
|
f"SELECT data FROM {mediafile_database_tablename} WHERE id = %s",
|
||||||
|
[old["id"]],
|
||||||
)
|
)
|
||||||
row = cursor.fetchone()
|
row = cursor.fetchone()
|
||||||
if row is None:
|
if row is None:
|
||||||
@ -698,7 +705,8 @@ class OS4Exporter:
|
|||||||
]
|
]
|
||||||
new["origin_id"] = None
|
new["origin_id"] = None
|
||||||
new["derived_motion_ids"] = []
|
new["derived_motion_ids"] = []
|
||||||
new["forwarding_tree_motion_ids"] = []
|
new["all_origin_ids"] = []
|
||||||
|
new["all_derived_motion_ids"] = []
|
||||||
new["block_id"] = old["motion_block_id"]
|
new["block_id"] = old["motion_block_id"]
|
||||||
new["submitter_ids"] = self.create_motion_submitters(old["submitters"])
|
new["submitter_ids"] = self.create_motion_submitters(old["submitters"])
|
||||||
new["supporter_ids"] = old["supporters_id"]
|
new["supporter_ids"] = old["supporters_id"]
|
||||||
@ -993,6 +1001,9 @@ class OS4Exporter:
|
|||||||
notes = old.get("notes", {}).get("motions/motion", {})
|
notes = old.get("notes", {}).get("motions/motion", {})
|
||||||
for motion_id, note in notes.items():
|
for motion_id, note in notes.items():
|
||||||
motion_id = int(motion_id)
|
motion_id = int(motion_id)
|
||||||
|
if not self.exists_model("motion", motion_id):
|
||||||
|
continue
|
||||||
|
|
||||||
new = {
|
new = {
|
||||||
"id": id_counter,
|
"id": id_counter,
|
||||||
"user_id": old["user_id"],
|
"user_id": old["user_id"],
|
||||||
|
@ -27,6 +27,7 @@ from .utils import bytes_to_human, get_pdf_information
|
|||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
use_mediafile_database = "mediafiles" in connections
|
use_mediafile_database = "mediafiles" in connections
|
||||||
|
mediafile_database_tablename = None
|
||||||
if use_mediafile_database:
|
if use_mediafile_database:
|
||||||
mediafile_database_tablename = (
|
mediafile_database_tablename = (
|
||||||
settings.MEDIAFILE_DATABASE_TABLENAME or "mediafile_data"
|
settings.MEDIAFILE_DATABASE_TABLENAME or "mediafile_data"
|
||||||
|
Loading…
Reference in New Issue
Block a user