Repeat in the same form like more forms

Good evening everyone. Is there a way to repeat an input form n times by creating an equal-level record each time? Let me explain. If I am at one point and I see 2 species of plants I would like to be able to mark the position of both by keeping in two different lines but forwarding only one form. Maybe at each insertion ask .. do you want to add another species? In short, I would like to get the same result of filling out two forms at once. Is it possible? Thank you

Good evening @giulia_tomasi ,

I am not sure to understand what you want to achieve :
You are in a location, you see two or more species and then you want to fill all your questions for each of the species ?

what I want to do is what happens in this form (see FORM_CFTCFV.xlsx). I'm just not satisfied with the result (see FORM_CFTCFV_2023_08_27_19_37_43_196488) , especially when it comes to viewing the data on the map. Can you think of a better solution?
I also have a second question:
there are many species in choices and using autocomplete in appearance I notice that with ODK collect it works fine but it doesn't work on GIC collect. For another flora flora census project I would need a super compatible form there a more accepted. It's possible a quick search solution? I also tried to make a separate csv file using the search function reading similar topics in the forum but
FORM_CFTCFV_2023_08_27_19_37_43_196488.xlsx (9.5 KB)
FORM_CFTCFV.xlsx (153.5 KB) (66.9 KB)
I can't do it (see zip).
thank you so much

Hi @giulia_tomasi

Could you provide more details, please? What is the data/content difference for you if an enumerator registers one species per form or multiples with the same parent form?

The result is the normal structure for repeats. If you join them with the parent case, you are able to see which repeats belong to which parent and to see the cases which have multiple species for the same parent.

Yes I agree. What doesn't satisfy me is that a module includes multiple repetitions of species, in the map of the project I only see 1 point (the first) and not as many as the number of repetitions, if in the meantime I move and continue to mark species through repetition of the form. The only way is to download the data and use the repetition sheet to create points on a map. I hope I explained myself better. However, I don't know if there is a solution.

I will have a look at your form tomorow...
But you should have a question in your repeat that get the value of the geom filled out of the repeat ?

Hi @giulia_tomasi

I changed the repeat's logical, at each location I iterate over multiple species.
In this "species" repeat group I calculate the place of the current location and time.
So in the end you have as "species" sheet with the data you want

FORM_CFTCFV.xlsx (36,1 Ko)

Thank you so much for help me

1 Like

Thanks. Is it close to what you want ?

Yes, now I am satisfied, thank you! I just need to solve how to also facilitate the user ios (via Gic collect) to quickly select the species observed among the thousands in the list. In fact I did some tests and apparence autocomplete with select one doesn't work. I know that here such an app is not treated but it would be my intention to create a form as accessible as possible to all types of devices to reach the maximum number of people.. this limit is a real shame. I was wondering if there was a loophole to do a quick search that works

Hi @giulia_tomasi
Maybe, some additional hints are helpful:

  • Did you test the mapping already? (The ODK map feature might not work as the geopoint is inside repeats now)
  • As you use "start" type, this will be set on first load of the form and never change and is invisible. So, time_specie will always stay the same, as long as you use one form. You might use once(now).
  • today metadata is the date of the first load and will not change. But today() function will always update when you open/edit the form, even later on server level. You might better use once(today()).
  • Avoid spaces in choice names (use _).
  • Better replace type "photo" with the official type "image" and "autocomplete" with search appearance (see new ODK XLSForm template).
  • The structure with the double nested repeats might be critical for the user to handle, as there are two +/- buttons with different meaning.
  • The nested inner repeat only makes sense if you often have multiple species at an identical location and an identical time to enter.
  • Review, please, how the date/time and location should best be related. At the moment, if the user needs to change one of both, she/he has to start a new outer loop.
  • The same form might be used more than one day, so your dates may need to allow more than one day. (Or the user shouldn't do this.)
  • How do you want to register the same species at the same location-time? Only once? With a number? At the moment you could create multiple repeat cases.
  • required no is not needed, this is the default.
  • Use and train the options for GPS improvement, see
  • Make sure that data, time and timezone are configured correctly on each used device.

Now the form structure is oriented to one day with different location-time, and multiple species there (grouped as inner repeat by same location and time!). Nevertheless, a user may submit more than one form for the same day. You probably need good enumerator training and guideline, to avoid differently "packed" submissions, creating challenges for data analysis.

There might be other design options:

  • One form per location, with multiple species (different times?)
  • One form per species case (spotting), with last_saved value import, e.g. for location.
  • One form (specie or species), with entity reference (e.g. location).

Perhaps, for digging deeper for species surveys, also some of the showcases may be interesting for you, esp.

1 Like

Thanks @wroos for this deep review :slight_smile: and your precious advises !

Yes, mapping into repeats works fine. The only limitation is that collect will only show on the instances map the first geopoint of the form (outside the repeat).

About the complexity, such multi-level (2) repeats form is quite often use in species monitoring, depending on the applied protocol. The first showcase you mention uses 2 repeats, one for the locations and one for the species, but it does not include the calculated location for each species (we manage it in our database)


Thanks. Yes, I meant the instance map feature.
It seems that a start-geopoint is not included here.

I added two more marker points above, at the end of the list (GPS performance and local date/time setting).

For a rather simple survey content (like the example of giulia_tomasiI), I think, even a flat structure, with last_saved references, might be an option. This would work without repeats and later joins, show the (instance) mapping for each specie spotting, with the server map and even with the Collect map menu, and allow easy viewing and editing in the table view (incl. filtering).

Hint: I appreciate that the first showcase (yours!) also presents the conceptual data model.


Hi @wroos ,

I agree that when possible, one submission per object is the best.
We use it in a context where farmers describe their farm.
It is out of the primary topic of this discussion but in that case the limitation we face is that for the moment, the map that plot the submissions only shows geopoints.
It would be a big game changer if the map was able to also show lines (grass stripes, hedges) and polygons (forest) as the farmer in our case could have a big picture of its farm and the objects he described, what he achieved and the work to be done.

1 Like

Hi @mathieubossaert

Which "map" are you referencing here, please? ODK map on the phone, map feature on the server, ...?

This one :

I never eared about a map feature on thé server :slightly_smiling_face: