Skip to content

feat: multi round robin hosts#12169

Closed
david-m-l21s wants to merge 13 commits intocalcom:mainfrom
david-m-l21s:feature_multi_round_robin
Closed

feat: multi round robin hosts#12169
david-m-l21s wants to merge 13 commits intocalcom:mainfrom
david-m-l21s:feature_multi_round_robin

Conversation

@david-m-l21s
Copy link
Copy Markdown

What does this PR do?

Adds the possibility to select several round-robin-hosts for the respective event-type.

Fixes # 11953

Crucial changes which were necessary:

1. Frontend:
Adds an input-field to the Event-Team-Tab by which the number of round-robin hosts which need to participate
in the event can be specified

2. Availability:
For multiple round-robin-hosts the way how the collective availability is determined needs to be changed.

3. Select the correct number of hosts in the booking-handler

Cal_com

Type of change

  • New feature (non-breaking change which adds functionality)
  • This change requires a documentation update

How should this be tested?

  1. Create a Round-Robin Event-Type
  2. Under "Assignment" select some users which have a common availability
  3. Provide the number of users which you want to particiate in a Round-Robin fashion
  4. Now when trying to book the event, the datepicker should respect the new constraints
  5. The hosts selection should now select the number of hosts which you provided with Round-Robin

A test is provided in the PR.

@vercel
Copy link
Copy Markdown

vercel Bot commented Oct 31, 2023

@david-m-l21s is attempting to deploy a commit to the cal Team on Vercel.

A member of the Team first needs to authorize it.

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Oct 31, 2023

CLA assistant check
All committers have signed the CLA.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Oct 31, 2023

Thank you for following the naming conventions! 🙏 Feel free to join our discord and post your PR link to collect XP and win prizes!

@github-actions github-actions Bot added the ❗️ migrations contains migration files label Oct 31, 2023
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Oct 31, 2023

📦 Next.js Bundle Analysis for @calcom/web

This analysis was generated by the Next.js Bundle Analysis action. 🤖

🎉 Global Bundle Size Decreased

Page Size (compressed)
global 156.24 KB (🟢 -7.35 KB)
Details

The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!

Eighty-six Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load % of Budget (350 KB)
/404 89.97 KB 246.21 KB 70.35% (🟢 -1.38%)
/500 84.59 KB 240.83 KB 68.81% (🟢 -1.34%)
/[user] 88.4 KB 244.64 KB 69.90% (🟢 -1.38%)
/[user]/[type] 236.7 KB 392.94 KB 112.27% (🟢 -3.45%)
/[user]/[type]/embed 236.73 KB 392.97 KB 112.28% (🟢 -3.45%)
/[user]/embed 88.42 KB 244.67 KB 69.90% (🟢 -1.37%)
/apps/[slug]/[...pages] 536.4 KB 692.64 KB 197.90% (🟢 -2.14%)
/apps/[slug]/setup 80.77 KB 237.02 KB 67.72% (🟢 -1.33%)
/apps/categories 246.23 KB 402.47 KB 114.99% (🟡 +0.26%)
/apps/installed/[category] 268.72 KB 424.96 KB 121.42% (🟢 -0.24%)
/auth/error 93.79 KB 250.03 KB 71.44% (🟢 -1.50%)
/auth/forgot-password 96.19 KB 252.43 KB 72.12% (🟢 -1.57%)
/auth/forgot-password/[id] 99.85 KB 256.1 KB 73.17% (🟢 -1.59%)
/auth/login 112.88 KB 269.12 KB 76.89% (🟢 -1.77%)
/auth/logout 81.54 KB 237.79 KB 67.94% (🟢 -1.33%)
/auth/oauth2/authorize 111.13 KB 267.37 KB 76.39% (🟢 -1.58%)
/auth/saml-idp 79.02 KB 235.27 KB 67.22% (🟢 -1.31%)
/auth/setup 143.09 KB 299.33 KB 85.52% (🟢 -2.06%)
/auth/signin 79.11 KB 235.35 KB 67.24% (🟢 -1.30%)
/auth/sso/[provider] 79.15 KB 235.39 KB 67.25% (🟢 -1.30%)
/auth/sso/direct 79.08 KB 235.32 KB 67.23% (🟢 -1.30%)
/auth/verify 98.02 KB 254.26 KB 72.65% (🟢 -1.52%)
/auth/verify-email 84.51 KB 240.75 KB 68.79% (🟢 -1.34%)
/availability 382.23 KB 538.47 KB 153.85% (🟢 -0.25%)
/availability/troubleshoot 246.95 KB 403.19 KB 115.20% (🟢 -6.78%)
/booking/[uid] 181.48 KB 337.72 KB 96.49% (🟢 -2.23%)
/booking/[uid]/embed 181.55 KB 337.79 KB 96.51% (🟢 -2.24%)
/bookings/[status] 314.47 KB 470.71 KB 134.49% (🟢 -0.21%)
/d/[link]/[slug] 236.7 KB 392.94 KB 112.27% (🟢 -3.45%)
/enterprise 246.67 KB 402.91 KB 115.12% (🟡 +0.25%)
/event-types 536.14 KB 692.38 KB 197.82% (🟢 -1.47%)
/event-types/[type] 415.71 KB 571.95 KB 163.41% (🟢 -0.67%)
/getting-started/[[...step]] 389.79 KB 546.03 KB 156.01% (🟢 -3.23%)
/insights 467.78 KB 624.02 KB 178.29% (🟢 -1.06%)
/maintenance 79.25 KB 235.49 KB 67.28% (🟢 -1.31%)
/more 245.85 KB 402.1 KB 114.88% (🟡 +0.26%)
/org/[orgSlug] 219.93 KB 376.17 KB 107.48% (🟢 -2.37%)
/org/[orgSlug]/[user] 226.38 KB 382.63 KB 109.32% (🟢 -2.39%)
/org/[orgSlug]/[user]/[type] 236.87 KB 393.11 KB 112.32% (🟢 -3.45%)
/org/[orgSlug]/[user]/[type]/embed 236.89 KB 393.14 KB 112.32% (🟢 -3.44%)
/org/[orgSlug]/[user]/embed 226.41 KB 382.65 KB 109.33% (🟢 -2.40%)
/org/[orgSlug]/embed 219.95 KB 376.19 KB 107.48% (🟢 -2.37%)
/org/[orgSlug]/team/[slug] 219.94 KB 376.18 KB 107.48% (🟢 -2.37%)
/org/[orgSlug]/team/[slug]/[type] 236.72 KB 392.96 KB 112.28% (🟢 -3.45%)
/payment/[uid] 110.42 KB 266.66 KB 76.19% (🟢 -1.63%)
/settings/admin 252.29 KB 408.53 KB 116.72% (🟡 +0.20%)
/settings/admin/impersonation 252.56 KB 408.8 KB 116.80% (🟡 +0.20%)
/settings/admin/oAuth 253.27 KB 409.52 KB 117.00% (🟢 -2.95%)
/settings/admin/oAuth/oAuthView 86.56 KB 242.8 KB 69.37% (🟢 -1.29%)
/settings/admin/organizations 253.55 KB 409.8 KB 117.08% (🟡 +0.19%)
/settings/admin/users 254.32 KB 410.56 KB 117.30% (🟡 +0.15%)
/settings/admin/users/[id]/edit 342.98 KB 499.22 KB 142.63% (🟢 -3.07%)
/settings/admin/users/add 342.72 KB 498.96 KB 142.56% (🟢 -3.07%)
/settings/billing 252.48 KB 408.73 KB 116.78% (🟡 +0.19%)
/settings/developer/api-keys 256.71 KB 412.95 KB 117.99% (🟡 +0.13%)
/settings/my-account/calendars 259.06 KB 415.3 KB 118.66% (🟢 -1.25%)
/settings/my-account/profile 377.48 KB 533.72 KB 152.49% (🟢 -3.28%)
/settings/organizations/[id]/about 144.32 KB 300.56 KB 85.87% (🟢 -2.09%)
/settings/organizations/[id]/add-teams 144.35 KB 300.6 KB 85.88% (🟢 -2.09%)
/settings/organizations/[id]/onboard-admins 144.37 KB 300.61 KB 85.89% (🟢 -2.09%)
/settings/organizations/[id]/set-password 144.31 KB 300.56 KB 85.87% (🟢 -2.09%)
/settings/organizations/billing 252.52 KB 408.76 KB 116.79% (🟡 +0.19%)
/settings/organizations/members 368.95 KB 525.19 KB 150.06% (🟢 -3.32%)
/settings/organizations/new 144.33 KB 300.57 KB 85.88% (🟢 -2.10%)
/settings/organizations/profile 374.47 KB 530.71 KB 151.63% (🟢 -3.31%)
/settings/organizations/teams/other 253.35 KB 409.59 KB 117.03% (🟡 +0.19%)
/settings/organizations/teams/other/[id]/profile 444.24 KB 600.48 KB 171.57% (🟢 -4.02%)
/settings/security/sso 261.33 KB 417.57 KB 119.30% (🟢 -0.17%)
/settings/teams 252.04 KB 408.28 KB 116.65% (🟡 +0.20%)
/settings/teams/[id]/billing 252.52 KB 408.76 KB 116.79% (🟡 +0.19%)
/settings/teams/[id]/members 377.03 KB 533.27 KB 152.36% (🟢 -0.17%)
/settings/teams/[id]/onboard-members 147.9 KB 304.14 KB 86.90% (🟢 -2.18%)
/settings/teams/[id]/profile 445.01 KB 601.25 KB 171.79% (🟢 -4.03%)
/settings/teams/[id]/sso 261.82 KB 418.06 KB 119.45% (🟢 -0.18%)
/settings/teams/new 184.03 KB 340.27 KB 97.22% (🟡 +0.68%)
/signup 130.92 KB 287.16 KB 82.05% (🟢 -4.11%)
/team/[slug] 219.89 KB 376.13 KB 107.47% (🟢 -2.37%)
/team/[slug]/[type] 236.69 KB 392.93 KB 112.27% (🟢 -3.45%)
/team/[slug]/[type]/embed 236.72 KB 392.96 KB 112.28% (🟢 -3.45%)
/team/[slug]/embed 219.93 KB 376.18 KB 107.48% (🟢 -2.37%)
/teams 246.12 KB 402.36 KB 114.96% (🟡 +0.26%)
/video/[uid] 237.43 KB 393.68 KB 112.48% (🟢 -2.41%)
/video/meeting-ended/[uid] 88.45 KB 244.7 KB 69.91% (🟢 -1.34%)
/video/meeting-not-started/[uid] 88.09 KB 244.34 KB 69.81% (🟢 -1.35%)
/video/no-meeting-found 80.34 KB 236.58 KB 67.59% (🟢 -1.32%)
/workflows/[workflow] 395.64 KB 551.88 KB 157.68% (🟢 -0.32%)
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

The "Budget %" column shows what percentage of your performance budget the First Load total takes up. For example, if your budget was 100kb, and a given page's first load size was 10kb, it would be 10% of your budget. You can also see how much this has increased or decreased compared to the base branch of your PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this. If you see "+/- <0.01%" it means that there was a change in bundle size, but it is a trivial enough amount that it can be ignored.

@PeerRich PeerRich requested a review from emrysal November 2, 2023 19:38
@PeerRich
Copy link
Copy Markdown
Member

PeerRich commented Nov 2, 2023

ahhh so instead of one random it selects N random people that must join?

@PeerRich PeerRich requested a review from ciaranha November 3, 2023 12:19
@ciaranha
Copy link
Copy Markdown
Member

ciaranha commented Nov 3, 2023

@david-m-l21s really nice work on this! Curious is this solving an existing need you have in the product for this feature and if you could elaborate on the scnerio if you don't mind 🙏?

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Nov 3, 2023

Hey there, there is a merge conflict, can you take a look?

@github-actions github-actions Bot added the 🚨 merge conflict This PR has a merge conflict that has to be addressed label Nov 3, 2023
@david-m-l21s
Copy link
Copy Markdown
Author

ahhh so instead of one random it selects N random people that must join?

Yes exactly.

@david-m-l21s really nice work on this! Curious is this solving an existing need you have in the product for this feature and if you could elaborate on the scnerio if you don't mind 🙏?

Sure. The reason we approached this is that we have many meetings (for now mostly recruitment) where we want to apply the "4 eyes principle" and thereby at least 2 poeple from the team should participate.
We have several stages for a typical recruitment process and different roles should participate. For example at the tech-interview, we might need 2 Senior Engineers to participate whereas at the final level 2 poeple from management should be present and so on. Ideally the meetings should additionally be distributed among the role-members.

Obviously setting this up manually is tedious. The Round-Robin behavior in cal.com would solve that issue except that it works just for one RoundRobin participant. With the changes in this PR we are almost were we want to be.

@ciaranha
Copy link
Copy Markdown
Member

ciaranha commented Nov 6, 2023

@david-m-l21s thank you for clarifying. That makes perfect sense. Very interesting use case and sounds like something that would be great to have in the product 👍

@PeerRich PeerRich removed the 🚨 merge conflict This PR has a merge conflict that has to be addressed label Nov 16, 2023
@PeerRich PeerRich added ✨ feature New feature or request Medium priority Created by Linear-GitHub Sync 🚨 merge conflict This PR has a merge conflict that has to be addressed labels Nov 16, 2023
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Dec 2, 2023

This PR is being marked as stale due to inactivity.

@github-actions github-actions Bot added the Stale label Dec 2, 2023
@github-actions github-actions Bot added the ❗️ .env changes contains changes to env variables label Dec 4, 2023
…_robin

# Conflicts:
#	apps/web/pages/api/auth/signup.ts
#	apps/web/pages/signup.tsx
#	apps/web/playwright/signup.e2e.ts
@github-actions github-actions Bot removed the Stale label Dec 5, 2023
…_robin

# Conflicts:
#	apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/organizations/page.tsx
#	apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/users/[id]/edit/page.tsx
#	apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/users/add/page.tsx
#	apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/users/page.tsx
@github-actions
Copy link
Copy Markdown
Contributor

This PR is being marked as stale due to inactivity.

@github-actions github-actions Bot added the Stale label Dec 20, 2023
@tobilarscheid
Copy link
Copy Markdown

Hey guys, this looks super interesting! Would love to see this merged

Copy link
Copy Markdown
Member

@ciaranha ciaranha left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@emrysal is there anything preventing us from merging this?

@github-actions github-actions Bot removed the Stale label Dec 22, 2023
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jan 5, 2024

This PR is being marked as stale due to inactivity.

@github-actions github-actions Bot added the Stale label Jan 5, 2024
@tobilarscheid
Copy link
Copy Markdown

@ciaranha @emrysal just wanted to catch your attention before this is being marked as stale again :-)

@github-actions github-actions Bot removed the Stale label Jan 9, 2024
@keithwillcode
Copy link
Copy Markdown
Contributor

Closing for now since the resolve conflict list is quite long. If able to address, let's reopen this then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

❗️ .env changes contains changes to env variables ✨ feature New feature or request Medium priority Created by Linear-GitHub Sync 🚨 merge conflict This PR has a merge conflict that has to be addressed ❗️ migrations contains migration files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants