Why "Publish all pages" action is not really re-publishing selected node property data? - umbraco

I am selecting a page Actions > Publish "Node name" and all its subpages
This seems to be performing some action.
However:
The page and none of the subpages get the "Published" record in history.
The content new version seems to appear in the database
The properties data of the new version is not getting "renewed".
While if I save the particular content using "Save and publish" button of the content the point 1 and 3 work in the way that:
The page gets "Publish" record in the history trail
As per above
The property data is really getting new version (according to the data type definition).
I elaborate the last point 3:
I am trying to upgrade 7.15.3 to any version 8.
I installed Our.Umbraco.Migrations for version 7.
I installed proworks migration package for version 8.
I changed my pickers to new version in all data types in version 7 using such pickers.
I use "new" Umbraco.NestedContent data types (as opposite to old Archetype or obsolete Our.Umbraco.NestedContent).
And I am trying to update all content to use the correct - new version of NestedContent. Eg. I run Publish all subpages of the root content. None of the old content did update with a new version of property data, eg. old nested content json data stayed as it was without a key in the database in new versions etc.
As I have many nodes - I of course do not fancy to republish all content manually. Also the question remains how to update a content (to use new version of NC for example) that has not been published but is only in "Save" state?
If the content is not updated properly - it throws an error after the upgrade to version 8 because NC json is not compatible - has no "key" property.
So is the only way to update the content to run a custo m migration?

Related

How can I post updates for deleted records using TEMSDataSetResource in RAD Server 11

I have created a simple new Rad Server Package with resource with a data module to access a Firebird 3.05 database running on Ubuntu 18.0.4. I included sample endpoints and a database endpoint with one table from the database.
I modified the created FDQuery to return a subset of the records.
select * from EXPENSES where COMPANYID = :COMPANYID
It indicated the FireDACFBDriver was not found, and instead of adding the PhysFBDriverLink, I deleted the FireDACFBDriver in the project source and it asked to add back the FireDACIBDriver and it works. This is besides the point, I think, but just full disclosure. I have tried the PhysFBLink with same results, but have had trouble switching back and forth to Linux deploy, so this works for testing I believe.
The client app consists of a TEMSFireDACClient, a FDSchemaAdapter, FD TAble Adapter, FDMemTable and datasource and dbgrid and three buttons.
Button1
Expenses.GetEndpoint.Params.Clear()
expenses.GetEndpoint.Params.AddItem(
'CompanyID','10000080');
Expenses.GetData();
Button2
FDMemTable1.delete;
Button3
Expenses.GetEndpoint.Params.Clear();
expenses.GetEndpoint.Params.AddItem(
'CompanyID','10000080');
Expenses.PostUpdates;
Button One retrieves multiple rows, and button two deletes a row locally, and button 3 tries to apply the table updates back to the server.
When attempting to post updates. I get the following error:
EMS Error: Resource error. Request parameter not found: COMPANYID.
This works when the resource SQL is SELECT * FROM EXPENSES. Is it just that the TEMSDataSetResources can only work on the full table, or Is there something simple I am missing or a reference available for how to accomplish this?
I have tried creating a manual delete endpoint with:
delete from EXPENSES where EXPENSEID = #####
However, that is another post maybe if I have to go there. I cannot get around and error converting Unicode to integer variant when passing the parameter.

Umbraco Same Url Render Page Sequence

I'm new to umbraco and using umbraco 6 latest version... Actually this is a silly mistake but makes me curious..
I've two content, let's say item a and item b.. This two item will be published alternately. so it can be access via "mysite/item_active"..
Today -> item a -> change name to item_active -> save publish -> change yesterday item active to item_b..
But somehow I forgot to use save publish yesterday.. And only click save that make the url of the content is not being updated..
Then how umbraco will choose with item to render (both item now have "mysite/item_active" url)?
The day I asked you is holiday until monday.. And I don't have access this site (because this internal company site) from home..
Are based on node? the smaller node is the one being render or the latest publish item will be rendered?
Umbraco won't allow you to save and publish two items with the same URL / node name (on the same tree level). It will automatically add version number e.g. (1) for the next node with the same name and then, friendly URL will become /mysite/item-active-1 in your case.
I tested this scenario, and Umbraco returns this information when you're trying to publish item with the same name as existing one:
So, in theory - we have two items published, but only one is still in the XML (IPublishedContent) cache, from which Umbraco is taking content first. Second item won't be visible until we will change the URLs / names to be different or perform publish on first item and then scenario described at the beggining will be applied.
Maybe it's worth to consider having it as a same page and just swaping the templates on which you can render particular properties values? Or having a content picker or something else to determine which version of the site should be marked as active and used?

Umbraco: querying latest items

I'm a newbie in using Umbraco. The current version I'm using is v7++.
I have changed the rendering engine from MVC to webform as I'm not really good with MVC.
Current Item
item A
item B
item C
item D
The current problem I'm facing is to query the latest item under "Current item".
And here is the code I have:
annRoot.GetDescendantNodes().OrderByDescending(x => x.CreateDate);
But this line of code will definitely cause some performance issue if there is a huge amount of descendants under the "current item".
Is there a way for me to query directly for the latest item without having to retrieve the whole list of descendant.
If this line of code is used in a Razor macro then you should be able to access the last item directly by using .Last()
...OrderByDescending(x => x.CreateDate).Last();
Checkout the 'Traversing' section in this Dynamic Node Cheat Sheet ....
this is from v4.7 when razor support was initially introduced, but it should all still be relevant.

Magmi on Magento 1.4.2CE visibility always catalog&search + error w/page_layout & options_container

I'm relatively new to Magmi but have had to mess with EDI and csv files on many different systems over the years... I have only been importing simple products with magmi for starters and have a couple of questions/problems
At first all of my imported new products were available in every store view (we have 5) and I now realize from the docs that's because it was set to "admin", however under visibility, everything shows up visible in both catalog and search, even if it is set only to "catalog" in the csv or as "not visible individually". This is problematic for certain semi-private category products and for configurable child-products. I'm sure there is a simple explanation but I can't find it.
Also, I messed up yesterday. I copied 20 lines from a products master export, made a new worksheet and edited most of the fields to reflect a case of that product - every field except sku itself. I imported it (set to create and update because create itself skipped all 20 sku's - of course) and it updated my original product. I made a fresh csv with the original 20 lines and reimported it, the products look fine - except...
Now when I export from a master export profile in magento it does it but I get errors for the 20 skus that I can't quite decipher (referencing options_container and page_layout)- it looks like this http://tinyurl.com/mp5g27v
Any insight would be great
You simply forgot to use "Generic Mapper" plugin in your import profile.
Generic Mapper is a plugin that allows recognizing "text values" for fields that are meant to store numeric values. And has to be used to handle standard magento export format which exposes localized textual values.
see plugin documentation
When selected, this plugin will handle all standard mappings used by magento ( visibility, page_layout, options_container , aso...)

Composite C1 console edit button available for non translated data

We are using Composite C1 version 2.1.1 with static C# data. This data is localizable (ILocalizedControlled) and is shown on top of the data tree (TreeDefinitions\GlobalData.xml). Users are able to translate the data to their selected language, but somehow it is possible to "Edit" the data before translating it. This means that when they do it wrong (i.e. in stead of first choosing "Translate Data" and then "Edit", choose "Edit" directly) translated data will appear on the source language site. Which is very annoying because the source data is lost as well.
Seems that when choosing a data item only "Translate Data" should be possible, but now four buttons are shown (Translate Data, Edit, Add and Delete). So I would like to be able to change this behavior, but can't seem to find where or how to influence this.
Hope anyone can help.
somehow it is possible to "Edit" the data before translating it.
This is because in your tree definition (TreeDefinitions\GlobalData.xml), you explicitly use EditDataAction, which does what it is supposed to do: allow editing an item using the standard edit workflow.
I suggest that instead, you create and use a custom workflow for editing items, which might have a logic to allow editing only if the data item is translated in the current language.
I don't have a ready-to-use code for that but you can check samples for custom workflows here.
Also, in the upcoming version 4.1 of Composite C1 (currently beta), you don't need to create tree definitions for static data types. They are available in the C1 Console out of the box. And you can add, edit and delete items of these types there, and the Translation feature on localized types works as expected.
Compare:
The item exposed via a Tree Definition (the issue you mentioned)
And the same item available under "Static Datatypes" (a new feature in 4.1)

Resources