Skip to content

Conversation

@ManushiM
Copy link
Collaborator

This guide covers concepts of cloning a storymap (duplicate() and clone_items()), editing several aspects and then copying the content over to another existing storymap item.

Closes https://github.com/ArcGIS/geosaurus/issues/12370


Checklist

Please go through each entry in the below checklist and mark an 'X' if that condition has been met. Every entry should be marked with an 'X' to be get the Pull Request approved.

  • All imports are in the first cell?
    • First block of imports are standard libraries
    • Second block are 3rd party libraries
    • Third block are all arcgis imports? Note that in some cases, for samples, it is a good idea to keep the imports next to where they are used, particularly for uncommonly used features that we want to highlight.
  • All GIS object instantiations are one of the following?
    • gis = GIS()
    • gis = GIS('home') or gis = GIS('pro')
    • gis = GIS(profile="your_online_portal")
    • gis = GIS(profile="your_enterprise_portal")
  • If this notebook requires setup or teardown, did you add the appropriate code to ./misc/setup.py and/or ./misc/teardown.py?
  • If this notebook references any portal items that need to be staged on AGOL/Python API playground, did you coordinate with a Python API team member to stage the item the correct way with the api_data_owner user?
  • If the notebook requires working with local data (such as CSV, FGDB, SHP, Raster files), upload the files as items to the Geosaurus Online Org using api_data_owner account and change the notebook to first download and unpack the files.
  • Code simplified & split out across multiple cells, useful comments?
  • Consistent voice/tense/narrative style? Thoroughly checked for typos?
  • All images used like <img src="base64str_here"> instead of <img src="https://some.url">? All map widgets contain a static image preview? (Call mapview_inst.take_screenshot() to do so)
  • All file paths are constructed in an OS-agnostic fashion with os.path.join()? (Instead of r"\foo\bar", os.path.join(os.path.sep, "foo", "bar"), etc.)
  • Is your code formatted using Jupyter Black? You can use Jupyter Black to format your code in the notebook.
  • If this notebook showcases deep learning capabilities, please go through the following checklist:
    • Are the inputs required for Export Training Data Using Deep Learning tool published on geosaurus org (api data owner account) and added in the notebook using gis.content.get function?
    • Is training data zipped and published as Image Collection? Note: Whole folder is zipped with name same as the notebook name.
    • Are the inputs required for model inferencing published on geosaurus org (api data owner account) and added in the notebook using gis.content.get function? Note: This includes providing test raster and trained model.
    • Are the inferenced results displayed using a webmap widget?
  • IF YOU WANT THIS SAMPLE TO BE DISPLAYED ON THE DEVELOPERS.ARCGIS.COM WEBSITE, ping @jyaistMap so he can add it to the list for the next deploy.

@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@ManushiM ManushiM changed the base branch from master to next January 23, 2026 21:57
@@ -0,0 +1,1002 @@
{
Copy link
Contributor

@nanaeaubry nanaeaubry Jan 26, 2026

Choose a reason for hiding this comment

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

I would underline the words 'same organization' at the end so users don't miss that nuance.


Reply via ReviewNB

@@ -0,0 +1,1002 @@
{
Copy link
Contributor

@nanaeaubry nanaeaubry Jan 26, 2026

Choose a reason for hiding this comment

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

'''

On the other hand, if you wish to clone this story while also cloning the deep dependencies (e.g., maps, layers, tables) from the original story, you may want to use you need to use the clone_items() method of the ArcGIS API for Python. which is beneficial to clone any and all ArcGIS items.

'''

You can maybe add a link to the clone items guide or method for users to read more about it in depth but I would keep the workflow straightforward here


Reply via ReviewNB

@@ -0,0 +1,1002 @@
{
Copy link
Contributor

@nanaeaubry nanaeaubry Jan 26, 2026

Choose a reason for hiding this comment

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

... has successfully cloned both the StoryMap and the WebMap items into the specified organization.

Or some other wording but saying where it got cloned helps users follow the tread. Or say from the organization where my storymap it to the target organization. Maybe work with John or Noah on wording to be clear.


Reply via ReviewNB

@@ -0,0 +1,1002 @@
{
Copy link
Contributor

@nanaeaubry nanaeaubry Jan 26, 2026

Choose a reason for hiding this comment

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

I would just show this. I wouldn't show clone_items twice since it might confuse users


Reply via ReviewNB

@@ -0,0 +1,1002 @@
{
Copy link
Contributor

@nanaeaubry nanaeaubry Jan 26, 2026

Choose a reason for hiding this comment

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

This can be particularly useful when you have a template Storymap for a certain region and you want to clone it to retain the structure and layout but only update the text or maps or media within the story.


Reply via ReviewNB

@@ -0,0 +1,1002 @@
{
Copy link
Contributor

@nanaeaubry nanaeaubry Jan 26, 2026

Choose a reason for hiding this comment

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

Add a comment here about how none of the changes will be reflected unless you save!


Reply via ReviewNB

@@ -0,0 +1,1002 @@
{
Copy link
Contributor

@nanaeaubry nanaeaubry Jan 26, 2026

Choose a reason for hiding this comment

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

Since you did not use storymap Map before I would add a text about how we imported the storymap module at the beginning and we can access various content classes to create new content for our Stroymap, such as a Map.

I know you mentioned a guide about creating content but putting that bit of info here without having to deeply explain content is a good addition. Otherwise we have code without any guidance. Or even better, repeat about the content guide and tell them to look at it for more information about creating and adding content.


Reply via ReviewNB

Copy link
Contributor

@nanaeaubry nanaeaubry left a comment

Choose a reason for hiding this comment

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

Left comments in notebook

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants