},
)
+ # Delete Source!
+
+ def delete_source(self, name, **kwargs):
+ """
+ Removes a source from the list
+ """
+ # Delete the source
+ for source in self.sources:
+ if source.name == name:
+ source.delete(**kwargs)
+ break
+
+ # The list has now been updated
+ self.updated_at = sqlmodel.func.current_timestamp()
+
# Updated At
updated_at : datetime.datetime | None
from . import database
from . import util
+from .i18n import _
# Setup logging
log = logging.getLogger(__name__)
# Domains
domains : "SourceDomain" = sqlmodel.Relationship(back_populates="source")
+ # Delete!
+
+ def delete(self, deleted_by):
+ """
+ Deletes the source
+ """
+ self.deleted_at = sqlmodel.func.current_timestamp()
+ self.deleted_by = deleted_by
+
+ # Log action
+ log.info(_("Source '%s' has been deleted from '%s'") % (self, self.list))
+
def update(self):
"""
Updates this source.
delete = subparsers.add_parser("delete", help=_("Delete a list"))
delete.add_argument("list", help=_("The name of the list"))
delete.add_argument("--deleted-by", required=True,
- default=os.environ.get("USER"), help=_("The person deleting the list"))
+ default=os.environ.get("USER"), help=_("The person deleting the list"))
delete.set_defaults(func=self.__delete)
# show
default=os.environ.get("USER"), help=_("The creator of the source"))
add_source.set_defaults(func=self.__add_source)
+ # delete-source
+ delete_source = subparsers.add_parser("delete-source",
+ help=_("Deletes a source from a list"))
+ delete_source.add_argument("list",
+ help=_("The name of the list"))
+ delete_source.add_argument("source",
+ help=_("The name of the source"))
+ delete_source.add_argument("--deleted-by", required=True,
+ default=os.environ.get("USER"), help=_("The person deleting the list"))
+ delete_source.set_defaults(func=self.__delete_source)
+
# Parse all arguments
args = parser.parse_args()
license = args.license,
)
+ def __delete_source(self, backend, args):
+ """
+ Removes a source from a list
+ """
+ # Fetch the list
+ list = backend.lists.get_by_slug(args.list)
+
+ # Remove the source
+ list.delete_source(
+ name = args.source,
+ deleted_by = args.deleted_by,
+ )
+
def main():
c = CLI()