Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
AKPlanning
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
KIF
AKPlanning
Merge requests
!100
Scheduling Constraints WIP WIP WIP
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
Scheduling Constraints WIP WIP WIP
scheduling-constraints-wip
into
scheduling-constraints
Overview
0
Commits
18
Pipelines
6
Changes
10
Merged
Benjamin Hättasch
requested to merge
scheduling-constraints-wip
into
scheduling-constraints
3 years ago
Overview
0
Commits
18
Pipelines
6
Changes
1
Expand
0
0
Merge request reports
Compare
version 4
version 5
9664edc4
3 years ago
version 4
e34b6280
3 years ago
version 3
3b2164e8
3 years ago
version 2
9869be22
3 years ago
version 1
e64492e4
3 years ago
scheduling-constraints (base)
and
version 5
latest version
35aa2e04
18 commits,
3 years ago
version 5
9664edc4
11 commits,
3 years ago
version 4
e34b6280
10 commits,
3 years ago
version 3
3b2164e8
7 commits,
3 years ago
version 2
9869be22
7 commits,
3 years ago
version 1
e64492e4
7 commits,
3 years ago
Show latest version
1 file
+
27
−
1
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
AKScheduling/models.py
+
27
−
1
Options
@@ -180,7 +180,7 @@ def akslot_changed_handler(sender, instance: AKSlot, **kwargs):
print
(
f
"
Multiple slots in room
{
instance
.
room
}
:
{
new_violations
}
"
)
# ... and compare to/update list of existing violations of this type
# belonging to the
AK
that was recently changed (important!)
# belonging to the
slot
that was recently changed (important!)
existing_violations_to_check
=
list
(
instance
.
room
.
constraintviolation_set
.
filter
(
type
=
violation_type
))
print
(
existing_violations_to_check
)
update_constraint_violations
(
new_violations
,
existing_violations_to_check
)
@@ -189,6 +189,32 @@ def akslot_changed_handler(sender, instance: AKSlot, **kwargs):
update_cv_reso_deadline_for_slot
(
instance
)
# == Check for two slots of the same AK at the same time (warning) ==
violation_type
=
ConstraintViolation
.
ViolationType
.
AK_SLOT_COLLISION
new_violations
=
[]
# For all other slots of this ak...
for
other_slot
in
instance
.
ak
.
akslot_set
.
filter
(
start__isnull
=
False
):
if
other_slot
!=
instance
:
# ... find overlapping slots...
if
instance
.
overlaps
(
other_slot
):
# ...and create a temporary violation if necessary...
c
=
ConstraintViolation
(
type
=
violation_type
,
level
=
ConstraintViolation
.
ViolationLevel
.
WARNING
,
event
=
event
,
)
c
.
aks_tmp
.
add
(
instance
.
ak
)
c
.
ak_slots_tmp
.
add
(
instance
)
c
.
ak_slots_tmp
.
add
(
other_slot
)
new_violations
.
append
(
c
)
# ... and compare to/update list of existing violations of this type
# belonging to the slot that was recently changed (important!)
existing_violations_to_check
=
list
(
instance
.
constraintviolation_set
.
filter
(
type
=
violation_type
))
update_constraint_violations
(
new_violations
,
existing_violations_to_check
)
@receiver
(
post_save
,
sender
=
Room
)
def
room_changed_handler
(
sender
,
**
kwargs
):
Loading