How to: create a list with both predefined options and free input

Building the free input option

So far, we have created a clause that works perfectly with our 3 predefined options. However, we wanted to give an additional option to provide additional CPs as bullets in this same list.

Can we use the existing datafield?

One obvious solution would be to use the existing datafield (#loan-agreement^conditions-precedent) to provide for additional input. This would be implemented be just adding a reference to that datafield as the final bullet, i.e.:

* AND

* {"corporate-docs" in #loan-agreement^conditions-precedent: a resolution of the board of directors of #borrower approving the transactions contemplated by #finance-document} 

* {"security-docs" in #loan-agreement^conditions-precedent: certified <copies: security-document> of <#security-document>, validly executed by #borrower} 

* {"legal-opinion" in #loan-agreement^conditions-precedent: a legal opinion from #borrower's legal counsel confirming that #borrower validly entered into #finance-document and that <#finance-document> <are: finance-document> binding upon #borrower}

* #loan-agreement^conditions-precedent

Implement this in your clause and save it. As you input values into your datafield (including the predefines), it will be immediately clear why this doesn’t work. The final bullet contains all inputs to the datafield, including the predefines that already triggered the conditional bullets above.

Using a separate datafield

In view of the above, we have to use a separate datafield. Let’s create one (list of texts type) named conditions-precedent-free. We won’t be adding any predefines to this datafield.

Should we now just add this datafield as a separate, final bullet? No. A similar problem would occur: the final bullet would just contain a comma-separated list instead of adding separate bullets.

Here we can make use of another enumeration option that we listed initially: the @bullets special function. This function make a bulleted list of the inputs of the datafield that it contains. So as our final bullet, we add: * @bullets(#loan-agreement^conditions-precedent-free). Our final clause grammar looks like this:

1. #Lender's obligations under #°loan-agreement are subject to the fulfilment of the following conditions precedent: 

* AND

* {"corporate-docs" in #loan-agreement^conditions-precedent: a resolution of the board of directors of #borrower approving the transactions contemplated by #finance-document} 

* {"security-docs" in #loan-agreement^conditions-precedent: certified <copies: security-document> of <#security-document>, validly executed by #borrower} 

* {"legal-opinion" in #loan-agreement^conditions-precedent: a legal opinion from #borrower's legal counsel confirming that #borrower validly entered into #finance-document and that <#finance-document> <are: finance-document> binding upon #borrower}

* @bullets(#loan-agreement^conditions-precedent-free)

Any inputs added to #loan-agreement^conditions-precedent-free will be added as separate bullets on the same level as our predefined bullets.

Why did we not use {AND! | … | …}?

As discussed in the first part to this tutorial, one of the options for creating bulleted lists is using {AND! | alpha | beta} grammar, with alpha and beta being forced into separate bullets.

This option will work for our predefined options, where we would include the CPs subject to their relevant conditions as elements, e.g.: {AND! | {"corporate-docs" in #loan-agreement^conditions-precedent: a resolution of the board of directors of #borrower approving the transactions contemplated by #finance-document} | ...}.

However, we would not be able to add our free input option. If we include @bullets(#loan-agreement^conditions-precedent-free) as the final element, ClauseBase will include the inputs to this datafield as a separate bulleted list on the next level, i.e. as sub-bullets to the final element of the original list. This is obviously not how we want to implement the additional CPs.

We also did not write {AND! | #loan-agreement^conditions-precedent-free} to implement the free input option. Consider for a moment what that would look like.

Using the {AND | … | …} grammar, each element must be separated by a pipe symbol |. Therefore ClauseBase would interpret the inputs to the list of texts datafield as one single bullet. The result would be one bullet with the inputs to the datafield included as a comma-separated list.


We hope this How To will help you to make similar lists in the future! Be sure to check out our other How To’s.

Was this article helpful?
Dislike
How to: create advanced party introduction clauses
How to: make automatically numbered annexes or schedules