<?xml version="1.0"?>
<filterdescription>
    <partset>
        <part name="summary">
            <_title>Summary</_title>
            <input type="optionlist" name="summary-type">
                <option value="contains">
                    <_title>contains</_title>
                    <code>(contains? "summary" ${summary})</code>
                </option>
                <option value="not contains">
                    <_title>does not contain</_title>
                    <code>(not (contains? "summary" ${summary}))</code>
                </option>
            </input>
            <input type="string" name="summary"/>
        </part>

        <part name="description">
            <_title>Description</_title>
            <input type="optionlist" name="description-type">
                <option value="contains">
                    <_title>contains</_title>
                    <code>(contains? "description" ${description})</code>
                </option>
                <option value="not contains">
                    <_title>does not contain</_title>
                    <code>(not (contains? "description" ${description}))</code>
                </option>
            </input>
            <input type="string" name="description"/>
        </part>

	<part name="name2">
	     <_title>Organizer</_title>
	      <input type="optionlist" name="name-type">
		       <option value="contains">
		           <_title>contains</_title>
		           <code>(contains? "organizer" ${name})</code>
		       </option>
		      <option value="not contains">
		           <_title>does not contain</_title>
		          <code>(not (contains? "organizer" ${name}))</code>
		      </option>
	     </input>
	     <input type="string" name="name"/>
	</part>

	<part name="name3">
	     <_title>Attendee</_title>
	     <input type="optionlist" name="name-type">
		       <option value="contains">
			   <_title>contains</_title>
		           <code>(contains? "attendee" ${name})</code>
		      </option>
		      <option value="not contains">
			   <_title>does not contain</_title>
		           <code>(not (contains? "attendee" ${name}))</code>
		      </option>
	     </input>
	     <input type="string" name="name"/>
	</part>

        <part name="anyfield">
            <_title>Any Field</_title>
            <input type="optionlist" name="anyfield-type">
                <option value="contains">
                    <_title>contains</_title>
                    <code>(contains? "any" ${anyfield})</code>
                </option>
                <option value="not contains">
                    <_title>does not contain</_title>
                    <code>(not (contains? "any" ${anyfield}))</code>
                </option>
            </input>
            <input type="string" name="anyfield"/>
        </part>

        <part name="status">
            <_title>Status</_title>
            <input type="optionlist" name="status-type">
                <option value="is">
                    <_title>is</_title>
                    <code>(contains? "status" ${status})</code>
                </option>
                <option value="is not">
                    <_title>is not</_title>
                    <code>(not(contains? "status" ${status}))</code>
                </option>
            </input>
            <input type="optionlist" name="status">
                <option value="NOT STARTED">
                    <_title>Not Started</_title>
                </option>
                <option value="IN PROGRESS">
                    <_title>In progress</_title>
                </option>
                <option value="NEEDS ACTION">
                    <_title>Needs Action</_title>
                </option>
                <option value="COMPLETED">
                    <_title>Completed</_title>
                </option>
                <option value="CANCELLED">
                    <_title>Cancelled</_title>
                </option>

            </input>
        </part>

        <part name="attachments">
            <_title>Attachments</_title>
            <input type="optionlist" name="match-type">
                <option value="exist">
                    <_title>Exist</_title>
                    <code>
                        (has-attachments?)
                    </code>
                </option>
                <option value="not exist">
                    <_title>Do Not Exist</_title>
                    <code>
                        (not(has-attachments?))
                    </code>
                </option>
            </input>
        </part>

        <part name="priority">
            <_title>Priority</_title>
            <input type="optionlist" name="priority-type">
                <option value="is">
                    <_title>is</_title>
                    <code>(contains? "priority" ${priority})</code>
                </option>
                <option value="is not">
                    <_title>is not</_title>
                    <code>(not(contains? "priority" ${priority}))</code>
                </option>
            </input>
            <input type="optionlist" name="priority">
                <option value="HIGH">
                    <_title>High</_title>
                </option>
                <option value="NORMAL">
                    <_title>Normal</_title>
                </option>
                <option value="LOW">
                    <_title>Low</_title>
                </option>
                <option value="UNDEFINED">
                    <_title>Undefined</_title>
                </option>

            </input>
        </part>

        <part name="category">
            <_title>Category</_title>
            <input type="optionlist" name="category-type">
                <option value="is">
                    <_title>is</_title>
                    <code>(has-categories? ${category})</code>
                </option>
		<option value="is not">
                    <_title>is not</_title>
                    <code>(not(has-categories? ${category}))</code>
                </option>
            </input>
            <input type="optionlist" name="category">
		<dynamic func="e_util_get_category_filter_options"/>
            </input>
        </part>

        <part name="completed">
            <_title>% Completed</_title>
            <input type="optionlist" name="completed-type">
                <option value="is">
                    <_title>is</_title>
                    <code>
                        (= (percent-complete?) ${versus} )
                    </code>
                </option>
                <option value="is-not">
                    <_title>is not</_title>
                    <code>
                        (not(= (percent-complete?) ${versus} ))
                    </code>
                </option>
                <option value="greater-than">
                    <_title>is greater than</_title>
                    <code>
                        (&gt; (percent-complete?) ${versus} )
                    </code>
                </option>
                <option value="less-than">
                    <_title>is less than</_title>
                    <code>
                        (&lt; (percent-complete?) ${versus} )
                    </code>
                </option>
            </input>
            <input type="completedpercent" name="versus"/>
        </part>

        <part name="currentstate">
            <_title>Current State</_title>
            <input type="optionlist" name="currentstate-type">
                <option value="is-overdue">
                    <_title>is Overdue</_title>
                    <code>(and (due-in-time-range? (make-time "19700101T000000Z") (time-day-end time-now)) (not (is-completed?)))</code>
                </option>
                <option value="is-scheduled">
                    <_title>is Scheduled</_title>
                    <code>(has-due?)</code>
                </option>
                <option value="is-not-scheduled">
                    <_title>is not Scheduled</_title>
                    <code>(not (has-due?))</code>
                </option>
            </input>
        </part>

        <part name="duein">
            <_title>Due In</_title>
            <input type="optionlist" name="duein-type">
                <option value="nextdays">
                    <_title>Next Days</_title>
                    <code>(due-in-time-range? (time-day-end time-now) (time-add-day (time-day-end time-now) ${value}))</code>
                </option>
                <option value="prevdays">
                    <_title>Previous Days</_title>
                    <code>(due-in-time-range? (time-add-day (time-day-begin time-now) (- 0 ${value})) (time-day-begin time-now))</code>
                </option>
            </input>
            <input type="integer" name="value"/>
        </part>

        <part name="sexp">
            <_title>Expression</_title>
            <input type="code" name="code"/>
        </part>
    </partset>
    <ruleset>
        <rule grouping="any" source="demand">
            <_title>Summary Contains</_title>
	 <partset>
		<part name="summary">
	          <value name="summary-type" type="option" value="contains"/>
		  <value name="summary" type="string"/>
		</part>
         </partset>

            <sources/>
        </rule>

        <rule grouping="any" source="demand">
            <_title>Description Contains</_title>
	<partset>
	        <part name="description">
		  <value name="description-type" type="option" value="contains"/>
	          <value name="description" type="string"/>
		</part>
       </partset>

            <sources/>
        </rule>

        <rule grouping="any" source="demand">
            <_title>Any field contains</_title>
	<partset>
		<part name="anyfield">
		  <value name="anyfield-type" type="option" value="contains"/>
	          <value name="anyfield" type="string"/>
		</part>
        </partset>

            <sources/>
        </rule>
    </ruleset>

</filterdescription>
