(Updated) groups source creation.

This commit is contained in:
2023-03-25 17:03:47 +02:00
parent 204898d34f
commit 5fd1ac1277
2 changed files with 23 additions and 4 deletions
+21 -4
View File
@@ -135,10 +135,8 @@ class Group(BaseModel):
label=label,
sources=[],
)
for source_label in source_labels:
# continue:
src = Source.get(label=source_label)
group_src, _ = GroupSource.get_or_create(group=group, source=src)
GroupSource.create_group_sources(group, source_labels)
group.save()
return group
@@ -158,6 +156,21 @@ class GroupSource(BaseModel):
group = ForeignKeyField(Group, backref='sources')
source = ForeignKeyField(Source)
@staticmethod
def create_group_source(group:Group, source_label:str) -> bool:
"""
Return group-source created status
"""
src = Source.get(label=source_label)
group_src, created = GroupSource.get_or_create(group=group, source=src)
group_src.save()
return created
@staticmethod
def create_group_sources(group:Group, source_labels:list[str]):
for source_label in source_labels:
GroupSource.create_group_source(group, source_label)
def create_tables():
with db:
tables = [
@@ -179,6 +192,10 @@ def all_labels():
return Source.select(Source.label)
def all_labels_except(labels):
if labels == None:
return all_labels()
if len(labels) == 0:
return all_labels()
with db:
return Source.select(Source.label).where(Source.label.not_in(labels))