Hello, I’m new here and still desoriented. I’ve tried to build the follwing script, but it won’t work. Can anybody help me? It’s supposed to help me to archive my recources:
Name: Archivattribute hinzufügen
Version: 1.0
Beschreibung: Fügt Archivattribute zu allen Quellen hinzu
Autoren: OpenAI / ChatGPT
Gramps-Version: 6.0.1
from gramps.gen.plug import Tool, ToolOptions
from gramps.gen.lib import Attribute
from gramps.gui.plug import tool
class AddArchiveAttributesTool(Tool):
def __init__(self, dbstate, user, options, callback=None):
Tool.__init__(self, dbstate, user, options, callback)
self.db = self.dbstate.db
self.trans = self.db.transaction
self.run()
def run(self):
attribute_names = [
"Archivsignatur", "Archivname", "Sammlung / Serie", "Bestandsnummer",
"Signatur alt", "Original vorhanden", "Digitalisat vorhanden",
"Digitalisierungsdatum", "Digitalisiert von", "Scankontrolle",
"Aufbewahrungsort", "Standort", "Provenienz", "Vermerke",
"Zugangsnummer", "Reproduktion erlaubt", "Rechtsstatus", "Ergänzende Bemerkung"
]
count = 0
for handle in self.db.get_source_handles():
source = self.db.get_source_from_handle(handle)
existing = [attr.get_type() for attr in source.get_attribute_list()]
changed = False
for name in attribute_names:
if name not in existing:
source.add_attribute(Attribute(type=name, value=""))
changed = True
if changed:
self.db.commit_source(source, self.trans)
count += 1
self.user.notify(f"{count} Quellen wurden aktualisiert.")
tool.register_tool(
AddArchiveAttributesTool,
ToolOptions,
"Archivattribute hinzufügen",
"Fügt Archivattribute zu allen Quellen hinzu."
)