Angus' Events Plugin πŸ“…

ν”ŒλŸ¬κ·ΈμΈμ΄ Discourse μ—…λ°μ΄νŠΈ μ‹œ 였λ₯˜λ₯Ό μΌμœΌν‚€λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€:

I, [2025-01-04T22:51:50.065854 #1]  INFO -- :
I, [2025-01-04T22:51:50.066464 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
2025-01-04 22:52:07.682 UTC [1886] discourse@discourse ERROR:  null value in column "created_at" of relation "discourse_events_event_topics" violates not-null constraint
2025-01-04 22:52:07.682 UTC [1886] discourse@discourse DETAIL:  Failing row contains (1, 1, 1239, null, events, null, null).
2025-01-04 22:52:07.682 UTC [1886] discourse@discourse STATEMENT:
	      INSERT INTO discourse_events_event_topics (topic_id, event_id, client, series_id)
	      SELECT ec.topic_id, ec.event_id, ec.client, ec.series_id
	      FROM discourse_events_event_connections ec

rake aborted!
StandardError: An error has occurred, this and all later migrations canceled: (StandardError)

PG::NotNullViolation: ERROR:  null value in column "created_at" of relation "discourse_events_event_topics" violates not-null constraint
DETAIL:  Failing row contains (1, 1, 1239, null, events, null, null).

ν”ŒλŸ¬κ·ΈμΈμ΄ λΉ„ν™œμ„±ν™”λœ μƒνƒœμ—μ„œλŠ” μ—…λ°μ΄νŠΈκ°€ μ •μƒμ μœΌλ‘œ μ‹€ν–‰λ©λ‹ˆλ‹€.

3개의 μ’‹μ•„μš”

μ•Œλ €μ€˜μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. 이 λ¬Έμ œμ— λŒ€ν•œ μˆ˜μ •μ„ μ μš©ν–ˆμŠ΅λ‹ˆλ‹€. ν”ŒλŸ¬κ·ΈμΈμ„ μ„€μΉ˜ν•œ μƒνƒœμ—μ„œ μ—…λ°μ΄νŠΈλ₯Ό μ‹œλ„ν•΄ μ£Όμ‹œκ² μ–΄μš”?

4개의 μ’‹μ•„μš”

λΉ λ₯Έ μˆ˜μ • κ°μ‚¬ν•©λ‹ˆλ‹€, @Angus! λ‹€μ‹œ μ›ν™œν•˜κ²Œ μž‘λ™ν•˜λŠ” 것을 ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

5개의 μ’‹μ•„μš”

참고둜, 이 ν”ŒλŸ¬κ·ΈμΈμ€ 가격 λŒ€λΉ„ κ°€μΉ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€!

3개의 μ’‹μ•„μš”

μ•ˆλ…•ν•˜μ„Έμš”

ν˜Ήμ‹œ 이 μ˜΅μ…˜μ˜ 효과(그리고 μž₯점)λ₯Ό μ„€λͺ…ν•΄ μ£Όμ‹€ 수 μžˆλ‚˜μš”?

제 머리가 이해가 μ•ˆ λΌμš”β€¦ :brain:

κ°μ‚¬ν•©λ‹ˆλ‹€

image

λ„€, 더 잘 μ„€λͺ…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

반볡 μ΄λ²€νŠΈλŠ” 이벀트의 "μ‹œλ¦¬μ¦ˆ"μž…λ‹ˆλ‹€. 이 ν”ŒλŸ¬κ·ΈμΈμœΌλ‘œ μ—°κ²°λœ μ™ΈλΆ€ μ„œλΉ„μŠ€(예: Google μΊ˜λ¦°λ”)μ—μ„œ 반볡 이벀트λ₯Ό μƒμ„±ν•˜λ©΄, 이 ν”ŒλŸ¬κ·ΈμΈμ€ μ„€μ •ν•œ κ°€μ Έμ˜€κΈ° λ§€κ°œλ³€μˆ˜ λ‚΄μ—μ„œ ν•΄λ‹Ή μ‹œλ¦¬μ¦ˆμ˜ λͺ¨λ“  이벀트λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€.

κ°€μ Έμ˜¨ μ΄λ²€νŠΈμ— λŒ€ν•΄ μžλ™ ν† ν”½ 동기화가 μ„€μ •λ˜μ–΄ μžˆλ‹€λ©΄, 이 섀정은 ν•΄λ‹Ή 이벀트 μ‹œλ¦¬μ¦ˆμ— λŒ€ν•΄ ν•˜λ‚˜μ˜ 토픽을 λ§Œλ“€μ§€ μ—¬λŸ¬ 개의 토픽을 λ§Œλ“€μ§€λ₯Ό κ²°μ •ν•©λ‹ˆλ‹€. 이 섀정이 ν™œμ„±ν™”λ˜μ–΄ 있으면, μ‹œλ¦¬μ¦ˆμ— λŒ€ν•΄ ν•˜λ‚˜μ˜ 토픽이 μƒμ„±λ˜λ©°, 이전 μ΄λ²€νŠΈκ°€ μ§€λ‚˜κ°€λ©΄ μ‹œλ¦¬μ¦ˆμ˜ λ‹€μŒ 이벀트둜 μ—…λ°μ΄νŠΈλ©λ‹ˆλ‹€. 섀정이 λΉ„ν™œμ„±ν™”λ˜μ–΄ 있으면, μ‹œλ¦¬μ¦ˆμ˜ 각 μ΄λ²€νŠΈλ§ˆλ‹€ λ³„λ„μ˜ 토픽이 μƒμ„±λ©λ‹ˆλ‹€.

ν•˜μ§€λ§Œ λ„€, 더 λ‚˜μ€ μ„€λͺ…이 ν•„μš”ν•©λ‹ˆλ‹€.

2개의 μ’‹μ•„μš”

μ•ˆκ±°μŠ€λ‹˜, μ•ˆλ…•ν•˜μ„Έμš”. UKDHC Discourse에 μ—…λ°μ΄νŠΈλ₯Ό μ§„ν–‰ν•œ ν›„ Discourse μ›Ή 앱이 λ‘œλ“œλ˜μ§€ μ•ŠλŠ” λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 쑰사해 λ³Έ κ²°κ³Ό, 이벀트 ν”ŒλŸ¬κ·ΈμΈμ΄ μ›μΈμ΄μ—ˆλ˜ κ²ƒμœΌλ‘œ λ³΄μž…λ‹ˆλ‹€. μ›Ή 앱이 λ‹€μ‹œ λ‘œλ“œλ˜λ„λ‘ ν”ŒλŸ¬κ·ΈμΈμ„ λΉ„ν™œμ„±ν™”ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€. 이 문제λ₯Ό 쑰사해 μ£Όμ‹œκ³  μ‘°μ–Έν•΄ μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€. 미리 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. ν”„λž‘μˆ˜μ•„ λ“œλ¦Ό

5개의 μ’‹μ•„μš”

Angus, μ΅œμ‹  λ²„μ „μ—μ„œλŠ” TCκ°€ μž‘λ™ν•˜μ§€ λͺ»ν•˜κ²Œ λ§Œλ“œλŠ” λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€(3.5.0.beta2-dev, Theme component have become nonoperative due to the discourse-events plugin).

Uncaught Error: Could not find module `discourse/mixins/singleton` imported from `discourse/plugins/discourse-events/discourse/models/provider`
    at loader.js:247:1
    at h (loader.js:258:1)
    at u.findDeps (loader.js:168:1)
    at h (loader.js:262:1)
    at u.findDeps (loader.js:168:1)
    at h (loader.js:262:1)
    at requireModule (loader.js:24:1)
    at y (app.js:170:18)
    at b (app.js:193:19)
    at app.js:156:29
    at g.start (app.js:167:1)
    at HTMLDocument.<anonymous> (start-app.js:5:7)
    at discourse-boot.js:13:12
    at discourse-boot.js:1:1

이 λ¬Έμ œλŠ” 믹슀인이 클래슀 λ°μ½”λ ˆμ΄ν„°λ‘œ λ¦¬νŒ©ν† λ§λœ λ³€κ²½ 사항(DEV: refactor singleton mixin to class decorator - Pull Request #30498 - discourse/discourse - GitHub)κ³Ό 관련이 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

4개의 μ’‹μ•„μš”

@Arkshine κ°μ‚¬ν•©λ‹ˆλ‹€. 이 컀밋을 되돌릴 μ˜ˆμ •μž…λ‹ˆλ‹€: Revert "DEV: remove singleton mixin (#31823)" - Pull Request #31857 - discourse/discourse - GitHub

@kelvκ°€ 이번 μ£Ό ν›„λ°˜μ— 상황을 λ‹€μ‹œ 평가할 μ˜ˆμ •μž…λ‹ˆλ‹€.

6개의 μ’‹μ•„μš”

μˆ˜μ •ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€, @j.jaffeux :slight_smile:

였λ₯˜λŠ” μ—¬κΈ°μ„œ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€: angus-events-plugin/assets/javascripts/discourse/models/provider.js at b38f3258115110c07951f18e2c3562ac3e68a301 Β· angusmcleod/angus-events-plugin Β· GitHub

μ˜¬ν•΄ 초 ν•΄λ‹Ή Singleton λ―Ήμ‹ μ˜ μ‚¬μš©μ„ λΉ„μΆ”μ²œ(deprecated)으둜 μ „ν™˜ν–ˆμŠ΅λ‹ˆλ‹€. 이 PRμ—μ„œ Singleton을 λ°μ½”λ ˆμ΄ν„°λ‘œ μ‚¬μš©ν•˜λ„λ‘ 클래슀λ₯Ό λ¦¬νŒ©ν† λ§ν•˜λŠ” 방법에 λŒ€ν•œ μ°Έκ³  자료λ₯Ό 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

@angus, 확인해 μ£Όμ‹€ 수 μžˆμ„κΉŒμš”? RestModel에 λ°μ½”λ ˆμ΄ν„°λ₯Ό μ μš©ν•˜λ©΄ λ˜λ―€λ‘œ 비ꡐ적 μ΅œμ†Œν•œμ˜ λ³€κ²½ 사항이 될 κ²ƒμž…λ‹ˆλ‹€.

3개의 μ’‹μ•„μš”

λͺ¨λ‘ κ°μ‚¬ν•©λ‹ˆλ‹€. 이 ν”ŒλŸ¬κ·ΈμΈμ„ μ‹±κΈ€ν„΄ λ°μ½”λ ˆμ΄ν„°λ₯Ό μ‚¬μš©ν•˜λ„λ‘ μ—…λ°μ΄νŠΈν–ˆμŠ΅λ‹ˆλ‹€.

5개의 μ’‹μ•„μš”

@G4sD0c μ—…λ°μ΄νŠΈλ₯Ό μ‹œλ„ν•΄ λ³΄μ‹œκ³ , λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆλŠ”μ§€ μ•Œλ €μ£Όμ‹€ 수 μžˆμ„κΉŒμš”?

4개의 μ’‹μ•„μš”

μ•ˆλ…•ν•˜μ„Έμš”,

Events ν”ŒλŸ¬κ·ΈμΈκ³Ό Location ν”ŒλŸ¬κ·ΈμΈμ„ ν•¨κ»˜ μ‚¬μš©ν•˜μ—¬ 주제λ₯Ό 생성할 λ•Œ 버그가 λ°œμƒν•©λ‹ˆλ‹€.

λ²„κ·Έμ˜ λ‚΄μš©μ€ Events에 μž…λ ₯ν•œ λ‚ μ§œ 값이 없이 μ£Όμ œκ°€ μƒμ„±λœλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

상세 정보:

  • 주제λ₯Ό λ‹€μ‹œ μ—΄μ–΄ λ‚ μ§œλ₯Ό μž…λ ₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • μœ„μΉ˜ 없이 주제λ₯Ό μƒμ„±ν•˜λ©΄ λ‚ μ§œκ°€ μ˜¬λ°”λ₯΄κ²Œ μ €μž₯λ©λ‹ˆλ‹€.

Discourse 버전: 3.5.0.beta1-dev
(402ec6bf5c)

Events 버전: 0.9.5
c49ec2a

Location 버전: 6.8.2
7eb7be3

μ˜ˆμ‹œ:


RPG μ»¨λ²€μ…˜μ˜ 지도와 μΊ˜λ¦°λ”λ₯Ό 관리할 수 있게 ν•΄μ£ΌλŠ” 이 두 ν”ŒλŸ¬κ·ΈμΈμ— λŒ€ν•΄ 큰 감사λ₯Ό λ“œλ¦½λ‹ˆλ‹€.

정보λ₯Ό μœ„ν•΄ @merefieldλ‹˜μ„ νƒœκ·Έν•˜λŠ” κ²ƒμœΌλ‘œ ν•˜κ² μŠ΅λ‹ˆλ‹€.

2개의 μ’‹μ•„μš”

@G4sD0c μ΅œμ‹  Discourse와 ν˜Έν™˜λ˜λŠ” μ΅œμ‹  λ²„μ „μœΌλ‘œ Events ν”ŒλŸ¬κ·ΈμΈμ„ μ—…λ°μ΄νŠΈν•΄ μ£Όμ‹œλΌλŠ” λΆ€λ“œλŸ¬μš΄ μ•Œλ¦Όμž…λ‹ˆλ‹€ :slight_smile:

2개의 μ’‹μ•„μš”

@G4sD0c λ‹˜μ΄ κ·Έ μž‘μ—…μ„ μ™„λ£Œν–ˆκ³ , 잘 μž‘λ™ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

λ‹€λ§Œ 또 λ‹€λ₯Έ μž‘μ€ 문제λ₯Ό λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€. Events ν”ŒλŸ¬κ·ΈμΈμ΄ μ„€μΉ˜λ˜μ–΄ μžˆμ§€λ§Œ λΉ„ν™œμ„± μƒνƒœμΌ λ•Œ, μ—¬μ „νžˆ 상단 메뉴에 λΆ€μ μ ˆν•˜κ²Œ μ•„μ  λ‹€ 링크λ₯Ό μΆ”κ°€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

1개의 μ’‹μ•„μš”

νŒ€ μ—¬λŸ¬λΆ„, μ–΄μ œλΆ€ν„° 이벀트 관리 νŒ¨λ„μ΄ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ•„λž˜μ— κ΄€λ ¨ 정보λ₯Ό 정리해 λ‘μ—ˆμŠ΅λ‹ˆλ‹€.


였늘 μ•„μΉ¨ iOS Safari PWAμ—μ„œ λ‹€μŒκ³Ό 같은 λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.


ν˜„μž¬ μ‚¬μš© 쀑인 Discourse λ²„μ „μž…λ‹ˆλ‹€.

v3.5.0.beta7 +463

μ–΄μ œ μ•„μΉ¨μ—λŠ” 이 λ²„μ „μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

v3.5.0.beta7 +422

μ‚¬μš© 쀑인 iOS λ²„μ „μž…λ‹ˆλ‹€.

μ–΄μ œ Discourse λ‘œκ·Έμ— λ§ˆμ§€λ§‰μœΌλ‘œ λ‚˜νƒ€λ‚œ 였λ₯˜μž…λ‹ˆλ‹€.

ν˜„μž¬ Sidekiq μƒνƒœμž…λ‹ˆλ‹€.

μ–΄μ œ Sidekiq μƒνƒœμ˜€μŠ΅λ‹ˆλ‹€.

1개의 μ’‹μ•„μš”

νŒ€ μ—¬λŸ¬λΆ„,

UIκ°€ μΌμ‹œμ μœΌλ‘œ 정상 μž‘λ™ν–ˆλ‹€λŠ” μ—…λ°μ΄νŠΈμž…λ‹ˆλ‹€.

admin UIκ°€ λ‚˜νƒ€λ‚¨

μ΄μƒν•˜λ„€μš” - μ €λŠ” Custom Header Links(μ•„μ΄μ½˜)λ₯Ό λΉ„ν™œμ„±ν™”ν–ˆλŠ”λ°, 이 μŠ€ν¬λ¦°μƒ·μ—μ„œλŠ” ν‘œμ‹œλ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ—­ν˜Έν™˜μ„±μ„ μœ„ν•œ κΈ°λ³Έ 섀정이 뒀에 μ‚¬μš©λ˜κ³  μžˆλŠ” κ±΄κ°€μš”?

Sidekiqκ°€ λ‹€μŒκ³Ό 같이 λ‚˜νƒ€λ‚¨

/logs의 λ§ˆμ§€λ§‰ 였λ₯˜λŠ”


μ œκ°€ μ‹€ν–‰ 쀑인 Discourse 버전은 latest-release +463이며, 컀밋이 21개 λ’€μ²˜μ Έ μžˆμŠ΅λ‹ˆλ‹€.

1개의 μ’‹μ•„μš”

discourseλ₯Ό μ—…λ°μ΄νŠΈν•˜κΈ° 전에 이전과 같은 λ¬Έμ œκ°€ λ°œμƒν–ˆκ³ , β€œCustom Header Links (Icons)”λ₯Ό ν™œμ„±ν™”ν•œ 후에도 λ‹€μ‹œ 같은 λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.


μ—…λ°μ΄νŠΈ ν›„

1개의 μ’‹μ•„μš”

이 토둠은 λ‹€μŒ ν† λ‘ μ—μ„œ μ΄μ–΄μ§‘λ‹ˆλ‹€: Discourse-events 'this.router' error - #11 by david


저도 Discourseλ₯Ό μ΅œμ‹  λ²„μ „μœΌλ‘œ μ—…λ°μ΄νŠΈν•΄ λ‘μ—ˆμ§€λ§Œ, 였λ₯˜κ°€ μ•½κ°„ λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€:

μŠ€ν¬λ¦°μƒ·

μΊ˜λ¦°λ”μ— 이 ν”ŒλŸ¬κ·ΈμΈμ„ μ‚¬μš©ν•˜λŠ” μ΄λ²€νŠΈκ°€ λ§Žμ•˜μ§€λ§Œ, 이후 λΉ„ν™œμ„±ν™”ν–ˆμŠ΅λ‹ˆλ‹€.


μš°λ¦¬λŠ” 이 ν”ŒλŸ¬κ·ΈμΈμ΄ μ†μƒλ˜μ–΄ broken νƒœκ·Έλ₯Ό λΆ™μ—¬μ•Ό ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

λ‹€λ₯Έ 보고 λ‚΄μš©κ³Όλ„ μΌμΉ˜ν•©λ‹ˆλ‹€:


참고둜, @Ethsim2 λ‹˜μ€ discourse-calendar ν”ŒλŸ¬κ·ΈμΈμ˜ λ„€μ΄ν‹°λΈŒ κΈ°λŠ₯으둜 iCal ν”Όλ“œ 동기화 지원을 μ œμ•ˆν–ˆμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή ν† λ‘ μ—λŠ” 이미 Discourse νŒ€ 멀버 두 λͺ…μœΌλ‘œλΆ€ν„° 'μ’‹μ•„μš”β€™κ°€ λ‹¬λ ΈμœΌλ―€λ‘œ, λ‹€λ₯Έ 뢄듀도 이 문제둜 영ν–₯을 λ°›κ³  μžˆλ‹€λ©΄ 이λ₯Ό νŒ”λ‘œμš°ν•˜κ±°λ‚˜ μ§€μ§€ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

2개의 μ’‹μ•„μš”

@Halden42 λ‹˜, 이 점도 μ–ΈκΈ‰ν•  κ°€μΉ˜κ°€ μžˆμ„ 것 κ°™μŠ΅λ‹ˆλ‹€.


κ·ΈλŸ¬λ‚˜ 이 라이브러리 μ—…κ·Έλ ˆμ΄λ“œκ°€ ν•΄λ‹Ή κΈ°λŠ₯을 μ œκ³΅ν•  수 μžˆλŠ”μ§€λŠ” μ •ν™•νžˆ νŒλ‹¨ν•˜κΈ° μ–΄λ ΅μŠ΅λ‹ˆλ‹€. 이 ν”ŒλŸ¬κ·ΈμΈμ˜ λ§Žμ€ μ‚¬μš©μžλ“€μ€ ν•΄λ‹Ή κΈ°λŠ₯에 μ˜μ‘΄ν•˜κ±°λ‚˜ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” λ…Έν•˜μš°λ₯Ό κ°–μΆ”κ³  μžˆμ—ˆκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.