Feature Proposal: Recurring Publication Schedules and Bulk Issue Generation

Open
#880 2 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
django, python
Domain
database

Research direction

Start by reading the existing publication and issue models and the indexing workflow that creates issues; the issue does not name files, tests, or entry points. This proposal spans recurrence rules, bulk record creation, validation, and preview behavior, so first define a scoped design and identify the relevant model and workflow tests. Done means an agreed design specifies schedule handling, generated fields, duplicate prevention, and review before saving.

Written by the indexing model from the issue text.

Description

Background

Creating issues for regularly published series can be a repetitive and time-consuming task.

This is particularly relevant for newspaper comic strips, where a single series may have thousands of installments and a publication schedule that spans decades.

For example, Peanuts has thousands of individual installments. Creating each one manually would be impractical.

A recurring publication scheduling mechanism could significantly simplify this process.

Proposed functionality

I propose introducing a scheduling mechanism that allows indexers to define recurring publication dates and generate issues in bulk.

The interface could follow a familiar calendar-based approach, similar to Google Calendar.

An indexer should be able to define:

  • A start date and an optional end date.
  • A publication frequency (daily, weekly, monthly, etc.).
  • Specific weekdays (e.g. Monday, Wednesday, and Friday).
  • A publication interval (e.g. every two weeks).
  • Exceptions, such as holidays or dates on which no issue was published.

The system would then generate the corresponding issues within the selected date range.

For example, an indexer could create all Peanuts installments published during 1990 by selecting:

  • Series: Peanuts
  • Start date: January 1, 1990
  • End date: December 31, 1990
  • Frequency: Daily

The system would generate the corresponding installments, allowing the indexer to review and adjust the results before committing them.

Default values

When generating issues in bulk, the indexer should be able to specify default values for relevant fields, such as:

  • Sequence number or publication date.
  • Creator.
  • Number of panels.
  • Color status.
  • Publisher or syndicate.

These defaults could be applied to all generated issues or configured according to the publication schedule.

For example, a newspaper comic strip may have four black-and-white panels from Monday to Saturday, while the Sunday installment has eight panels and is published in color.

The scheduling mechanism should support such variations.

Preview and validation

Before committing the generated issues, the system should provide a preview of the resulting records.

This would allow the indexer to:

  • Review the generated dates and sequence numbers.
  • Identify missing or duplicate installments.
  • Adjust individual dates.
  • Modify default values.
  • Exclude specific dates.
  • Confirm the operation before saving.

The system should also prevent unintended duplication when generating issues for a date range that already contains indexed installments.

Future extensions

The same scheduling mechanism could potentially be extended to newspaper publication runs.

For example, an indexer could associate an existing series with a newspaper for a specified date range and define the newspaper's publication schedule.

The system could then automatically associate the corresponding installments with the newspaper, taking into account:

  • The newspaper's publication days.
  • Different publication dates for the same installment.
  • Exceptions and missing issues.
  • Publication-specific color status.
  • Reprints and alternate installments.

This would be a separate layer of functionality from the generation of the original installments.

Conclusion

Recurring publication scheduling could provide a significant improvement to GCD's indexing workflow.

Rather than manually creating hundreds or thousands of issues, indexers could define a schedule, generate the corresponding records in bulk, and review the results before committing them.

Although newspaper comic strips provide a particularly compelling use case, this functionality could also benefit other regularly published series.

I would like to discuss the feasibility of introducing a reusable scheduling mechanism within GCD's existing publication model.

Dominant language
Python
Stars
122
Forks
36
Avg merge
2d 16h
Merged PRs (30d)
28

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from GrandComicsDatabase/gcd-django

All issues in GrandComicsDatabase/gcd-django

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.