mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-10-01 09:46:30 +13:00
Fixed differences between new data models and sample data
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
This commit is contained in:
parent
41b3f23fac
commit
674cebdea2
6 changed files with 34 additions and 19 deletions
|
@ -14,3 +14,5 @@ path = os.path.join(sys.path[1], "sample-projects/book-of-acts")
|
||||||
|
|
||||||
project = data.Project(path + ".msk")
|
project = data.Project(path + ".msk")
|
||||||
project.load()
|
project.load()
|
||||||
|
|
||||||
|
project.save()
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
from collections import OrderedDict
|
||||||
from manuskript.data.color import Color
|
from manuskript.data.color import Color
|
||||||
from manuskript.data.unique_id import UniqueIDHost
|
from manuskript.data.unique_id import UniqueIDHost
|
||||||
from manuskript.io.mmdFile import MmdFile
|
from manuskript.io.mmdFile import MmdFile
|
||||||
|
@ -17,7 +18,7 @@ class Character:
|
||||||
self.UID = None
|
self.UID = None
|
||||||
self.name = None
|
self.name = None
|
||||||
self.importance = None
|
self.importance = None
|
||||||
self.pov = True
|
self.POV = None
|
||||||
self.motivation = None
|
self.motivation = None
|
||||||
self.goal = None
|
self.goal = None
|
||||||
self.conflict = None
|
self.conflict = None
|
||||||
|
@ -29,6 +30,9 @@ class Character:
|
||||||
self.color = None
|
self.color = None
|
||||||
self.details = dict()
|
self.details = dict()
|
||||||
|
|
||||||
|
def allowPOV(self) -> bool:
|
||||||
|
return True if self.POV is None else self.POV
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def loadAttribute(cls, metadata: dict, name: str, defaultValue=None):
|
def loadAttribute(cls, metadata: dict, name: str, defaultValue=None):
|
||||||
if name in metadata:
|
if name in metadata:
|
||||||
|
@ -47,7 +51,7 @@ class Character:
|
||||||
self.UID = self.characters.host.loadID(int(ID))
|
self.UID = self.characters.host.loadID(int(ID))
|
||||||
self.name = Character.loadAttribute(metadata, "Name", None)
|
self.name = Character.loadAttribute(metadata, "Name", None)
|
||||||
self.importance = Character.loadAttribute(metadata, "Importance", None)
|
self.importance = Character.loadAttribute(metadata, "Importance", None)
|
||||||
self.pov = Character.loadAttribute(metadata, "POV", True)
|
self.POV = Character.loadAttribute(metadata, "POV", None)
|
||||||
self.motivation = Character.loadAttribute(metadata, "Motivation", None)
|
self.motivation = Character.loadAttribute(metadata, "Motivation", None)
|
||||||
self.goal = Character.loadAttribute(metadata, "Goal", None)
|
self.goal = Character.loadAttribute(metadata, "Goal", None)
|
||||||
self.conflict = Character.loadAttribute(metadata, "Conflict", None)
|
self.conflict = Character.loadAttribute(metadata, "Conflict", None)
|
||||||
|
@ -64,15 +68,12 @@ class Character:
|
||||||
self.details[key] = value
|
self.details[key] = value
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
metadata = dict()
|
metadata = OrderedDict()
|
||||||
|
|
||||||
for (key, value) in self.details.items():
|
|
||||||
metadata[key] = value
|
|
||||||
|
|
||||||
metadata["ID"] = str(self.UID.value)
|
|
||||||
metadata["Name"] = self.name
|
metadata["Name"] = self.name
|
||||||
|
metadata["ID"] = str(self.UID.value)
|
||||||
metadata["Importance"] = self.importance
|
metadata["Importance"] = self.importance
|
||||||
metadata["POV"] = self.pov
|
metadata["POV"] = self.POV
|
||||||
metadata["Motivation"] = self.motivation
|
metadata["Motivation"] = self.motivation
|
||||||
metadata["Goal"] = self.goal
|
metadata["Goal"] = self.goal
|
||||||
metadata["Conflict"] = self.conflict
|
metadata["Conflict"] = self.conflict
|
||||||
|
@ -83,6 +84,10 @@ class Character:
|
||||||
metadata["Notes"] = self.notes
|
metadata["Notes"] = self.notes
|
||||||
metadata["Color"] = self.color
|
metadata["Color"] = self.color
|
||||||
|
|
||||||
|
for (key, value) in self.details.items():
|
||||||
|
if not (key in metadata):
|
||||||
|
metadata[key] = value
|
||||||
|
|
||||||
self.file.save((metadata, None))
|
self.file.save((metadata, None))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -13,11 +13,14 @@ class GoalKind(Enum):
|
||||||
class Goal:
|
class Goal:
|
||||||
|
|
||||||
def __init__(self, value: int = 0, kind: GoalKind = GoalKind.WORDS):
|
def __init__(self, value: int = 0, kind: GoalKind = GoalKind.WORDS):
|
||||||
self.value = 0
|
self.value = value
|
||||||
self.kind = kind
|
self.kind = kind
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.value) + " " + self.kind.name.lower()
|
if self.kind != GoalKind.WORDS:
|
||||||
|
return str(self.value) + " " + self.kind.name.lower()
|
||||||
|
else:
|
||||||
|
return str(self.value)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def parse(cls, string: str):
|
def parse(cls, string: str):
|
||||||
|
|
|
@ -66,7 +66,7 @@ class LabelHost:
|
||||||
def save(self):
|
def save(self):
|
||||||
metadata = dict()
|
metadata = dict()
|
||||||
|
|
||||||
for label in self.labels:
|
for (name, label) in self.labels.items():
|
||||||
metadata[label.name] = label.color
|
metadata[name] = label.color
|
||||||
|
|
||||||
self.file.save((metadata, None))
|
self.file.save((metadata, None))
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
from collections import OrderedDict
|
||||||
from enum import Enum, unique
|
from enum import Enum, unique
|
||||||
from manuskript.data.goal import Goal
|
from manuskript.data.goal import Goal
|
||||||
from manuskript.data.unique_id import UniqueIDHost
|
from manuskript.data.unique_id import UniqueIDHost
|
||||||
|
@ -56,13 +57,13 @@ class OutlineItem:
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def saveMetadata(cls, item):
|
def saveMetadata(cls, item):
|
||||||
metadata = dict()
|
metadata = OrderedDict()
|
||||||
|
|
||||||
if item.UID is None:
|
if item.UID is None:
|
||||||
return metadata
|
return metadata
|
||||||
|
|
||||||
metadata["ID"] = str(item.UID.value)
|
|
||||||
metadata["title"] = item.title
|
metadata["title"] = item.title
|
||||||
|
metadata["ID"] = str(item.UID.value)
|
||||||
metadata["type"] = item.type
|
metadata["type"] = item.type
|
||||||
metadata["summarySentence"] = item.summarySentence
|
metadata["summarySentence"] = item.summarySentence
|
||||||
metadata["summaryFull"] = item.summaryFull
|
metadata["summaryFull"] = item.summaryFull
|
||||||
|
@ -71,7 +72,7 @@ class OutlineItem:
|
||||||
metadata["label"] = item.label
|
metadata["label"] = item.label
|
||||||
metadata["status"] = item.status
|
metadata["status"] = item.status
|
||||||
metadata["compile"] = item.compile
|
metadata["compile"] = item.compile
|
||||||
metadata["setGoal"] = str(item.goal)
|
metadata["setGoal"] = item.goal
|
||||||
|
|
||||||
return metadata
|
return metadata
|
||||||
|
|
||||||
|
@ -101,6 +102,7 @@ class OutlineText(OutlineItem):
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
if self.state == OutlineState.OPTIMIZED:
|
if self.state == OutlineState.OPTIMIZED:
|
||||||
|
self.outline.host.removeID(self.UID)
|
||||||
self.load(False)
|
self.load(False)
|
||||||
|
|
||||||
metadata = OutlineItem.saveMetadata(self)
|
metadata = OutlineItem.saveMetadata(self)
|
||||||
|
@ -163,7 +165,7 @@ class OutlineFolder(OutlineItem):
|
||||||
def save(self):
|
def save(self):
|
||||||
self.type = "folder"
|
self.type = "folder"
|
||||||
metadata = OutlineItem.saveMetadata(self)
|
metadata = OutlineItem.saveMetadata(self)
|
||||||
self.file.save((metadata, ""))
|
self.file.save((metadata, "\n"))
|
||||||
|
|
||||||
|
|
||||||
class Outline:
|
class Outline:
|
||||||
|
|
|
@ -8,7 +8,7 @@ from manuskript.io.abstractFile import AbstractFile
|
||||||
|
|
||||||
class MmdFile(AbstractFile):
|
class MmdFile(AbstractFile):
|
||||||
|
|
||||||
def __init__(self, path, metaSpacing = 16):
|
def __init__(self, path, metaSpacing=16):
|
||||||
AbstractFile.__init__(self, path)
|
AbstractFile.__init__(self, path)
|
||||||
|
|
||||||
self.metaSpacing = metaSpacing
|
self.metaSpacing = metaSpacing
|
||||||
|
@ -56,7 +56,10 @@ class MmdFile(AbstractFile):
|
||||||
metadata, body = content
|
metadata, body = content
|
||||||
metaSpacing = self.metaSpacing
|
metaSpacing = self.metaSpacing
|
||||||
|
|
||||||
for key in metadata.keys():
|
for (key, value) in metadata.items():
|
||||||
|
if value is None:
|
||||||
|
continue
|
||||||
|
|
||||||
metaSpacing = max(metaSpacing, len(key) + 2)
|
metaSpacing = max(metaSpacing, len(key) + 2)
|
||||||
|
|
||||||
with open(self.path, 'wt', encoding='utf-8') as file:
|
with open(self.path, 'wt', encoding='utf-8') as file:
|
||||||
|
@ -65,7 +68,7 @@ class MmdFile(AbstractFile):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
spacing = metaSpacing - (len(key) + 2)
|
spacing = metaSpacing - (len(key) + 2)
|
||||||
lines = value.split("\n")
|
lines = str(value).split("\n")
|
||||||
|
|
||||||
file.write(key + ": " + spacing * " " + lines[0] + "\n")
|
file.write(key + ": " + spacing * " " + lines[0] + "\n")
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue