mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-06-01 10:39:34 +12:00
Fix loading labels and statuses in outline
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
This commit is contained in:
parent
6f83293e29
commit
6e4e08d7f9
|
@ -10,8 +10,9 @@ from manuskript.io.mmdFile import MmdFile
|
|||
|
||||
class Label:
|
||||
|
||||
def __init__(self, host, name: str, color: Color):
|
||||
def __init__(self, host, index: int, name: str, color: Color):
|
||||
self.host = host
|
||||
self.ID = index
|
||||
|
||||
self.name = name
|
||||
self.color = color
|
||||
|
@ -36,7 +37,7 @@ class LabelHost:
|
|||
if name is None:
|
||||
name = "New Label"
|
||||
|
||||
label = Label(self, name, color)
|
||||
label = Label(self, 1+len(self.labels), name, color)
|
||||
self.labels[name] = label
|
||||
return label
|
||||
|
||||
|
@ -67,11 +68,14 @@ class LabelHost:
|
|||
def getLabel(self, name: str) -> Label:
|
||||
return self.labels.get(name)
|
||||
|
||||
def getLabelByID(self, id: int) -> Label | None:
|
||||
index = 0
|
||||
def getLabelByID(self, ID: int | None) -> Label | None:
|
||||
if ID is None:
|
||||
return None
|
||||
|
||||
index = 1
|
||||
for label in self.labels.values():
|
||||
if index == id:
|
||||
if index == ID:
|
||||
assert label.ID == ID
|
||||
return label
|
||||
|
||||
index += 1
|
||||
|
|
|
@ -6,12 +6,12 @@ import os
|
|||
from collections import OrderedDict
|
||||
from enum import Enum, unique
|
||||
from manuskript.data.goal import Goal
|
||||
from manuskript.data.labels import LabelHost
|
||||
from manuskript.data.labels import LabelHost, Label
|
||||
from manuskript.data.plots import Plots
|
||||
from manuskript.data.status import StatusHost
|
||||
from manuskript.data.status import StatusHost, Status
|
||||
from manuskript.data.unique_id import UniqueIDHost
|
||||
from manuskript.io.mmdFile import MmdFile
|
||||
from manuskript.util import CounterKind, countText, validString
|
||||
from manuskript.util import CounterKind, countText, safeInt
|
||||
|
||||
|
||||
@unique
|
||||
|
@ -50,14 +50,20 @@ class OutlineItem:
|
|||
if (item.UID is None) or (item.UID.value != int(ID)):
|
||||
item.UID = item.outline.host.loadID(int(ID))
|
||||
|
||||
def loadLabelByID(outline, labelID: str) -> Label:
|
||||
return outline.labels.getLabelByID(safeInt(labelID, 0))
|
||||
|
||||
def loadStatusByID(outline, statusID: str) -> Label:
|
||||
return outline.statuses.getStatusByID(safeInt(statusID, 0))
|
||||
|
||||
item.title = metadata.get("title", None)
|
||||
item.type = metadata.get("type", "md")
|
||||
item.summarySentence = metadata.get("summarySentence", None)
|
||||
item.summaryFull = metadata.get("summaryFull", None)
|
||||
item.POV = metadata.get("POV", None)
|
||||
item.notes = metadata.get("notes", None)
|
||||
item.label = metadata.get("label", None)
|
||||
item.status = metadata.get("status", None)
|
||||
item.label = loadLabelByID(item.outline, metadata.get("label", None))
|
||||
item.status = loadStatusByID(item.outline, metadata.get("status", None))
|
||||
item.compile = metadata.get("compile")
|
||||
item.goal = Goal.parse(metadata.get("setGoal", None))
|
||||
|
||||
|
@ -75,8 +81,8 @@ class OutlineItem:
|
|||
metadata["summaryFull"] = item.summaryFull
|
||||
metadata["POV"] = item.POV
|
||||
metadata["notes"] = item.notes
|
||||
metadata["label"] = item.label
|
||||
metadata["status"] = item.status
|
||||
metadata["label"] = None if item is None else item.label.ID
|
||||
metadata["status"] = None if item is None else item.status.ID
|
||||
metadata["compile"] = item.compile
|
||||
metadata["setGoal"] = item.goal
|
||||
|
||||
|
|
|
@ -9,8 +9,9 @@ from manuskript.io.textFile import TextFile
|
|||
|
||||
class Status:
|
||||
|
||||
def __init__(self, host, name: str):
|
||||
def __init__(self, host, index: int, name: str):
|
||||
self.host = host
|
||||
self.ID = index
|
||||
|
||||
self.name = name
|
||||
|
||||
|
@ -34,7 +35,7 @@ class StatusHost:
|
|||
if name is None:
|
||||
name = "New Status"
|
||||
|
||||
status = Status(self, name)
|
||||
status = Status(self, 1+len(self.statuses), name)
|
||||
self.statuses[name] = status
|
||||
return status
|
||||
|
||||
|
@ -65,11 +66,14 @@ class StatusHost:
|
|||
def getStatus(self, name: str) -> Status:
|
||||
return self.statuses.get(name)
|
||||
|
||||
def getStatusByID(self, id: int) -> Status | None:
|
||||
index = 0
|
||||
def getStatusByID(self, ID: int | None) -> Status | None:
|
||||
if ID is None:
|
||||
return None
|
||||
|
||||
index = 1
|
||||
for status in self.statuses.values():
|
||||
if index == id:
|
||||
if index == ID:
|
||||
assert status.ID == ID
|
||||
return status
|
||||
|
||||
index += 1
|
||||
|
|
Loading…
Reference in a new issue