jcloude/press/patches/v0_0_1/create_site_subscriptions.py
2025-12-23 21:34:08 +08:00

44 lines
1.1 KiB
Python

# Copyright (c) 2020, Jingrow Technologies Pvt. Ltd. and Contributors
# For license information, please see license.txt
import jingrow
from jingrow.utils import update_progress_bar
def execute():
jingrow.db.sql("DROP TABLE IF EXISTS `tabSubscription`")
jingrow.reload_pg("jcloude", "pagetype", "subscription", force=True)
jingrow.reload_pg("jcloude", "pagetype", "site")
active_sites = jingrow.db.get_all(
"Site",
filters={"status": "Active", "free": False, "team": ("is", "set")},
fields=["name", "team", "plan"],
)
for i, site in enumerate(active_sites):
update_progress_bar("Creating Subscriptions", i, len(active_sites))
# skip if already exists
if jingrow.db.exists(
"Subscription",
{"team": site.team, "document_type": "Site", "document_name": site.name},
):
continue
try:
jingrow.get_pg(
pagetype="Subscription",
enabled=1,
team=site.team,
document_type="Site",
document_name=site.name,
plan=site.plan,
interval="Daily",
).insert()
except jingrow.DuplicateEntryError:
print(f"Failed to create subscription for site {site}")
print()