跳转到主要内容

使用Django中Google Sheets集成处理延期请求的库

项目描述

mitol-django-google-sheets-deferrals

这是开源学习Django Google Sheets库,用于通过Google Sheets处理延期请求

设置

在您开始设置此库之前,请确保首先设置了 mitol-django-google-sheets。请按照此处的说明进行操作。

安装好 mitol-django-google-sheets 后,

pip install mitol-django-google-sheets-deferrals

settings.py

INSTALLED_APPS = [
    ...
    "mitol.google_sheets_deferrals.apps.GoogleSheetsDeferralsApp",
]
MITOL_GOOGLE_SHEETS_DEFERRALS_PLUGINS = [
    "ecommerce.plugins.DeferralPlugin"
]

ecommerce/plugins.py

from mitol.google_sheets_deferrals.hooks import hookimpl

class DeferralPlugin:
    @hookimpl
    def deferrals_process_request(deferral_request: DeferralRequestRow) -> DeferralResult:
        # TODO: look up the user/enrollment
        # TODO: unenroll user from and enroll to

创建您的Google Sheets文件夹

文件夹的结构应如下所示

  1. 包含具有“延期表格响应”和“延期”表格的电子表格,这些表格正在处理。
  2. 请求表格

向开发者请求一个模板文件夹以复制此结构。

将设置添加到您的应用程序中

在您的 .env 文件中设置 MITOL_GOOGLE_SHEETS_DEFERRALS_REQUEST_WORKSHEET_ID。这是必需的。

某些设置具有默认值,您可能需要根据您的表格进行更新。

设置说明(除 mitol-django-google-sheets 中描述的设置外)

  • MITOL_GOOGLE_SHEETS_DEFERRALS_REQUEST_WORKSHEET_ID

    在入学更改电子表格中包含退款和延期表格的ID。这些可以通过打开电子表格,选择“退款”或“延期”工作表,并复制URL中的 gid 值来找到。

    示例: https://docs.google.com/spreadsheets/d/<MITOL_GOOGLE_SHEETS_ENROLLMENT_CHANGE_SHEET_ID>/edit#gid=<MITOL_GOOGLE_SHEETS_DEFERRALS_REQUEST_WORKSHEET_ID>

  • MITOL_GOOGLE_SHEETS_DEFERRALS_PROCESSOR_COL

    包含处理行的用户的延期更改表格列的零索引

  • MITOL_GOOGLE_SHEETS_DEFERRALS_COMPLETED_DATE_COL

    包含行完成日期的延迟变更表列的零基索引

  • MITOL_GOOGLE_SHEETS_DEFERRALS_ERROR_COL

    包含行处理错误消息的延迟变更表列的零基索引

  • MITOL_GOOGLE_SHEETS_DEFERRALS_SKIP_ROW_COL

    指示是否应跳过行的延迟变更表列的零基索引

  • MITOL_GOOGLE_SHEETS_DEFERRALS_FIRST_ROW

    脚本应处理延迟请求工作表中的数据的第一行(如工作表中所示)

用法

要处理您的具有延迟请求的Google表格,只需添加

deferral_request_handler = DeferralRequestHandler()
results = deferral_request_handler.process_sheet()

以下是我们在当前获取Google Sheets延迟处理的主要两种方式

  1. 运行管理命令。例如:./manage.py process_deferral_requests -i "<spreadsheet id>"
  2. 设置计划任务celery。例如
from mitol.google_sheets_deferrals.api import DeferralRequestHandler
from main.celery import app

@app.task
def process_deferral_requests():
    """
    Task to process deferral requests from Google sheets
    """
    deferral_request_handler = DeferralRequestHandler()
    if not deferral_request_handler.is_configured():
        log.warning("MITOL_GOOGLE_SHEETS_* are not set")
        return
    deferral_request_handler.process_sheet()

开发人员设置

对于本地开发和测试,请按照以下指示操作 开发人员设置 这里.

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

构建分布

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面