2sxc Error: can't delete items, found entities assigned children - dotnetnuke

I have a newly deployed site running Dnn v9.10.02 and 2sxc v13.0.0. I am building a custom app that contains an Event entity and an Organization entity. One of the fields of Event is an entity type of Organization to mark which organization is hosting the event. When I try to delete an Event using the TagToolBar on the frontend I receive an error that it can't delete the entity. If I try to delete the same Event entity through the backend 2sxc panel the error message lets me know that the reason for the error is due to having an Organization entity as a child. If I remove the Organization child entity I can delete the Event using either the front end TagToolbar or the backend panel. Leaving the Organization in place while trying to delete the Event through the backend 2sxc panel I get the option to force delete the Event, which works as expected. Is there a way to ignore this error, or to at least get the force delete option, while using the frontend TagToolbar?

ATM this is not possible - for now on purpose, because simple users tend to hurt themselves by accident since they ignore these warnings and later blame the developer for the problem ;)
So ATM there is no direct plan to change this.

Related

Why are custom fields auto-populating in Salesforce upon completion of Docusign

I am trying to figure out why/how certain fields are auto-populating on my Opportunity object when I complete a Docusign.
The issue: On an Opportunity record I click a custom button that sends a DocuSign to a list of signers. When the last signer completes signing the document, and the DocuSign Status is marked as completed I refresh the Opportunity record and 2 custom fields have been populated with today's date.
Here are the items I have already looked into to trouble shoot the issue:
On the fields themselves, I have clicked the 'where is this used?' button, and the only places these fields are used are in Page layouts and reports. It is NOT referenced in any apex classes or process builders.
I have looked through all my workflow rules, and field updates on those workflow rules. These fields are not referenced in any of the workflows/field updates.
I have set field history tracking on the fields and found that the change is being made by an integration user. I then set up a debug log on the integration user and in all of the debug logs there is no reference to the fields being updated there.
In a sandbox I tried deleting the field to see if it might be referenced by a Custom metadata type, and no errors were thrown saying it was. I have also looked into the custom settings and custom metadata types to see if the reference to these fields could be in there. 
Hoping someone can let me know if they've seen this issue before, or know any other ways to troubleshoot this issue. 
It sounds like there's been some custom configuration setup, out of the box the package shouldn't add new fields to the opportunity record that are updated upon completion of an envelope. All of that information should only be found on the DocuSign Status object initially.
I would recommend reaching out to the DocuSign support team and have them take a look at the configuration with you to see what may be happening. https://support.docusign.com/

Wagtail MultiSite - Cross posting content

I am currently building two sites out of a single Wagtail installation. The sites are for a company and it's sister company and there is some overlap in content. Ideally we don't want to have to post the same content twice. In particular we have an Events page on both sites and there may be events that are relevant to both companies.
The problem is that a Wagtail page can only exist in one place in the tree at once. I have considered creating a "MirroredEventPage" model with only one foreign key field to the original EventPage model, although this approach has it's problems when it comes to writing the EventIndex page and reusing templates.
I've also considered creating Events as a vanilla Django model which isn't ideal either.
Has anyone had a similar issue and found a good solution?
An idea would be to use a mix of using Wagtail Snippets and the RoutablePageMixin on your Events Index Pages.
1. Make an Events Snippet
Make the shared content of your Events page into a Wagtail Snippet. You will loose the ability to access versions of changes but gain the ability to share across sites.
http://docs.wagtail.io/en/v1.13/topics/snippets.html
2. Update your Events Index page model to use the RoutablePageMixin
http://docs.wagtail.io/en/v1.13/reference/contrib/routablepage.html
You can then hook into the URL calls for any of the Events Index pages if they have something like mydomain.com/events/123-event-name-as-slug. This can load a custom template (which can be shared or not, depending on the site), with the events index and the event snippet sent via the context.
These URLs will be their own unique URL but not actually have a page behind them. Remember to consider your SEO implications, ensure that the admin editors can manage things like meta description on the snippet (or work through how that will propagate automatically).
You can also hook into the Wagtail button (called Wagtail Userbar) so that when editors click the front end Wagtail button and click 'edit Event' it can take them directly to the Snippet editing page in admin.
http://docs.wagtail.io/en/v1.13/reference/hooks.html#construct-wagtail-userbar
3. Update Events Index Listing
If there are some events you do not want on both sites, you could add checkboxes (both ticked by default) for the two sites you operate. This means the Events Index page will only show the events relevant to that site.
You can do this by overriding the serve method on the page model.
Note: In this example you are not explicitly linking each and every event to each site's event index page. You are simply loading a query of relevant events and passing it to the events index template.
4. More Complex Integration
If you really want an individual page for each 'Event' under each site, you could create a custom signal on Snippet create/edit/delete.
Intro to Wagtail Signals:
http://docs.wagtail.io/en/v1.13/reference/signals.html
You would want to ensure that the fields are non-editable on the Page edit, but would be editable under snippets. Then you just keep things in sync with your signals, bit messy but gives you an actual 'Page' in the Admin.

Referencing Another App

What is the best way to reference another app in the visual query designer?
I am using the blog app and I created a second app to list the tags that are used in the main blog app. This way when the app goes to a detail page of a post, I can still have the tags listed on the website without the view changing automatically. I set up my blog tags app with a visual query that list all of the tags used in the main app. Everything was working fine in development.
The problem that I have run into is that when I move the app to a production site the AppId was different than the one I was currently using and development. Now, the tags app is showing an error and I am not able to get into the settings to change the app ID of the visual query to the proper one in order to get the information needed. Is there a better way that I should be handling this?
This sounds like the right way to do it - your main issues is getting into the admin-ui when the template you have shows an error.
I suggest that you quickly rename your current template (so it's not used till you fix the bug) and create an empty template with the original name. This way you can go to the normal settings.
Another option is to switch into dnn-edit-mode, and use the black-dnn buttons to get to app-admin.

Data shows when page accessed from internally, but not on public site

I have been following the salesforce Recruiting App tutorial, and reached the section on creating a public site:
http://www.salesforce.com/us/developer/docs/fundamentals/Content/adg_composite_app_public_sites.htm
I have built a simple page to display open jobs as described here:
http://www.salesforce.com/us/developer/docs/fundamentals/Content/adg_composite_app_create_public_jobs_try_it_out.htm
This is displaying the open jobs correctly when I view it through our "internal" URL: https://c.ap1.visual.force.com/apex/PublicJobs
But when I view this same page through our "external" URL: http://servian-developer-edition.ap1.force.com/careers, the page still renders, except that now the list of jobs is empty.
I don't think this is a permissions error, as if so it would surely prompt me to log in. What do I need to do to make the data show on the "external" URL?
Make sure the "guest" user for the site has Read permission for the Positions object on its profile. You can't access the profile for the guest user through the normal Profile list page in Setup; instead, click on the Public Access Settings button from your site's detail page. On the profile, go all the way to the bottom of the page and make sure the Read permission is checked. If its still not working, ensure the Field Level Security settings also correct for that profile. The FLS settings are controlled about mid-way down on the same page.
In addition to above, ensure the object, if it is a custom object is in "Deployed" status. This fixed the issue for us.
Additional Information (from help.salesforce.com):
While developing a custom object or external object, you might not want users to see and interact with it. Because users might get frustrated with changes in layout or lose data when you delete custom fields, control visibility of the new object until you are finished.
Use the Deployment Status setting in the object definition to control when users can see and use the object and its associated custom tab, related lists, and reports.
Choose “In Development” as the Deployment Status when first creating your custom object or external object. Doing so hides it from users while you are designing and testing it. Only users with the “Customize Application” permission can see the object tab, search results, related lists, and report data types.
Change the Deployment Status to “Deployed” when you want to allow all users to use the object and any associated custom tab, related lists, and reports.
If you make more enhancements after deploying a custom object or external object, you can change the Deployment Status back to “In Development.”

How can I disable the Publish button in EPiServer's content editor?

I have an EPiServer project which is using the sequential workflow to validate content changes. This works fine, however we have a slight issue where content reviewers are just clicking Publish when they are happy with an editor's work. What they should be doing is using the workflow task window and indicating their approval through that.
To enforce this behaviour I would like to disable the Publish button in the content editor under certain circumstances (i.e. when there is an outstanding workflow task linked to the current page).
Does anyone have any ideas how I can do this, or even an alternative solution to the problem altogether?
Actually, I think you may want to revisit your workflow logic.
If a user with publishing rights publishes a page: that should be considered an approval. You could easily hook up to the Published event to see if the page is part of a currently running workflow.

Resources