Skip to content

Commit 68c3653

Browse files
committed
WIP move schema default creation to celery task
1 parent 64f8ad2 commit 68c3653

File tree

3 files changed

+35
-13
lines changed

3 files changed

+35
-13
lines changed

specifyweb/backend/setup_tool/api.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from specifyweb.specify.models import Spversion
88
from specifyweb.specify.models_utils.models_by_table_id import model_names_by_table_id
99
from specifyweb.specify import models
10+
from specifyweb.backend.setup_tool.schema_defaults import apply_schema_defaults
1011

1112
from django.db.models import Max
1213
from django.db import transaction
@@ -190,11 +191,7 @@ def create_discipline(request, direct=False):
190191

191192
# During setup, create Splocalecontainers for all datamodel tables
192193
if not division_url:
193-
for model_name in model_names_by_table_id.values():
194-
update_table_schema_config_with_defaults(
195-
table_name=model_name,
196-
discipline_id=new_discipline.id
197-
)
194+
apply_schema_defaults(new_discipline)
198195

199196
return JsonResponse({"success": True, "discipline_id": new_discipline.id, "setup_progress": get_setup_progress()}, status=200)
200197

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
2+
from specifyweb.specify.models_utils.models_by_table_id import model_names_by_table_id
3+
from specifyweb.specify.migration_utils.update_schema_config import update_table_schema_config_with_defaults
4+
from specifyweb.celery_tasks import LogErrorsTask, app
5+
6+
from uuid import uuid4
7+
import logging
8+
logger = logging.getLogger(__name__)
9+
10+
def apply_schema_defaults(discipline):
11+
task_id = str(uuid4())
12+
13+
args = [discipline.id]
14+
15+
task = apply_schema_defaults_task.apply_async(args, task_id=task_id)
16+
17+
return task.id
18+
19+
20+
@app.task(bind=True)
21+
def apply_schema_defaults_task(self, discipline_id):
22+
for model_name in model_names_by_table_id.values():
23+
logger.debug(f'applying defaults for {model_name}')
24+
update_table_schema_config_with_defaults(
25+
table_name=model_name,
26+
discipline_id=discipline_id
27+
)

specifyweb/frontend/js_src/lib/components/SetupTool/setupResources.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,23 +65,21 @@ export const resources: RA<ResourceConfig> = [
6565
fields: [
6666
{
6767
name: 'name',
68-
label: 'Name',
69-
description:
70-
'The full, official name of the institution (e.g., "University of Kansas Biodiversity Institute").',
68+
label: setupToolText.institutionName(),
69+
description: setupToolText.institutionNameDescription(),
7170
required: true,
7271
},
7372
{
7473
name: 'code',
75-
label: 'Code',
76-
description:
77-
'A short, unique code or acronym for the institution (e.g., "KUBI").',
74+
label: setupToolText.institutionCode(),
75+
description: setupToolText.institutionCodeDescription(),
7876
required: true,
7977
},
8078
{
8179
name: 'address',
82-
label: 'Address',
80+
label: setupToolText.institutionAddress(),
8381
type: 'object',
84-
description: 'The address of the institution. Optional.',
82+
description: setupToolText.institutionAddressDescription(),
8583
required: true,
8684
fields: [
8785
{

0 commit comments

Comments
 (0)