|
| 1 | +import datetime |
| 2 | +# build period names from start to end |
| 3 | +# set the periods from the beginning of the job to the end of the job |
| 4 | +SearchFolderName = 'OPD_TimeLiner' |
| 5 | +yr_beg = 2023 |
| 6 | +wk_beg = 51 |
| 7 | +yr_end = 2025 |
| 8 | +wk_end = 9 |
| 9 | +listof = [] |
| 10 | +for y in range(yr_beg, yr_end + 1): |
| 11 | + if yr_beg == yr_end: |
| 12 | + wlist = [str(y)] + [str(y) + '.' + element.__str__() for element in range(wk_beg, wk_end + 1)] |
| 13 | + elif y == yr_end: |
| 14 | + wlist = [str(y)] + [str(y) + '.' + element.__str__() for element in range(1, wk_end + 1)] |
| 15 | + elif y == yr_beg: |
| 16 | + wlist = [str(y)] + [str(y) + '.' + element.__str__() for element in range(wk_beg, 53 + 1)] |
| 17 | + else: |
| 18 | + wlist = [str(y)] + [str(y) + '.' + element.__str__() for element in range(1, 53 + 1)] |
| 19 | + listof.append(wlist) |
| 20 | + |
| 21 | +#confirm SearchFolderName doesn't already exist, rename _old |
| 22 | +for ss in doc.SelectionSets.RootItem.Children: |
| 23 | + if ss.DisplayName == SearchFolderName and ss.IsGroup: |
| 24 | + doc.SelectionSets.EditDisplayName(ss, SearchFolderName + "_old") |
| 25 | + # perhaps the old one should just be deleted |
| 26 | + |
| 27 | +#create new "timeliner" folder at the end of the existing search sets |
| 28 | +nextIndex = doc.SelectionSets.RootItem.Children.Count |
| 29 | +savedFolder = FolderItem() |
| 30 | +savedFolder.DisplayName = SearchFolderName |
| 31 | + |
| 32 | +for y in listof: |
| 33 | + yr = y[0] |
| 34 | + yearFolder = FolderItem() |
| 35 | + yearFolder.DisplayName = str(yr) |
| 36 | + for wk in y[1:]: |
| 37 | + # create another folder group for each year |
| 38 | + s = Search() |
| 39 | + # sc = SearchCondition.HasPropertyByDisplayName('OPD_LineList','SCHEDULED INSTALL') |
| 40 | + # ABOVE IS CORRECT, BELOW IS FOR TESTING AND PROOF OF CONCEPT |
| 41 | + sc = SearchCondition.HasPropertyByDisplayName('OPD_Schedule','SCHEDULED INSTALL') |
| 42 | + oData = VariantData.FromDisplayString(wk) |
| 43 | + sc = sc.EqualValue(oData) |
| 44 | + s.SearchConditions.Add(sc) |
| 45 | + s.Selection.SelectAll() |
| 46 | + s.Locations = SearchLocations.DescendantsAndSelf |
| 47 | + savedSet = SelectionSet(s) |
| 48 | + savedSet.DisplayName = wk |
| 49 | + yearFolder.Children.Add(savedSet) |
| 50 | + savedFolder.Children.Add(yearFolder) |
| 51 | + |
| 52 | +doc.SelectionSets.InsertCopy(nextIndex, savedFolder) |
| 53 | + |
| 54 | + |
0 commit comments