# 即使设置了-1，已过期的带有结束时间的事件仍会从即将发生的事件中移除

**URL:** https://meta.discourse.org/t/expired-events-with-end-times-are-being-removed-from-upcoming-events-even-with-setting-set-to-1/234125
**Category:** Support
**Tags:** events
**Created:** [2022 年7 月 27 日 08:45 UTC](https://meta.discourse.org/t/expired-events-with-end-times-are-being-removed-from-upcoming-events-even-with-setting-set-to-1/234125 "2022-07-27T08:45:53Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### 作者： ![Helen22](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/helen22/32/271907_2.png) [@Helen22](https://meta.discourse.org/u/Helen22)
#### 发布日期： [2022 年7 月 27 日 08:45 UTC](https://meta.discourse.org/t/expired-events-with-end-times-are-being-removed-from-upcoming-events-even-with-setting-set-to-1/234125/1 "2022-07-27T08:45:53Z")

</div>

我正在尝试使用日历插件，但它会在事件发生后将其从日历中删除，尽管设置已设置为 -1 以禁用删除。我也尝试将到期时间设置为两年（17532 小时），但这也会在事件发生后立即将其删除。

我发现唯一可以保留日历中事件的方法是删除结束时间和日期。

有人知道为什么 -1 不起作用，以及解决方案是什么吗？

谢谢

---

<div class="post-metadata">

### 作者： ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### 发布日期： [2022 年7 月 27 日 09:11 UTC](https://meta.discourse.org/t/expired-events-with-end-times-are-being-removed-from-upcoming-events-even-with-setting-set-to-1/234125/2 "2022-07-27T09:11:36Z")

</div>

你好，欢迎 @Helen22 🙂

我最近一直在审查这个插件，并且在我的测试站点上正好有几个日历可以用来对照检查。能否请问一下，在出现问题的地方，你使用的是哪种类型的日历？

我在主题中嵌入了日历，那个日历保留了已过期的日历项：

 ![calendar in topic](https://global.discourse-cdn.com/meta/original/4X/4/f/4/4f4eea571e509feccb3ca57aa448cf7e403532f6.png)

我还将其用作分类标题：

 ![calendar as category header](https://global.discourse-cdn.com/meta/original/4X/b/b/4/bb416b8ae6c90dbb6299d014f1bc17f0c5aff2eb.png)

此外，我还为事件类型的项设置了一个 `/upcoming-event` 日历：

 ![upcoming-event](https://global.discourse-cdn.com/meta/original/4X/d/b/a/dbadc5a8144ce8423761551ef1121b2cf46c4095.png)

我目前还没有将事件类型的日历用作分类标题，所以我怀疑问题可能出在那里…… 🙂

* * *

实际上，让我再确认一下结束时间……

是的，看起来添加结束时间会导致事件从 `/upcoming-event` 日历中消失，这确实与其他日历的行为不一致。我认为我们应该将此问题转移到 #Contribute > Bug 分类，看看能否请人帮忙查看。👍

（顺便说一句，为了彻底起见，非事件类型的日历即使包含结束日期，也按预期正常工作。）

---

<div class="post-metadata">

### 作者： ![Benjamin\_D](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/benjamin_d/32/277831_2.png) [@Benjamin\_D](https://meta.discourse.org/u/Benjamin_D)
#### 发布日期： [2022 年7 月 27 日 10:01 UTC](https://meta.discourse.org/t/expired-events-with-end-times-are-being-removed-from-upcoming-events-even-with-setting-set-to-1/234125/4 "2022-07-27T10:01:13Z")

</div>

如果您指的是 `delete expired event posts after` 设置，我认为它会阻止删除帖子，但不会阻止显示活动。此外，我认为这里的“活动”一词具有误导性，它在日历部分，所以我认为它更多地意味着“与日期相关的事物”，而不是“可以回复的活动”。  
这是一个日历活动，而不是一个事件活动。

活动活动旨在显示在 `/upcoming-events` 中，因此没有过去的内容……

> <https://github.com/discourse/discourse-calendar/blob/e544ef61fd90b25a2e984c30cb4efa00ee8051f2/lib/discourse_post_event/event_finder.rb#L17-L25>

实际上，有一个关于此的 PR：[FEATURE: Show all events in past (add deleted\_at in discourse\_calendar\_post\_event\_dates) + add show\_past\_event in settings by ledadu · Pull Request #199 · discourse/discourse-calendar · GitHub](https://github.com/discourse/discourse-calendar/pull/199)

---

<div class="post-metadata">

### 作者： ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### 发布日期： [2022 年7 月 27 日 10:08 UTC](https://meta.discourse.org/t/expired-events-with-end-times-are-being-removed-from-upcoming-events-even-with-setting-set-to-1/234125/5 "2022-07-27T10:08:15Z")

</div>

我无法确定这个怪癖是它_确实_显示了没有结束时间的过去事件，还是它不显示有结束时间的过去事件。如果这是预期与实际行为之间的情况，也许我可以将其包含在插件主题重写中？

---

<div class="post-metadata">

### 作者： ![Benjamin\_D](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/benjamin_d/32/277831_2.png) [@Benjamin\_D](https://meta.discourse.org/u/Benjamin_D)
#### 发布日期： [2022 年7 月 27 日 10:21 UTC](https://meta.discourse.org/t/expired-events-with-end-times-are-being-removed-from-upcoming-events-even-with-setting-set-to-1/234125/6 "2022-07-27T10:21:41Z")

</div>

🤔 如果一个事件没有结束时间，它是否可能发生在过去？

![Car Chase Action GIF by Regal](https://global.discourse-cdn.com/meta/original/4X/f/f/8/ff8ce7b2598bca155b4cbbefa8e0dcc4d4e3a060.webp)

我认为现在的行为是符合预期的，不显示过去的事件（即结束时间在过去的事件），但提供一个能够显示所有事件的选项可能会很好（但这可能会带来意外的 UI 影响，我在这里想到的是：[https://github.com/paviliondev/layouts-event-list-widget）。](https://github.com/paviliondev/layouts-event-list-widget%EF%BC%89%E3%80%82)  
如果你要重写这个主题，请务必 😅 “event”应该只用来描述与事件相关的事物，当它与日历相关时会非常令人困惑。

---

<div class="post-metadata">

### 作者： ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### 发布日期： [2022 年7 月 27 日 10:32 UTC](https://meta.discourse.org/t/expired-events-with-end-times-are-being-removed-from-upcoming-events-even-with-setting-set-to-1/234125/7 "2022-07-27T10:32:43Z")

</div>

> [@Benjamin\_D](#):
>
> 如果你要重写这个主题，请 😅 “event” 应该只用来描述与事件相关的事物，当它与日历相关时会非常令人困惑

是的。👍 而且可能还需要调整一些设置描述。🤞

与其现在把它移到另一个类别，不如留在这里，看看我是否能获得更多清晰的信息，然后再为它找到一个永久的归宿。🙂

但感谢你对这个插件如此了解，这确实很有帮助。👍 🙂

---

<div class="post-metadata">

### 作者： ![Helen22](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/helen22/32/271907_2.png) [@Helen22](https://meta.discourse.org/u/Helen22)
#### 发布日期： [2022 年7 月 28 日 06:05 UTC](https://meta.discourse.org/t/expired-events-with-end-times-are-being-removed-from-upcoming-events-even-with-setting-set-to-1/234125/8 "2022-07-28T06:05:05Z")

</div>

感谢大家的评论 -

> [@JammyDodger](#):
>
> 您能告诉我您使用的是哪种日历类型，它无法正常工作吗？

我们有来自汉堡菜单的“即将发生的事件”日历，以及类别中的“即将发生的事件”。它们都无法保留事件。

> [@JammyDodger](#):
>
> 非事件风格的日历工作正常

我在哪里可以找到它？

> [@Benjamin\_D](#):
>
> 但能够显示所有事件的选项会很好

我同意这一点，因为从视觉上看，当“即将发生的事件”日历中有内容时，它看起来比没有内容时更被充分利用。

---

<div class="post-metadata">

### 作者： ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### 发布日期： [2022 年7 月 28 日 09:07 UTC](https://meta.discourse.org/t/expired-events-with-end-times-are-being-removed-from-upcoming-events-even-with-setting-set-to-1/234125/9 "2022-07-28T09:07:27Z")

</div>

> [@Helen22](#):
>
> 在哪里可以找到这个？

你可以通过在帖子的 OP（首帖）中添加以下内容来创建一个常规日历：（勾选 `calendar enabled` 选项）

```plaintext
[calendar]
[/calendar]

```

然后，所有带有描述和日期的后续帖子都会被添加到该日历中。例如：

```plaintext
这是我的生日！
[date-range from=2022-12-20 to=2020-12-21 timezone="America/Boise"]

```

你可以从分类 URL 的末尾获取你希望更突出显示该日历的分类 ID，并从 JSON 中获取日历主题的帖子 ID，然后将它们添加到以下设置中：

 ![calendar categories](https://global.discourse-cdn.com/meta/original/4X/8/f/c/8fcd8133ccca037834eba6ef140f7f88f600407d.png)

这些主题中的日历项目帖子受 `delete expired event posts after`（删除过期的活动帖子后）设置的控制。 👍

在 [Discourse Calendar and Events](https://meta.discourse.org/t/discourse-calendar/97376) 主题中有更详细的信息， ~~如果你需要额外的帮助，也可以随时发起一个新的 #Support 主题。 🙂~~

实际上，既然我们知道该设置按预期工作，现在是时候将这个主题转移到 #Support 板块作为其永久家园了。在我更新了 Calendar&Event 文档后，也许值得创建新的 #Contribute > UX 或 #Contribute > Feature 主题来涵盖任何遗漏的想法。 👍

---

<div class="post-metadata">

### 作者： ![Helen22](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/helen22/32/271907_2.png) [@Helen22](https://meta.discourse.org/u/Helen22)
#### 发布日期： [2022 年7 月 29 日 06:55 UTC](https://meta.discourse.org/t/expired-events-with-end-times-are-being-removed-from-upcoming-events-even-with-setting-set-to-1/234125/10 "2022-07-29T06:55:50Z")

</div>

感谢您的帮助@JammyDodger。我真的很感激。\n\n所以，为了回顾并澄清我最初问题的答案，目前有没有办法在事件发生后将其保留在“即将发生的事件”日历中，除非我删除结束时间？

---

<div class="post-metadata">

### 作者： ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### 发布日期： [2022 年7 月 29 日 07:52 UTC](https://meta.discourse.org/t/expired-events-with-end-times-are-being-removed-from-upcoming-events-even-with-setting-set-to-1/234125/11 "2022-07-29T07:52:44Z")

</div>

没关系。很高兴能帮到你。 🙂

是的，目前在 event-calendar/upcoming-events 中保留活动式项目的唯一方法是删除它们的结束日期。我想知道是否可以创建“过去活动”或“活动历史”日历主题来使用日历项目来实现类似的功能？我不确定这是否适合您，但也许值得探索？

---

<div class="post-metadata">

### 作者： ![Helen22](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/helen22/32/271907_2.png) [@Helen22](https://meta.discourse.org/u/Helen22)
#### 发布日期： [2022 年7 月 29 日 08:24 UTC](https://meta.discourse.org/t/expired-events-with-end-times-are-being-removed-from-upcoming-events-even-with-setting-set-to-1/234125/12 "2022-07-29T08:24:07Z")

</div>

是的，这可能会奏效。我会去研究一下。谢谢！

---

<div class="post-metadata">

### 作者： ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### 发布日期： [2022 年11 月 9 日 12:37 UTC](https://meta.discourse.org/t/expired-events-with-end-times-are-being-removed-from-upcoming-events-even-with-setting-set-to-1/234125/13 "2022-11-09T12:37:54Z")

</div>


