Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UIIN-2546/UIIN-2548/UIIN-2549/UIIN-2556/UIIN-2557 Number generator implementation #2408

Closed
wants to merge 28 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
206be77
feat: Number Generator (Settings)
EthanFreestone Mar 3, 2023
e939a79
feat: Wired up settings to ItemForm
EthanFreestone Mar 10, 2023
575f064
feat: ItemForm
EthanFreestone Mar 10, 2023
f7e643a
refactor: Tweaks
EthanFreestone Mar 23, 2023
5f33597
chore: Translation
EthanFreestone Mar 23, 2023
23f0456
feat: Safety
EthanFreestone Mar 23, 2023
8e76340
style: Grey out disabled radio buttons
EthanFreestone Mar 23, 2023
e9024df
chore: Slight tweaks
EthanFreestone Apr 21, 2023
e5cebd6
feat: Styling tweaks
EthanFreestone May 11, 2023
685ebae
style: Padding
EthanFreestone May 11, 2023
e1a9baa
Merge branch 'master' of github.com:folio-org/ui-inventory into feat/…
EthanFreestone Jun 20, 2023
9e202b8
build: OptionalOkapiInterfaces
EthanFreestone Jun 20, 2023
391442e
Merge branch 'master' of github.com:folio-org/ui-inventory into feat/…
EthanFreestone Aug 7, 2023
657d272
Merge branch 'master' of github.com:folio-org/ui-inventory into feat/…
EthanFreestone Aug 21, 2023
3592bab
feat: Holdings
EthanFreestone Sep 1, 2023
beec654
Merge branch 'master' of github.com:folio-org/ui-inventory into feat/…
EthanFreestone Sep 1, 2023
65fbd3e
Merge branch 'master' of github.com:folio-org/ui-inventory into feat/…
EthanFreestone Sep 13, 2023
d2728a4
chore: Button UX
EthanFreestone Sep 29, 2023
0bf7177
Merge branch 'master' of github.com:folio-org/ui-inventory into feat/…
EthanFreestone Sep 29, 2023
2702209
Merge branch 'master' of github.com:folio-org/ui-inventory into feat/…
EthanFreestone Oct 23, 2023
00644eb
Merge branch 'master' of github.com:folio-org/ui-inventory into feat/…
EthanFreestone Dec 8, 2023
2f1cab6
refactor: Settings order
EthanFreestone Mar 1, 2024
a1320ae
Merge branch 'master' of github.com:folio-org/ui-inventory into feat/…
EthanFreestone Mar 1, 2024
1eb29eb
chore: Linting and test fixes
EthanFreestone Mar 1, 2024
8381957
test: More tests and mocks to try and push PR through
EthanFreestone Mar 1, 2024
29c9b5c
Merge branch 'master' of github.com:folio-org/ui-inventory into feat/…
EthanFreestone Mar 7, 2024
ea9eccf
build: Change service interaction dependency to ^3.0.0
EthanFreestone Mar 28, 2024
b0a16b6
chore: Removed "Learn more" button
EthanFreestone Jun 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat: Holdings
Added call number generator button to Holdings form, tweaks to settings
EthanFreestone committed Sep 1, 2023
commit 3592bab20d656d7eaa76e004c26bc7da5d878e3b
4 changes: 4 additions & 0 deletions src/Holding/CreateHolding/CreateHolding.js
Original file line number Diff line number Diff line change
@@ -19,6 +19,7 @@ import {
} from '../../common/hooks';
import useCallout from '../../hooks/useCallout';
import HoldingsForm from '../../edit/holdings/HoldingsForm';
import { useConfigurationQuery } from '../../hooks';

const CreateHolding = ({
history,
@@ -29,6 +30,8 @@ const CreateHolding = ({
mutator,
}) => {
const callout = useCallout();
const { configs } = useConfigurationQuery('number_generator');
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move number_generator to constants, please, I see this is used in several places.


const { instance, isLoading: isInstanceLoading } = useInstance(instanceId, mutator.holdingInstance);
const sourceId = referenceData.holdingsSourcesByName?.FOLIO?.id;

@@ -62,6 +65,7 @@ const CreateHolding = ({

return (
<HoldingsForm
configs={configs}
form={instance.id}
id={instance.id}
initialValues={initialValues}
4 changes: 4 additions & 0 deletions src/Holding/EditHolding/EditHolding.js
Original file line number Diff line number Diff line change
@@ -12,6 +12,7 @@ import {
} from '../../common/hooks';
import {
useCallout,
useConfigurationQuery,
useHoldingItemsQuery,
useHoldingMutation,
} from '../../hooks';
@@ -28,6 +29,8 @@ const EditHolding = ({
referenceTables,
}) => {
const callout = useCallout();
const { configs } = useConfigurationQuery('number_generator');

const { search, state: locationState } = location;
const stripes = useStripes();
const [httpError, setHttpError] = useState();
@@ -82,6 +85,7 @@ const EditHolding = ({
return (
<>
<HoldingsForm
configs={configs}
httpError={httpError}
location={location}
initialValues={holding}
51 changes: 42 additions & 9 deletions src/edit/holdings/HoldingsForm.js
Original file line number Diff line number Diff line change
@@ -33,6 +33,8 @@ import { ViewMetaData } from '@folio/stripes/smart-components';

import stripesFinalForm from '@folio/stripes/final-form';

import { NumberGeneratorModalButton } from '@folio/service-interaction';

import OptimisticLockingBanner from '../../components/OptimisticLockingBanner';
import ElectronicAccessFields from '../electronicAccessFields';
import { handleKeyCommand, validateOptionalField } from '../../utils';
@@ -115,6 +117,9 @@ class HoldingsForm extends React.Component {
}),
goTo: PropTypes.func.isRequired,
httpError: PropTypes.object,
configs: PropTypes.shape({
callNumberGeneratorSettingHoldings: PropTypes.string
})
};

static defaultProps = {
@@ -189,6 +194,8 @@ class HoldingsForm extends React.Component {

render() {
const {
configs,
form: { change },
onCancel,
initialValues,
instance,
@@ -225,6 +232,10 @@ class HoldingsForm extends React.Component {
}),
) : [];

const {
callNumberGeneratorSettingHoldings,
} = configs;

const holdingsTypeOptions = referenceTables.holdingsTypes ? referenceTables.holdingsTypes.map(
it => ({
label: it.name,
@@ -538,15 +549,37 @@ class HoldingsForm extends React.Component {
/>
</Col>
<Col sm={2}>
<Field
label={<FormattedMessage id="ui-inventory.callNumber" />}
name="callNumber"
id="additem_callnumber"
component={TextArea}
rows={1}
fullWidth
disabled={this.isFieldBlocked('callNumber')}
/>
<Row>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So currently Row is a child for Col and then there is another nested Col, is that how it was intended?

<Field
label={<FormattedMessage id="ui-inventory.callNumber" />}
name="callNumber"
id="additem_callnumber"
component={TextArea}
rows={1}
fullWidth
disabled={this.isFieldBlocked('callNumber') || callNumberGeneratorSettingHoldings === 'useGenerator'}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move useGenerator string to constants, please

/>
</Row>
<Row>
{(
callNumberGeneratorSettingHoldings === 'useGenerator' ||
callNumberGeneratorSettingHoldings === 'useBoth'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And useBoth also

) &&
<Col xs={12}>
<NumberGeneratorModalButton
buttonLabel={<FormattedMessage id="ui-inventory.numberGenerator.generateCallNumber" />}
callback={(generated) => change('callNumber', generated)}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move this to a separate func

fullWidth
id="inventoryCallNumber"
generateButtonLabel={<FormattedMessage id="ui-inventory.numberGenerator.generateCallNumber" />}
generator="inventory_callNumber"
modalProps={{
label: <FormattedMessage id="ui-inventory.numberGenerator.callNumberGenerator" />
}}
/>
</Col>
}
</Row>
</Col>
<Col sm={2}>
<Field
30 changes: 15 additions & 15 deletions src/edit/items/getNumberGeneratorModals.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { FormattedMessage } from 'react-intl';
import { Layout, MessageBanner } from '@folio/stripes-components';
import { Layout } from '@folio/stripes-components';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
import { Layout } from '@folio/stripes-components';
import { Layout } from '@folio/stripes/components';

import { NumberGeneratorModalButton } from '@folio/service-interaction';

// Moving this to a separate utility method so we can declutter this work
@@ -8,27 +8,27 @@ import { NumberGeneratorModalButton } from '@folio/service-interaction';
// `useForm` and `useConfigurationQuery` to get these parameters.
const getNumberGeneratorModals = (configs, change) => {
const {
accessionNumberGeneratorSetting,
barcodeGeneratorSetting,
callNumberGeneratorSetting,
useAccessionNumberForCallNumber
accessionNumberGeneratorSettingItems,
barcodeGeneratorSettingItems,
callNumberGeneratorSettingItems,
useAccessionNumberForCallNumberItems
} = configs;

const accessionNumberGeneratorActive = accessionNumberGeneratorSetting === 'useGenerator' ||
accessionNumberGeneratorSetting === 'useBoth';
const accessionNumberGeneratorActive = accessionNumberGeneratorSettingItems === 'useGenerator' ||
accessionNumberGeneratorSettingItems === 'useBoth';

const barcodeGeneratorActive = barcodeGeneratorSetting === 'useGenerator' ||
barcodeGeneratorSetting === 'useBoth';
const barcodeGeneratorActive = barcodeGeneratorSettingItems === 'useGenerator' ||
barcodeGeneratorSettingItems === 'useBoth';

const callNumberGeneratorActive = callNumberGeneratorSetting === 'useGenerator' ||
callNumberGeneratorSetting === 'useBoth';
const callNumberGeneratorActive = callNumberGeneratorSettingItems === 'useGenerator' ||
callNumberGeneratorSettingItems === 'useBoth';

const disableAccessionNumberField = accessionNumberGeneratorSetting === 'useGenerator';
const disableBarcodeField = barcodeGeneratorSetting === 'useGenerator';
const disableCallNumberField = callNumberGeneratorSetting === 'useGenerator';
const disableAccessionNumberField = accessionNumberGeneratorSettingItems === 'useGenerator';
const disableBarcodeField = barcodeGeneratorSettingItems === 'useGenerator';
const disableCallNumberField = callNumberGeneratorSettingItems === 'useGenerator';

// This is to ensure that if the field somehow _did_ get set when it's not supposed to, we ignore it
const useJointModal = useAccessionNumberForCallNumber && accessionNumberGeneratorActive && callNumberGeneratorActive;
const useJointModal = useAccessionNumberForCallNumberItems && accessionNumberGeneratorActive && callNumberGeneratorActive;

// Don't worry about calling logic in here, do that in renderAccession... and renderCall...
const renderJointNumberGenerator = () => (
398 changes: 240 additions & 158 deletions src/settings/NumberGeneratorOptions/NumberGeneratorOptionsForm.js
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, cover this component with unit tests

Original file line number Diff line number Diff line change
@@ -1,16 +1,34 @@
import { useRef } from 'react';

import { FormattedMessage } from 'react-intl';
import { Field, useFormState } from 'react-final-form';

import { Button, Checkbox, Col, InfoPopover, Label, Layout, MessageBanner, RadioButton, Row } from '@folio/stripes/components';
import {
Accordion,
AccordionSet,
AccordionStatus,
Button,
Checkbox,
Col,
ExpandAllButton,
InfoPopover,
Label,
Layout,
MessageBanner,
RadioButton,
Row,
} from '@folio/stripes/components';

import css from './NumberGeneratorOptions.css';

const NumberGeneratorOptionsForm = () => {
const accordionStatusRef = useRef();
const { values } = useFormState();
const disableUseForBothFields =
(values?.accessionNumberGeneratorSetting ?? 'useTextField') === 'useTextField' ||
(values?.callNumberGeneratorSetting ?? 'useTextField') === 'useTextField';
(values?.accessionNumberGeneratorSettingItems ?? 'useTextField') === 'useTextField' ||
(values?.callNumberGeneratorSettingItems ?? 'useTextField') === 'useTextField';

const disableAccessionNumberAndCallNumberOffOptions = !!values?.useAccessionNumberForCallNumber;
const disableAccessionNumberAndCallNumberOffOptions = !!values?.useAccessionNumberForCallNumberItems;

return (
<>
@@ -23,165 +41,229 @@ const NumberGeneratorOptionsForm = () => {
</div>
</Col>
</Row>
<Row>
<Col xs={12}>
<div className={css.marginBottomGutter}>
<Label>
<FormattedMessage id="ui-inventory.barcode" />
</Label>
<Field
component={RadioButton}
id="useTextFieldBarcode"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useTextFieldForBarcode" />}
name="barcodeGeneratorSetting"
type="radio"
value="useTextField"
/>
<Field
component={RadioButton}
id="useBothBarcode"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useBothForBarcode" />}
name="barcodeGeneratorSetting"
type="radio"
value="useBoth"
/>
<Field
component={RadioButton}
id="useGeneratorBarcode"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useGeneratorForBarcode" />}
name="barcodeGeneratorSetting"
type="radio"
value="useGenerator"
/>
</div>
</Col>
</Row>
<Row>
<Col xs={12}>
<div className={css.marginBottomGutter}>
<Label>
<FormattedMessage id="ui-inventory.accessionNumber" />
</Label>
<Field
component={RadioButton}
disabled={disableAccessionNumberAndCallNumberOffOptions}
id="useTextFieldAccessionNumber"
label={
<div className={disableAccessionNumberAndCallNumberOffOptions ? css.greyLabel : null}>
<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useTextFieldForAccessionNumber" />
<AccordionStatus ref={accordionStatusRef}>
<Row end="xs">
<Col xs>
<ExpandAllButton />
</Col>
</Row>
<AccordionSet>
<Accordion
label={
<h3>
<FormattedMessage id="ui-inventory.items" />
</h3>
}
id="number-generator-options-items"
>
<Row>
<Col xs={12}>
<div className={css.marginBottomGutter}>
<Label>
<FormattedMessage id="ui-inventory.barcode" />
</Label>
<Field
component={RadioButton}
id="useTextFieldBarcodeIt"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useTextFieldForBarcode" />}
name="barcodeGeneratorSettingItems"
type="radio"
value="useTextField"
/>
<Field
component={RadioButton}
id="useBothBarcodeItems"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useBothForBarcode" />}
name="barcodeGeneratorSettingItems"
type="radio"
value="useBoth"
/>
<Field
component={RadioButton}
id="useGeneratorBarcodeItems"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useGeneratorForBarcode" />}
name="barcodeGeneratorSettingItems"
type="radio"
value="useGenerator"
/>
</div>
}
name="accessionNumberGeneratorSetting"
type="radio"
value="useTextField"
/>
<Field
component={RadioButton}
id="useBothAccessionNumber"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useBothForAccessionNumber" />}
name="accessionNumberGeneratorSetting"
type="radio"
value="useBoth"
/>
<Field
component={RadioButton}
id="useGeneratorAccessionNumber"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useGeneratorForAccessionNumber" />}
name="accessionNumberGeneratorSetting"
type="radio"
value="useGenerator"
/>
</div>
</Col>
</Row>
<Row>
<Col xs={12}>
<div className={css.marginBottomGutter}>
<Label>
<FormattedMessage id="ui-inventory.callNumber" />
</Label>
<Field
className={disableAccessionNumberAndCallNumberOffOptions ? css.greyLabel : null}
component={RadioButton}
disabled={disableAccessionNumberAndCallNumberOffOptions}
id="useTextFieldCallNumber"
label={
<div className={disableAccessionNumberAndCallNumberOffOptions ? css.greyLabel : null}>
<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useTextFieldForCallNumber" />
</Col>
</Row>
<Row>
<Col xs={12}>
<div className={css.marginBottomGutter}>
<Label>
<FormattedMessage id="ui-inventory.accessionNumber" />
</Label>
<Field
component={RadioButton}
disabled={disableAccessionNumberAndCallNumberOffOptions}
id="useTextFieldAccessionNumberItems"
label={
<div className={disableAccessionNumberAndCallNumberOffOptions ? css.greyLabel : null}>
<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useTextFieldForAccessionNumber" />
</div>
}
name="accessionNumberGeneratorSettingItems"
type="radio"
value="useTextField"
/>
<Field
component={RadioButton}
id="useBothAccessionNumberItems"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useBothForAccessionNumber" />}
name="accessionNumberGeneratorSettingItems"
type="radio"
value="useBoth"
/>
<Field
component={RadioButton}
id="useGeneratorAccessionNumberItems"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useGeneratorForAccessionNumber" />}
name="accessionNumberGeneratorSettingItems"
type="radio"
value="useGenerator"
/>
</div>
}
name="callNumberGeneratorSetting"
type="radio"
value="useTextField"
/>
<Field
component={RadioButton}
id="useBothCallNumber"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useBothForCallNumber" />}
name="callNumberGeneratorSetting"
type="radio"
value="useBoth"
/>
<Field
component={RadioButton}
id="useGeneratorCallNumber"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useGeneratorForCallNumber" />}
name="callNumberGeneratorSetting"
type="radio"
value="useGenerator"
/>
</div>
</Col>
</Row>
<Row>
<Col xs={12}>
<div className={css.marginBottomGutter}>
<Field
disabled={disableUseForBothFields}
component={Checkbox}
label={
<>
<div className={disableUseForBothFields ? css.greyLabel : null}>
<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useAccessionNumberForCallNumber" />
</div>
<InfoPopover
content={
<Layout className="display-flex flex-direction-column flex-align-items-center flex-wrap--wrap">
<Layout className="padding-bottom-gutter display-flex flex-direction-column flex-align-items-center">
<FormattedMessage
id="ui-inventory.settings.numberGeneratorOptions.useAccessionNumberForCallNumberInfo"
values={{
linebreak: <br />
}}
/>
</Layout>
<Layout className="display-flex flex-direction-column flex-align-items-center">
<Button
allowAnchorClick
buttonStyle="primary"
href="https://wiki.folio.org/display/FOLIOtips/Number+generator"
marginBottom0
>
<FormattedMessage id="ui-inventory.settings.learnMore" />
</Button>
</Layout>
</Layout>
</Col>
</Row>
<Row>
<Col xs={12}>
<div className={css.marginBottomGutter}>
<Label>
<FormattedMessage id="ui-inventory.callNumber" />
</Label>
<Field
className={disableAccessionNumberAndCallNumberOffOptions ? css.greyLabel : null}
component={RadioButton}
disabled={disableAccessionNumberAndCallNumberOffOptions}
id="useTextFieldCallNumberItems"
label={
<div className={disableAccessionNumberAndCallNumberOffOptions ? css.greyLabel : null}>
<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useTextFieldForCallNumber" />
</div>
}
name="callNumberGeneratorSettingItems"
type="radio"
value="useTextField"
/>
<Field
component={RadioButton}
id="useBothCallNumberItems"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useBothForCallNumber" />}
name="callNumberGeneratorSettingItems"
type="radio"
value="useBoth"
/>
<Field
component={RadioButton}
id="useGeneratorCallNumberItems"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useGeneratorForCallNumber" />}
name="callNumberGeneratorSettingItems"
type="radio"
value="useGenerator"
/>
</div>
</Col>
</Row>
<Row>
<Col xs={12}>
<div className={css.marginBottomGutter}>
<Field
disabled={disableUseForBothFields}
component={Checkbox}
label={
<>
<div className={disableUseForBothFields ? css.greyLabel : null}>
<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useAccessionNumberForCallNumber" />
</div>
<InfoPopover
content={
<Layout className="display-flex flex-direction-column flex-align-items-center flex-wrap--wrap">
<Layout className="padding-bottom-gutter display-flex flex-direction-column flex-align-items-center">
<FormattedMessage
id="ui-inventory.settings.numberGeneratorOptions.useAccessionNumberForCallNumberInfo"
values={{
linebreak: <br />
}}
/>
</Layout>
<Layout className="display-flex flex-direction-column flex-align-items-center">
<Button
allowAnchorClick
buttonStyle="primary"
href="https://wiki.folio.org/display/FOLIOtips/Number+generator"
marginBottom0
>
<FormattedMessage id="ui-inventory.settings.learnMore" />
</Button>
</Layout>
</Layout>
}
iconSize="medium"
/>
</>
}
iconSize="medium"
name="useAccessionNumberForCallNumberItems"
type="checkbox"
/>
</>
}
name="useAccessionNumberForCallNumber"
type="checkbox"
/>
{disableUseForBothFields &&
<MessageBanner type="warning">
<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useAccessionNumberForCallNumberWarning" />
</MessageBanner>
{disableUseForBothFields &&
<MessageBanner type="warning">
<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useAccessionNumberForCallNumberWarning" />
</MessageBanner>
}
</div>
</Col>
</Row>
</Accordion>
<Accordion
label={
<h3>
<FormattedMessage id="ui-inventory.holdings" />
</h3>
}
</div>
</Col>
</Row>
id="number-generator-options-holdings"
>
<Row>
<Col xs={12}>
<div className={css.marginBottomGutter}>
<Label>
<FormattedMessage id="ui-inventory.callNumber" />
</Label>
<Field
component={RadioButton}
id="useTextFieldCallNumberHoldings"
label={
<div className={disableAccessionNumberAndCallNumberOffOptions ? css.greyLabel : null}>
<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useTextFieldForCallNumber" />
</div>
}
name="callNumberGeneratorSettingHoldings"
type="radio"
value="useTextField"
/>
<Field
component={RadioButton}
id="useBothCallNumberHoldings"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useBothForCallNumber" />}
name="callNumberGeneratorSettingHoldings"
type="radio"
value="useBoth"
/>
<Field
component={RadioButton}
id="useGeneratorCallNumberHoldings"
label={<FormattedMessage id="ui-inventory.settings.numberGeneratorOptions.useGeneratorForCallNumber" />}
name="callNumberGeneratorSettingHoldings"
type="radio"
value="useGenerator"
/>
</div>
</Col>
</Row>
</Accordion>
</AccordionSet>
</AccordionStatus>
</>
);
};