How do I move repetitive tasks from one list to another in Google Tasks?

I don't understand how to do that with GUI. Is it technically possible to move (not delete and recreate) a repetitive task from one list to another?

Sharepoint 2013 / PowerShell: Error updating the item list with batch

I am trying to synchronize an item in the list using a batch from a first site to another site (SharePoint 2013). I tested the PowerShell code (available below) with 3 items in the list. The first one worked but the other 2 didn't. So, looking at the code below, where would the problem come from?

The whole process is working during the construction of lots. I receive this error precisely when I run the code $ web.ProcessBatchData ($ batch) (end of code). Whichever column you modify, the element you modify, only the first element will succeed and not the others.

So this is the code:

(CmdletBinding(DefaultParametersetname = "ImportFromFiles", SupportsShouldProcess = $True, ConfirmImpact = 'Medium'))
param(
    # Variation
    (Parameter(Mandatory = $true))
    (ValidateSet("en-us", "fr-fr", "es-es"))
    (string)$Variation,

    # Logs directory path
    (Parameter(Mandatory = $false))
    (string)$LogsPath = "Logs",

    # Data directory path
    (Parameter(Mandatory = $false))
    (string)$DataPath = "Data",

    # Batch directory path
    (Parameter(Mandatory = $false))
    (string)$BatchUpdatesPath = "BatchUpdates"
)

if (-not $ExportToCSV) {
    Add-PSSnapin Microsoft.SharePoint.PowerShell
}

$logsPath = "$PSScriptRoot$LogsPath"
$dataPath = "$PSScriptRoot$DataPath"
$batchUpdatesPath = "$PSScriptRoot$BatchUpdatesPath"

if (!(Test-Path $logsPath)) {
    New-Item -ItemType Directory -Force -Path $logsPath
}

if (!(Test-Path $dataPath)) {
    New-Item -ItemType Directory -Force -Path $dataPath
}

if (!(Test-Path $batchUpdatesPath)) {
    New-Item -ItemType Directory -Force -Path $batchUpdatesPath
}

function Update-ExistingItems {
    param ()

    if (-not $ExportToCSV) {
        $web = Get-SPWeb -Identity "contoso.com/$Variation"
        $publicItemsList = $web.Lists('Items')
    }

    $methodBuilder = New-Object System.Text.StringBuilder

    $batchFormat = '{0}'

    $ItemsCSV = Import-Csv "$dataPathItems-Fields.csv" -Encoding Default
    $PublicItemsCSV = Import-Csv "$dataPathPublic-Items-Fields-$Variation.csv" -Encoding Default

    $Items = @{ }
    $PublicItems = @{ }

    $PublicItemsCSV | ForEach-Object { $PublicItems((int)$_.SourceId) = $_ }
    $ItemsCSV | ForEach-Object { $Items((int)$_.ID) = $_ }

    $hashFields = @{
        'Item Name'           = @{internalName = 'Item_x0020_Name'; displayName = 'Item Name' };
        'Item Address 1'      = @{internalName = 'Item_x0020_Address_x0020_1'; displayName = 'Item Address 1' };
        'Item Address 2'      = @{internalName = 'Item_x0020_Address_x0020_2'; displayName = 'Item Address 2' };
        'Item City'           = @{internalName = 'Item_x0020_City'; displayName = 'Item City' };
        'Item Principal Name' = @{internalName = 'Item_x0020_Principal_x0020_Nam'; displayName = 'Item Principal Name' };
        'Item Phone'          = @{internalName = 'Item_x0020_Phone'; displayName = 'Item Phone' };
        'Item Fax'            = @{internalName = 'Item_x0020_Fax'; displayName = 'Item Fax' };
        'Item status'         = @{internalName = 'Item_x0020_status'; displayName = 'Item status' };
        'Item Email'          = @{internalName = 'Item_x0020_E_x002d_mail'; displayName = 'Item Email' };
    }

    $PublicItems.Keys | ForEach-Object {
        $methodFormat = ''
        $methodFormat += '{0}'
        $methodFormat += 'Save'
        $methodFormat += '{1}'
        $script:updateItem = $false
        $itemID = $_

        if (-not $Items($itemID)) {
            return
        }

        $hashFields.Keys | ForEach-Object {
            if ($Items($itemID).$_ -ne $PublicItems($itemID).$_) {
                $script:updateItem = $true
                Write-Output "$($itemID): $_ => $($Items($itemID).$_) not equal $($PublicItems($itemID).$_)"
                $methodFormat += '' + $Items($itemID).$_ + ''
            }
        }

        $itemTypeOfGuid = $Items($itemID).'bd17fb3aa4bd4111aef976748382c614'.split('|')(1)
        $publicItemTypeOfGuid = $PublicItems($itemID).'d3fd19dcbce247fbbae29f662eba929c'.split('|')(1)
        $itemTypeOfWssId = +$Items($itemID).'Item Type of'.split(';')(0)

        $hash = @{
            205 = @{WssId = 3; "fr-fr" = "Secondaire"; "en-us" = "Secondary"; "es-es" = "Secundaria" };
            210 = @{WssId = 14; "fr-fr" = "Pré-primaire"; "en-us" = "Pre-primary"; "es-es" = "Pre-primaria" };
            274 = @{WssId = 242; "fr-fr" = "Pré-primaire/Primaire"; "en-us" = "Pre-Primary/Primary"; "es-es" = "Pre-primaria/Primaria" };
            204 = @{WssId = 2; "fr-fr" = "Primaire"; "en-us" = "Primary"; "es-es" = "Primaria" };
            209 = @{WssId = 11; "fr-fr" = "Primaire/secondaire"; "en-us" = "Primary/Secondary"; "es-es" = "Primaria/Secundaria" };
            273 = @{WssId = 241; "fr-fr" = "Du primaire au secondaire"; "en-us" = "Pre-primary to Secondary"; "es-es" = "Pre-primaria hasta secundaria" };
            208 = @{WssId = 8; "fr-fr" = "Établissement de formation des enseignants"; "en-us" = "Teacher Training Institution"; "es-es" = "Institución de formación docente" };
            207 = @{WssId = 7; "fr-fr" = "Établissement technique professionnel"; "en-us" = "Vocational and Technical Institution"; "es-es" = "Institución profesional y técnica" };
            272 = @{WssId = 240; "fr-fr" = "Centre d’enseignement non formel"; "en-us" = "Non-Formal Education Center"; "es-es" = "Centro de educación no formal" };
        }

        $typeOf = "$($hash(+$itemTypeOfWssId)("WssId"))" + ";#" + $hash(+$itemTypeOfWssId)($Variation) + "|" + $itemTypeOfGuid

        if ($itemTypeOfGuid -ne $publicItemTypeOfGuid) {
            $script:updateItem = $true
            $methodFormat += '' + $typeOf + ''
        }

        $methodFormat += ''

        if ((System.Convert)::ToBoolean($script:updateItem)) {
            if (-not $ExportToCSV) {
                $methodBuilder.AppendFormat($methodFormat, $publicItemsList.ID.ToString(), $PublicItems($itemID).ID) | Out-Null
            }
            else {
                $methodBuilder.AppendFormat($methodFormat, 'Items', $PublicItems($itemID).ID) | Out-Null
            }
        }
    }

    $batch = (string)::Format($batchFormat, $methodBuilder.ToString())

    if (-not $ExportToCSV) {
        $batchReturn = $web.ProcessBatchData($batch)
        $batchReturn
    }
}

This is the batch I get with this code:



    
        b9b3794a-8bd1-4e13-8746-508dbc80d504
        Save94388
        email@email.com
        33612345789
        
        
            2;#Primary|548d9217-b7cf-4714-95ac-7f3de20ee0df
        
    

And this is the error I get with the second and third synchronization:


Cannot complete this action.

Please try again.

sharepoint on prem – Export to Excel list version history SP 2013 problem

Find my code below and provide some suggestions. How can I export "id, Title, VersionLabel, DisplayName, Created, Check-In Comment" but I want to change the fields also marked in red in the image.

enter the description of the image here

$WebURL="SiteURL"
$ListName ="ListName"
$ReportFile = "C:SachinVersionHistory.csv"

#delete file if exists
If (Test-Path $ReportFile)
{
Remove-Item $ReportFile
}

#Get the Web and List
$Web = Get-SPWeb $WebURL
$List = $web.Lists.TryGetList($ListName)

#Check if list exists
if($List -ne $null)
{
#Get all list items
$ItemsColl = $List.Items

#Write Report Header
Add-Content -Path $ReportFile -Value "Item ID,Item Title, Version ID, Modified By, Modified at,Comments"

#Loop through each item
foreach ($item in $ItemsColl)
{
#Iterate each version
foreach($version in $item.Versions)
{

$version.Fields
#Get the version content
$VersionData = "$($item.id),$($version('Title')), $($version.VersionLabel), $($version.CreatedBy.User.DisplayName),$($version.Created),$($version('Check In Comment'))"
#Write to report
Add-Content -Path $ReportFile -Value $VersionData
}
}
}
Write-Host "Version history has been exported successfully!"

SOCKS Proxy List – 10/10/2019 by Tisocks.net

SOCKS Proxy List by Tisocks.net
If you need socks5, visit the service and add funds through PM, BTC WMZ. Thank you all!!
Add background: https://tisocks.net/addfund
Check socks5 online here: https://checksocks5.com
Live | 75.145.208.77:34976 | 0.283 | SOCKS5 | Louisiana | 71106 | 75-145-208-77-Memphis.hfc.comcastbusiness.net | United States Revised at https://tisocks.net
Live | 66.33.211.184:37330 | 0.085 | SOCKS5 | California | 92821 | chandelier.dreamhost.com | United States Revised at https://tisocks.net
Live | 66.33.208.77:44729 | 0.084 | SOCKS5 | California | 92821 | charles-pickney.dreamhost.com | United States Revised at https://tisocks.net
Live | 96.80.213.226:20698 | 0.179 | SOCKS5 | Michigan | 48506 | 96-80-213-226-static.hfc.comcastbusiness.net | United States Revised at https://tisocks.net
Live | 208.113.153.240:60116 | 0.084 | SOCKS5 | California | 92821 | bath.dreamhost.com | United States Revised at https://tisocks.net
Live | 64.90.52.204:38940 | 0.296 | SOCKS5 | California | 92821 | sublimity.dreamhost.com | United States Revised at https://tisocks.net
Live | 185.153.198.234:19486 | 0.61 | SOCKS5 | England | E11 | no-ptr.as20860.net | United Kingdom Revised at https://tisocks.net
Live | 64.90.51.10:22746 | 0.296 | SOCKS5 | California | 92821 | nyssa.dreamhost.com | United States Revised at https://tisocks.net
Live | 173.236.178.141:1851 | 0.093 | SOCKS5 | California | 92821 | pivot.dreamhost.com | United States Revised at https://tisocks.net
Live | 184.170.181.72:40309 | 0.388 | SOCKS5 | Idaho | 83278 | Midvale Phone Exchange | United States Revised at https://tisocks.net
Live | 51.81.31.63:41441 | 0.202 | SOCKS5 | New York | 11961 | ool-457ba64e.dyn.optonline.net | United States Revised at https://tisocks.net
Live | 176.31.182.14:30782 | 0.843 | SOCKS5 | Unknown Unknown ns3324728.ip-176-31-182.eu | France | Revised at https://tisocks.net
Live | 51.81.31.66:18254 | 0.316 | SOCKS5 | California | 92806 | cpe-104-33-31-210.socal.res.rr.com | United States Revised at https://tisocks.net
Live | 50.62.35.16:40618 | 0.243 | SOCKS5 | Arizona | 85260 | ip-50-62-35-16.ip.secureserver.net | United States Proven

tisocks
reviewed by tisocks in
.
SOCKS Proxy List – 10/10/2019 by Tisocks.net
SOCKS Proxy List by Tisocks.net
If you need socks5, visit the service and add funds through PM, BTC WMZ. Thank you all!!
Add background: https://tisocks.net/addfund
Check socks5 online here: https://checksocks5.com
Live | 75.145.208.77:34976 | 0.283 | SOCKS5 | Louisiana | 71106 | 75-145-208-77-Memphis.hfc.comcastbusiness.net | United States Revised at https://tisocks.net
Live | 66.33.211.184:37330 | 0.085 | SOCKS5 | California | 92821 | chandelier.dreamhost.com | United States Checked in

Classification: 5 5

.

python: list of nested dictations with recursive function

My goal is to write a function that divides a budget between the options comparing the options based on their benefit / cost ratio and stores them in a list of nested dictations.
When several options are available with the same benefit / cost ratio, each option will be searched separately and will be reflected as a list of dictations for your upstream dict. There is no limitation as to how many options may occur.

The function is as follows:

def get_all_allocation_proposals(budget, options):
    # accepts:
    #   budget to be allocated
    #   list of options
    # returns:
    #   a list of allocation proposals

    allocation_proposals = ()

    #filter options for affordable options and sort by cost benefit ratio
    options = (x for x in options if x('cost') <= budget)
    options = sorted(options, key=lambda x: (x('benefit_cost_ratio'), x('benefit')), reverse=True)

    if (len(options) > 0):
        #select the best options
        best_bc_ratio = options(0)('benefit_cost_ratio')
        best_options = (x for x in options if x('benefit_cost_ratio') == best_bc_ratio)

        for candidate in best_options:

            downstream_options = remove_overlappings_for_candidate(candidate, options)
            downstream_budget = budget - candidate('cost')
            candidate('donstream_budget') = downstream_budget
            candidate('downstream_items') = get_all_allocation_proposals(downstream_budget, downstream_options)
            allocation_proposals.append(candidate)

    return allocation_proposals

I face the problem that the candidate (& # 39; downstream_items & # 39;) of an ascending element is initialized again when the descending elements are processed.
I found examples in which the parent element is passed as a parameter, but I really don't see the need for that, since I add it to another list.

Continuation token: generate a list of files from a google folder on a google sheet

I have a folder in Google with 18k files and I need to list some of them in the Google sheet. A solution for this was found in Insert Google Drive Image in Google Sheets

However, since it has a length of 18k files, the code times out after 4 minutes (approximately 2k files). I have tried an alternative solution for all 18k files to use the continuation token, but for some reason, restarting the file list starts again from 0 instead of continuing from the last scanned file.

Essentially, the script now;

  1. Scan a Google Drive folder -> Create a file list
  2. Register this list and use the continuation token function (and instruct it to stop in 4.5 minutes)
  3. Extract specific data on Google Sheet and end at 4.5 minutes.
  4. Upon restart, the continuation script looks at the log and continues where it left off.
  5. Unfortunately, I started coding and somehow I broke 1-4 🙁

What am I doing wrong?

 /* Modified with token access from @hubgit and http://stackoverflow.com/questions/30328636/google-apps-script-count-files-in-folder 
    for this stackexchange question http://webapps.stackexchange.com/questions/86081/insert-image-from-google-drive-into-google-sheets by @twoodwar
    */

    function listFilesInFolder(folderName) {

       var sheet = SpreadsheetApp.getActiveSheet();
       sheet.appendRow(("Name", "Date", "Size", "URL", "Download", "Description", "Image"));

     //**Error is likely happening here**
      // Logs the name of every file in the User's Drive 
      // this is useful as the script may take more that 5 minutes (max execution time)
      var userProperties = PropertiesService.getUserProperties();
      var continuationToken = userProperties.getProperty('CONTINUATION_TOKEN');
      var start = new Date();
      var end = new Date();
      var maxTime = 1000*60*4.5; // Max safe time, 4.5 mins

     if (continuationToken == null) {
        // first time execution, get all files from Drive
        var files = DriveApp.getFiles(); // make sure that is variable is saving the actual files in the desired folder.
      } else {
        // not the first time, pick up where we left off
        var files = DriveApp.continueFileIterator(continuationToken);
      }
      while (files.hasNext() && end.getTime() - start.getTime() <= maxTime) {
        var file = files.next();

    //change the folder ID below to reflect your folder's ID (look in the URL when you're in your folder)
        var folder = DriveApp.getFolderById("(INSERT_FOLDER_ID_HERE");
        var contents = folder.getFiles();

        var cnt = 0;
        var file;

        while (contents.hasNext()) {
            var file = contents.next();
            cnt++;

               data = (
                    file.getName(),
                    file.getDateCreated(),
                    file.getSize(),
                    file.getUrl(),
                    "https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
                    file.getDescription(),
                    "=image("https://docs.google.com/uc?export=download&id=" + file.getId() +"")",
                );

                sheet.appendRow(data);

         Logger.log(file.getName());
        end = new Date();
      }


        };
    // Save your place by setting the token in your user properties
      if(files.hasNext()){
        var continuationToken = files.getContinuationToken();
        userProperties.setProperty('CONTINUATION_TOKEN', continuationToken);
      } else {
        // Delete the token
        PropertiesService.getUserProperties().deleteProperty('CONTINUATION_TOKEN');
      }

    };

7 – Group the content by taxonomy term, but also list all the terms in each row

I am looking for help to create a view.

I have a kind of content, Thing. Thing has a field in which you can select several terms in a taxonomy, Category. I want my view to look like this:

Category 1

Category 2

Basically, I want to group by terms and then list all the terms under each Thing. I also don't want the groups to end up with "Category 1, Category 2" headings, and I want to make sure that each of the terms appears in each instance of the Thing in the view.

Thanks for any help!

How to add within items of a list?

I am trying to show the possible combinations of throwing 3 dice and taking the sum of the two highest numbers

dice = {1, 2, 3, 4, 5, 6}
j = Flatten(Outer(List, dice, dice, dice), 2)
j1 = Table(Extract(j, {i, 2}), {i, 1, 216});
j2 = Table(Extract(j, {i, 3}), {i, 1, 216});
Transpose({j1, j2});

How can I add the two elements of each part of the last line (Transpose …) to obtain sums ranging from 2 to 12?
Thank you

Sharepoint online: the fastest way to create multiple list items (around 2000 items) in a list

Someone please suggest me the The fastest way to add multiple items to a SharePoint list.

My current c # / csom code is taking too long to fill the list. And I have to do this activity every day 🙁

Currently, I am creating the list items one by one. Is there any way to do it in batches?

In Javascript, how can we update the value in an array of objects when onchange text is called? on the flat list

There is a status value

savedData:[
        {key:'First Name',value:''},
        {key:'Last Name',value:''},
        {key:'Mobile',value:''},
        {key:'Email',value:''},
        {key:'Password',value:''},
        {key:'Forgot Password',value:''},
        {key:'CheckBox1',value:''},
          ]

Text entries are in a flat list, each text entry is represented in each cell.
How can I update a value in an array by index when calling text input onChange without using state variables or global variables?