M: Improve fullname label and fix clone defaults

This commit is contained in:
Ivan 2025-03-25 23:00:50 +03:00
parent 417583efa5
commit 37ed795ad1
9 changed files with 18 additions and 15 deletions

View File

@ -359,7 +359,7 @@ class TestLibraryViewset(EndpointTester):
data = {'title': 'Title1340', 'items': []} data = {'title': 'Title1340', 'items': []}
response = self.executeCreated(data=data, item=self.owned.pk) response = self.executeCreated(data=data, item=self.owned.pk)
self.assertEqual(response.data['title'], data['title']) self.assertEqual(response.data['title'], data['title'])
self.assertEqual(len(response.data['items']), 0) self.assertEqual(len(response.data['items']), 2)
data = {'title': 'Title1341', 'items': [x12.pk]} data = {'title': 'Title1341', 'items': [x12.pk]}
response = self.executeCreated(data=data, item=self.owned.pk) response = self.executeCreated(data=data, item=self.owned.pk)

View File

@ -168,7 +168,7 @@ class LibraryViewSet(viewsets.ModelViewSet):
with transaction.atomic(): with transaction.atomic():
clone.save() clone.save()
need_filter = 'items' in request.data need_filter = 'items' in request.data and len(request.data['items']) > 0
for cst in RSForm(item).constituents(): for cst in RSForm(item).constituents():
if not need_filter or cst.pk in request.data['items']: if not need_filter or cst.pk in request.data['items']:
cst.pk = None cst.pk = None

View File

@ -68,7 +68,7 @@ export function DlgCloneLibraryItem() {
> >
<TextInput <TextInput
id='dlg_full_name' // id='dlg_full_name' //
label='Полное название' label='Название'
{...register('title')} {...register('title')}
error={errors.title} error={errors.title}
/> />

View File

@ -137,7 +137,7 @@ export function FormCreateItem() {
<TextInput <TextInput
id='schema_title' id='schema_title'
{...register('title')} {...register('title')}
label='Полное название' label='Название'
placeholder={file && 'Загрузить из файла'} placeholder={file && 'Загрузить из файла'}
error={errors.title} error={errors.title}
/> />

View File

@ -56,7 +56,7 @@ export function TabInputOperation() {
<div className='cc-fade-in cc-column'> <div className='cc-fade-in cc-column'>
<TextInput <TextInput
id='operation_title' // id='operation_title' //
label='Полное название' label='Название'
{...register('item_data.title')} {...register('item_data.title')}
error={errors.item_data?.title} error={errors.item_data?.title}
/> />

View File

@ -21,7 +21,7 @@ export function TabSynthesisOperation() {
<div className='cc-fade-in cc-column'> <div className='cc-fade-in cc-column'>
<TextInput <TextInput
id='operation_title' id='operation_title'
label='Полное название' label='Название'
{...register('item_data.title')} {...register('item_data.title')}
error={errors.item_data?.title} error={errors.item_data?.title}
/> />

View File

@ -14,7 +14,7 @@ export function TabOperation() {
<div className='cc-fade-in cc-column'> <div className='cc-fade-in cc-column'>
<TextInput <TextInput
id='operation_title' id='operation_title'
label='Полное название' label='Названиее'
{...register('item_data.title')} {...register('item_data.title')}
error={errors.item_data?.title} error={errors.item_data?.title}
/> />

View File

@ -63,7 +63,7 @@ export function FormOSS() {
<TextInput <TextInput
id='schema_title' id='schema_title'
{...register('title')} {...register('title')}
label='Полное название' label='Название'
className='mb-3' className='mb-3'
error={errors.title} error={errors.title}
disabled={!isMutable} disabled={!isMutable}

View File

@ -41,8 +41,13 @@ export function FormRSForm() {
reset, reset,
formState: { isDirty, errors } formState: { isDirty, errors }
} = useForm<IUpdateLibraryItemDTO>({ } = useForm<IUpdateLibraryItemDTO>({
resolver: zodResolver(schemaUpdateLibraryItem), resolver: zodResolver(schemaUpdateLibraryItem)
defaultValues: { });
const visible = useWatch({ control, name: 'visible' });
const readOnly = useWatch({ control, name: 'read_only' });
useEffect(() => {
reset({
id: schema.id, id: schema.id,
item_type: LibraryItemType.RSFORM, item_type: LibraryItemType.RSFORM,
title: schema.title, title: schema.title,
@ -50,10 +55,8 @@ export function FormRSForm() {
description: schema.description, description: schema.description,
visible: schema.visible, visible: schema.visible,
read_only: schema.read_only read_only: schema.read_only
}
}); });
const visible = useWatch({ control, name: 'visible' }); }, [schema, reset]);
const readOnly = useWatch({ control, name: 'read_only' });
useEffect(() => { useEffect(() => {
setIsModified(isDirty); setIsModified(isDirty);
@ -76,7 +79,7 @@ export function FormRSForm() {
<TextInput <TextInput
id='schema_title' id='schema_title'
{...register('title')} {...register('title')}
label='Полное название' label='Название'
className='mb-3' className='mb-3'
error={errors.title} error={errors.title}
disabled={!isContentEditable} disabled={!isContentEditable}