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
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
Aaron -
AKPlanning
Commits
e766b4fd
Commit
e766b4fd
authored
5 years ago
by
Nadja Geisler
Browse files
Options
Downloads
Patches
Plain Diff
mark Strings in AK Model models for translation
parent
8f22609a
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
AKModel/migrations/0006_translation_akmodel.py
+121
-0
121 additions, 0 deletions
AKModel/migrations/0006_translation_akmodel.py
AKModel/models.py
+79
-71
79 additions, 71 deletions
AKModel/models.py
with
200 additions
and
71 deletions
AKModel/migrations/0006_translation_akmodel.py
0 → 100644
+
121
−
0
View file @
e766b4fd
# Generated by Django 2.2.6 on 2019-10-12 12:34
import
django.db.models.deletion
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'
AKModel
'
,
'
0005_ak_slot
'
),
]
operations
=
[
migrations
.
AlterModelOptions
(
name
=
'
event
'
,
options
=
{
'
ordering
'
:
[
'
name
'
],
'
verbose_name
'
:
'
Event
'
,
'
verbose_name_plural
'
:
'
Events
'
},
),
migrations
.
AlterField
(
model_name
=
'
ak
'
,
name
=
'
event
'
,
field
=
models
.
ForeignKey
(
help_text
=
'
Associated event
'
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'
AKModel.Event
'
,
verbose_name
=
'
Event
'
),
),
migrations
.
AlterField
(
model_name
=
'
ak
'
,
name
=
'
interest
'
,
field
=
models
.
IntegerField
(
default
=-
1
,
help_text
=
'
Expected number of people
'
,
verbose_name
=
'
Interest
'
),
),
migrations
.
AlterField
(
model_name
=
'
ak
'
,
name
=
'
reso
'
,
field
=
models
.
BooleanField
(
default
=
False
,
help_text
=
'
Intends to submit a resolution
'
,
verbose_name
=
'
Resolution Intention
'
),
),
migrations
.
AlterField
(
model_name
=
'
ak
'
,
name
=
'
short_name
'
,
field
=
models
.
CharField
(
blank
=
True
,
help_text
=
'
Name displayed in the schedule
'
,
max_length
=
64
,
unique
=
True
,
verbose_name
=
'
Short Name
'
),
),
migrations
.
AlterField
(
model_name
=
'
ak
'
,
name
=
'
tags
'
,
field
=
models
.
ManyToManyField
(
blank
=
True
,
help_text
=
'
Tags provided by owners
'
,
to
=
'
AKModel.AKTag
'
,
verbose_name
=
'
Tags
'
),
),
migrations
.
AlterField
(
model_name
=
'
ak
'
,
name
=
'
track
'
,
field
=
models
.
ForeignKey
(
help_text
=
'
Track the AK belongs to
'
,
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
'
AKModel.AKTrack
'
,
verbose_name
=
'
Track
'
),
),
migrations
.
AlterField
(
model_name
=
'
akowner
'
,
name
=
'
email
'
,
field
=
models
.
EmailField
(
blank
=
True
,
help_text
=
'
Contact mail
'
,
max_length
=
128
,
verbose_name
=
'
E-Mail Address
'
),
),
migrations
.
AlterField
(
model_name
=
'
akowner
'
,
name
=
'
event
'
,
field
=
models
.
ForeignKey
(
help_text
=
'
Associated event
'
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'
AKModel.Event
'
,
verbose_name
=
'
Event
'
),
),
migrations
.
AlterField
(
model_name
=
'
akowner
'
,
name
=
'
institution
'
,
field
=
models
.
CharField
(
blank
=
True
,
help_text
=
'
Uni etc.
'
,
max_length
=
128
,
verbose_name
=
'
Institution
'
),
),
migrations
.
AlterField
(
model_name
=
'
akowner
'
,
name
=
'
name
'
,
field
=
models
.
CharField
(
help_text
=
'
Name to identify an AK owner by
'
,
max_length
=
256
,
verbose_name
=
'
Nickname
'
),
),
migrations
.
AlterField
(
model_name
=
'
akrequirement
'
,
name
=
'
event
'
,
field
=
models
.
ForeignKey
(
help_text
=
'
Associated event
'
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'
AKModel.Event
'
,
verbose_name
=
'
Event
'
),
),
migrations
.
AlterField
(
model_name
=
'
akrequirement
'
,
name
=
'
name
'
,
field
=
models
.
CharField
(
help_text
=
'
Name of the Requirement
'
,
max_length
=
128
,
unique
=
True
,
verbose_name
=
'
Name
'
),
),
migrations
.
AlterField
(
model_name
=
'
akslot
'
,
name
=
'
event
'
,
field
=
models
.
ForeignKey
(
help_text
=
'
Associated event
'
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'
AKModel.Event
'
,
verbose_name
=
'
Event
'
),
),
migrations
.
AlterField
(
model_name
=
'
aktrack
'
,
name
=
'
color
'
,
field
=
models
.
CharField
(
blank
=
True
,
help_text
=
'
Color for displaying
'
,
max_length
=
7
,
verbose_name
=
'
Color
'
),
),
migrations
.
AlterField
(
model_name
=
'
aktype
'
,
name
=
'
color
'
,
field
=
models
.
CharField
(
blank
=
True
,
help_text
=
'
Color for displaying
'
,
max_length
=
7
,
verbose_name
=
'
Color
'
),
),
migrations
.
AlterField
(
model_name
=
'
event
'
,
name
=
'
place
'
,
field
=
models
.
CharField
(
help_text
=
'
City etc. the event takes place in
'
,
max_length
=
128
,
verbose_name
=
'
Place
'
),
),
migrations
.
AlterField
(
model_name
=
'
room
'
,
name
=
'
building
'
,
field
=
models
.
CharField
(
help_text
=
'
Name/number of the building
'
,
max_length
=
256
,
verbose_name
=
'
Building
'
),
),
migrations
.
AlterField
(
model_name
=
'
room
'
,
name
=
'
event
'
,
field
=
models
.
ForeignKey
(
help_text
=
'
Associated event
'
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'
AKModel.Event
'
,
verbose_name
=
'
Event
'
),
),
]
This diff is collapsed.
Click to expand it.
AKModel/models.py
+
79
−
71
View file @
e766b4fd
# Create your models here.
# Create your models here.
from
django.db
import
models
from
django.db
import
models
from
django.utils.translation
import
gettext_lazy
as
_
class
Event
(
models
.
Model
):
class
Event
(
models
.
Model
):
"""
An event supplies the frame for all Aks.
"""
An event supplies the frame for all Aks.
"""
"""
name
=
models
.
CharField
(
max_length
=
64
,
unique
=
True
,
verbose_name
=
'
Name
'
,
help_text
=
'
Name or iteration of the event
'
)
name
=
models
.
CharField
(
max_length
=
64
,
unique
=
True
,
verbose_name
=
_
(
'
Name
'
),
start
=
models
.
DateTimeField
(
verbose_name
=
'
Start
'
,
help_text
=
'
Time the event begins
'
)
help_text
=
_
(
'
Name or iteration of the event
'
))
end
=
models
.
DateTimeField
(
verbose_name
=
'
End
'
,
help_text
=
'
Time the event ends
'
)
start
=
models
.
DateTimeField
(
verbose_name
=
_
(
'
Start
'
),
help_text
=
_
(
'
Time the event begins
'
))
place
=
models
.
CharField
(
max_length
=
128
,
verbose_name
=
'
Place
'
,
help_text
=
'
City etc. where the event takes place
'
)
end
=
models
.
DateTimeField
(
verbose_name
=
_
(
'
End
'
),
help_text
=
_
(
'
Time the event ends
'
))
active
=
models
.
BooleanField
(
verbose_name
=
'
Active State
'
,
help_text
=
'
Marks currently active events
'
)
place
=
models
.
CharField
(
max_length
=
128
,
verbose_name
=
_
(
'
Place
'
),
help_text
=
_
(
'
City etc. the event takes place in
'
))
active
=
models
.
BooleanField
(
verbose_name
=
_
(
'
Active State
'
),
help_text
=
_
(
'
Marks currently active events
'
))
class
Meta
:
class
Meta
:
verbose_name
=
'
Event
'
verbose_name
=
_
(
'
Event
'
)
verbose_name_plural
=
'
Events
'
verbose_name_plural
=
_
(
'
Events
'
)
ordering
=
[
'
name
'
]
ordering
=
[
'
name
'
]
class
AKOwner
(
models
.
Model
):
class
AKOwner
(
models
.
Model
):
"""
An AKOwner describes the person organizing/holding an AK.
"""
An AKOwner describes the person organizing/holding an AK.
"""
"""
name
=
models
.
CharField
(
max_length
=
256
,
verbose_name
=
'
Nickname
'
,
help_text
=
'
Name
used
to identify an AK owner
'
)
name
=
models
.
CharField
(
max_length
=
256
,
verbose_name
=
_
(
'
Nickname
'
)
,
help_text
=
_
(
'
Name to identify an AK owner
by
'
)
)
email
=
models
.
EmailField
(
max_length
=
128
,
blank
=
True
,
verbose_name
=
'
E-Mail Address
'
,
help_text
=
'
Contact
e-
mail
'
)
email
=
models
.
EmailField
(
max_length
=
128
,
blank
=
True
,
verbose_name
=
_
(
'
E-Mail Address
'
)
,
help_text
=
_
(
'
Contact mail
'
)
)
institution
=
models
.
CharField
(
max_length
=
128
,
blank
=
True
,
verbose_name
=
'
Institution
'
,
help_text
=
'
Uni
versity
etc.
'
)
institution
=
models
.
CharField
(
max_length
=
128
,
blank
=
True
,
verbose_name
=
_
(
'
Institution
'
)
,
help_text
=
_
(
'
Uni etc.
'
)
)
link
=
models
.
URLField
(
blank
=
True
,
verbose_name
=
'
Web Link
'
,
help_text
=
'
Link to Homepage
'
)
link
=
models
.
URLField
(
blank
=
True
,
verbose_name
=
_
(
'
Web Link
'
)
,
help_text
=
_
(
'
Link to Homepage
'
)
)
event
=
models
.
ForeignKey
(
to
=
Event
,
on_delete
=
models
.
CASCADE
,
verbose_name
=
'
Event
'
,
help_text
=
'
Matching event
'
)
event
=
models
.
ForeignKey
(
to
=
Event
,
on_delete
=
models
.
CASCADE
,
verbose_name
=
_
(
'
Event
'
),
help_text
=
_
(
'
Associated event
'
))
class
Meta
:
class
Meta
:
verbose_name
=
'
AK Owner
'
verbose_name
=
_
(
'
AK Owner
'
)
verbose_name_plural
=
'
AK Owners
'
verbose_name_plural
=
_
(
'
AK Owners
'
)
ordering
=
[
'
name
'
]
ordering
=
[
'
name
'
]
unique_together
=
[[
'
name
'
,
'
institution
'
]]
unique_together
=
[[
'
name
'
,
'
institution
'
]]
...
@@ -38,108 +41,112 @@ class AKOwner(models.Model):
...
@@ -38,108 +41,112 @@ class AKOwner(models.Model):
class
AKType
(
models
.
Model
):
class
AKType
(
models
.
Model
):
"""
An AKType describes the characteristics of an AK, e.g. content vs. recreational.
"""
An AKType describes the characteristics of an AK, e.g. content vs. recreational.
"""
"""
name
=
models
.
CharField
(
max_length
=
64
,
unique
=
True
,
verbose_name
=
'
Name
'
,
help_text
=
'
Name of the AK Type
'
)
name
=
models
.
CharField
(
max_length
=
64
,
unique
=
True
,
verbose_name
=
_
(
'
Name
'
)
,
help_text
=
_
(
'
Name of the AK Type
'
)
)
color
=
models
.
CharField
(
max_length
=
7
,
blank
=
True
,
verbose_name
=
'
Color
'
,
help_text
=
'
Color
to
display
this type
in
'
)
color
=
models
.
CharField
(
max_length
=
7
,
blank
=
True
,
verbose_name
=
_
(
'
Color
'
)
,
help_text
=
_
(
'
Color
for
displayin
g
'
)
)
# TODO model availability
# TODO model availability
class
Meta
:
class
Meta
:
verbose_name
=
'
AK Type
'
verbose_name
=
_
(
'
AK Type
'
)
verbose_name_plural
=
'
AK Types
'
verbose_name_plural
=
_
(
'
AK Types
'
)
ordering
=
[
'
name
'
]
ordering
=
[
'
name
'
]
class
AKTrack
(
models
.
Model
):
class
AKTrack
(
models
.
Model
):
"""
An AKTrack describes a set of semantically related AKs.
"""
An AKTrack describes a set of semantically related AKs.
"""
"""
name
=
models
.
CharField
(
max_length
=
64
,
unique
=
True
,
verbose_name
=
'
Name
'
,
help_text
=
'
Name of the AK Track
'
)
name
=
models
.
CharField
(
max_length
=
64
,
unique
=
True
,
verbose_name
=
_
(
'
Name
'
)
,
help_text
=
_
(
'
Name of the AK Track
'
)
)
color
=
models
.
CharField
(
max_length
=
7
,
blank
=
True
,
verbose_name
=
'
Color
'
,
help_text
=
'
Color
to
display
this track
in
'
)
color
=
models
.
CharField
(
max_length
=
7
,
blank
=
True
,
verbose_name
=
_
(
'
Color
'
)
,
help_text
=
_
(
'
Color
for
displayin
g
'
)
)
class
Meta
:
class
Meta
:
verbose_name
=
'
AK Track
'
verbose_name
=
_
(
'
AK Track
'
)
verbose_name_plural
=
'
AK Tracks
'
verbose_name_plural
=
_
(
'
AK Tracks
'
)
ordering
=
[
'
name
'
]
ordering
=
[
'
name
'
]
class
AKTag
(
models
.
Model
):
class
AKTag
(
models
.
Model
):
"""
An AKTag is a keyword given to an AK by (one of) its owner(s).
"""
An AKTag is a keyword given to an AK by (one of) its owner(s).
"""
"""
name
=
models
.
CharField
(
max_length
=
64
,
unique
=
True
,
verbose_name
=
'
Name
'
,
help_text
=
'
Name of the AK Tag
'
)
name
=
models
.
CharField
(
max_length
=
64
,
unique
=
True
,
verbose_name
=
_
(
'
Name
'
)
,
help_text
=
_
(
'
Name of the AK Tag
'
)
)
class
Meta
:
class
Meta
:
verbose_name
=
'
AK Tag
'
verbose_name
=
_
(
'
AK Tag
'
)
verbose_name_plural
=
'
AK Tags
'
verbose_name_plural
=
_
(
'
AK Tags
'
)
ordering
=
[
'
name
'
]
ordering
=
[
'
name
'
]
class
AKRequirement
(
models
.
Model
):
class
AKRequirement
(
models
.
Model
):
"""
An AKRequirement describes something needed to hold an AK, e.g. infrastructure.
"""
An AKRequirement describes something needed to hold an AK, e.g. infrastructure.
"""
"""
name
=
models
.
CharField
(
max_length
=
128
,
unique
=
True
,
verbose_name
=
'
Name
'
,
help_text
=
'
Name of the
AK
Requirement
'
)
name
=
models
.
CharField
(
max_length
=
128
,
unique
=
True
,
verbose_name
=
_
(
'
Name
'
)
,
help_text
=
_
(
'
Name of the Requirement
'
)
)
event
=
models
.
ForeignKey
(
to
=
Event
,
on_delete
=
models
.
CASCADE
,
verbose_name
=
'
Event
'
,
help_text
=
'
Matching event
'
)
event
=
models
.
ForeignKey
(
to
=
Event
,
on_delete
=
models
.
CASCADE
,
verbose_name
=
_
(
'
Event
'
),
help_text
=
_
(
'
Associated event
'
))
class
Meta
:
class
Meta
:
verbose_name
=
'
AK Requirement
'
verbose_name
=
_
(
'
AK Requirement
'
)
verbose_name_plural
=
'
AK Requirements
'
verbose_name_plural
=
_
(
'
AK Requirements
'
)
ordering
=
[
'
name
'
]
ordering
=
[
'
name
'
]
class
AK
(
models
.
Model
):
class
AK
(
models
.
Model
):
"""
An AK is a slot-based activity to be scheduled during an event.
"""
An AK is a slot-based activity to be scheduled during an event.
"""
"""
name
=
models
.
CharField
(
max_length
=
256
,
unique
=
True
,
verbose_name
=
'
Name
'
,
help_text
=
'
Name of the AK
'
)
name
=
models
.
CharField
(
max_length
=
256
,
unique
=
True
,
verbose_name
=
_
(
'
Name
'
)
,
help_text
=
_
(
'
Name of the AK
'
)
)
short_name
=
models
.
CharField
(
max_length
=
64
,
unique
=
True
,
blank
=
True
,
verbose_name
=
'
Short Name
'
,
short_name
=
models
.
CharField
(
max_length
=
64
,
unique
=
True
,
blank
=
True
,
verbose_name
=
_
(
'
Short Name
'
)
,
help_text
=
'
Name displayed in schedule
'
)
help_text
=
_
(
'
Name displayed in
the
schedule
'
)
)
description
=
models
.
TextField
(
blank
=
True
,
verbose_name
=
'
Description
'
,
help_text
=
'
Description of the AK
'
)
description
=
models
.
TextField
(
blank
=
True
,
verbose_name
=
_
(
'
Description
'
)
,
help_text
=
_
(
'
Description of the AK
'
)
)
owners
=
models
.
ManyToManyField
(
to
=
AKOwner
,
verbose_name
=
'
Owners
'
,
help_text
=
'
Those organizing the AK
'
)
owners
=
models
.
ManyToManyField
(
to
=
AKOwner
,
verbose_name
=
_
(
'
Owners
'
)
,
help_text
=
_
(
'
Those organizing the AK
'
)
)
# TODO generate automatically
# TODO generate automatically
link
=
models
.
URLField
(
blank
=
True
,
verbose_name
=
'
Web Link
'
,
help_text
=
'
Link to wiki page
'
)
link
=
models
.
URLField
(
blank
=
True
,
verbose_name
=
_
(
'
Web Link
'
),
help_text
=
_
(
'
Link to wiki page
'
))
type
=
models
.
ForeignKey
(
to
=
AKType
,
on_delete
=
models
.
PROTECT
,
verbose_name
=
'
Type
'
,
help_text
=
'
Type of the AK
'
)
type
=
models
.
ForeignKey
(
to
=
AKType
,
on_delete
=
models
.
PROTECT
,
verbose_name
=
_
(
'
Type
'
),
help_text
=
_
(
'
Type of the AK
'
))
tags
=
models
.
ManyToManyField
(
to
=
AKTag
,
blank
=
True
,
verbose_name
=
'
Tags
'
,
help_text
=
'
Tags provided by AK owners
'
)
tags
=
models
.
ManyToManyField
(
to
=
AKTag
,
blank
=
True
,
verbose_name
=
_
(
'
Tags
'
),
help_text
=
_
(
'
Tags provided by owners
'
))
track
=
models
.
ForeignKey
(
to
=
AKTrack
,
on_delete
=
models
.
SET_NULL
,
null
=
True
,
verbose_name
=
'
Track
'
,
track
=
models
.
ForeignKey
(
to
=
AKTrack
,
on_delete
=
models
.
SET_NULL
,
null
=
True
,
verbose_name
=
_
(
'
Track
'
),
help_text
=
'
Track the AK belongs to.
'
)
help_text
=
_
(
'
Track the AK belongs to
'
))
reso
=
models
.
BooleanField
(
verbose_name
=
'
Resolution Intention
'
,
default
=
False
,
help_text
=
'
Intends to submit a reso
'
)
reso
=
models
.
BooleanField
(
verbose_name
=
_
(
'
Resolution Intention
'
),
default
=
False
,
requirements
=
models
.
ManyToManyField
(
to
=
AKRequirement
,
blank
=
True
,
verbose_name
=
'
Requirements
'
,
help_text
=
_
(
'
Intends to submit a resolution
'
))
help_text
=
"
AK
'
s Requirements
"
)
requirements
=
models
.
ManyToManyField
(
to
=
AKRequirement
,
blank
=
True
,
verbose_name
=
_
(
'
Requirements
'
),
help_text
=
_
(
"
AK
'
s Requirements
"
))
conflicts
=
models
.
ManyToManyField
(
to
=
'
AK
'
,
blank
=
True
,
related_name
=
'
conflict
'
,
verbose_name
=
'
Conflicting AKs
'
,
help_text
=
'
AKs that conflict and thus must not take place at the same time
'
)
conflicts
=
models
.
ManyToManyField
(
to
=
'
AK
'
,
blank
=
True
,
related_name
=
'
conflict
'
,
verbose_name
=
_
(
'
Conflicting AKs
'
),
prerequisites
=
models
.
ManyToManyField
(
to
=
'
AK
'
,
blank
=
True
,
verbose_name
=
'
Prerequisite AKs
'
,
help_text
=
_
(
'
AKs that conflict and thus must not take place at the same time
'
))
help_text
=
'
AKs that should precede this AK in the schedule
'
)
prerequisites
=
models
.
ManyToManyField
(
to
=
'
AK
'
,
blank
=
True
,
verbose_name
=
_
(
'
Prerequisite AKs
'
),
help_text
=
_
(
'
AKs that should precede this AK in the schedule
'
))
# TODO model availability
# TODO model availability
notes
=
models
.
TextField
(
blank
=
True
,
verbose_name
=
'
Internal Notes
'
,
help_text
=
'
Notes to organizers
'
)
notes
=
models
.
TextField
(
blank
=
True
,
verbose_name
=
_
(
'
Internal Notes
'
)
,
help_text
=
_
(
'
Notes to organizers
'
)
)
interest
=
models
.
IntegerField
(
default
=-
1
,
verbose_name
=
'
Interest
'
,
help_text
=
'
Expected number of people
to attend
'
)
interest
=
models
.
IntegerField
(
default
=-
1
,
verbose_name
=
_
(
'
Interest
'
)
,
help_text
=
_
(
'
Expected number of people
'
)
)
event
=
models
.
ForeignKey
(
to
=
Event
,
on_delete
=
models
.
CASCADE
,
verbose_name
=
'
Event
'
,
help_text
=
'
Matching event
'
)
event
=
models
.
ForeignKey
(
to
=
Event
,
on_delete
=
models
.
CASCADE
,
verbose_name
=
_
(
'
Event
'
),
help_text
=
_
(
'
Associated event
'
))
class
Meta
:
class
Meta
:
verbose_name
=
'
AK
'
verbose_name
=
_
(
'
AK
'
)
verbose_name_plural
=
'
AKs
'
verbose_name_plural
=
_
(
'
AKs
'
)
class
Room
(
models
.
Model
):
class
Room
(
models
.
Model
):
"""
A room describes where an AK can be held.
"""
A room describes where an AK can be held.
"""
"""
name
=
models
.
CharField
(
max_length
=
64
,
verbose_name
=
'
Name
'
,
help_text
=
'
Name or number of the room
'
)
name
=
models
.
CharField
(
max_length
=
64
,
verbose_name
=
_
(
'
Name
'
)
,
help_text
=
_
(
'
Name or number of the room
'
)
)
building
=
models
.
CharField
(
max_length
=
256
,
verbose_name
=
'
Building
'
,
help_text
=
'
Name
or
number of the building
'
)
building
=
models
.
CharField
(
max_length
=
256
,
verbose_name
=
_
(
'
Building
'
)
,
help_text
=
_
(
'
Name
/
number of the building
'
)
)
capacity
=
models
.
IntegerField
(
verbose_name
=
'
Capacity
'
,
help_text
=
'
Maximum number of people
'
)
capacity
=
models
.
IntegerField
(
verbose_name
=
_
(
'
Capacity
'
)
,
help_text
=
_
(
'
Maximum number of people
'
)
)
properties
=
models
.
ManyToManyField
(
to
=
AKRequirement
,
verbose_name
=
'
Properties
'
,
properties
=
models
.
ManyToManyField
(
to
=
AKRequirement
,
verbose_name
=
_
(
'
Properties
'
)
,
help_text
=
'
AK requirements fulfilled by the room
'
)
help_text
=
_
(
'
AK requirements fulfilled by the room
'
)
)
# TODO model availability
# TODO model availability
event
=
models
.
ForeignKey
(
to
=
Event
,
on_delete
=
models
.
CASCADE
,
verbose_name
=
'
Event
'
,
help_text
=
'
Matching event
'
)
event
=
models
.
ForeignKey
(
to
=
Event
,
on_delete
=
models
.
CASCADE
,
verbose_name
=
_
(
'
Event
'
),
help_text
=
_
(
'
Associated event
'
))
class
Meta
:
class
Meta
:
verbose_name
=
'
Room
'
verbose_name
=
_
(
'
Room
'
)
verbose_name_plural
=
'
Rooms
'
verbose_name_plural
=
_
(
'
Rooms
'
)
ordering
=
[
'
building
'
,
'
name
'
]
ordering
=
[
'
building
'
,
'
name
'
]
unique_together
=
[[
'
name
'
,
'
building
'
]]
unique_together
=
[[
'
name
'
,
'
building
'
]]
...
@@ -147,16 +154,17 @@ class Room(models.Model):
...
@@ -147,16 +154,17 @@ class Room(models.Model):
class
AKSlot
(
models
.
Model
):
class
AKSlot
(
models
.
Model
):
"""
An AK Mapping matches an AK to a room during a certain time.
"""
An AK Mapping matches an AK to a room during a certain time.
"""
"""
ak
=
models
.
ForeignKey
(
to
=
AK
,
on_delete
=
models
.
CASCADE
,
verbose_name
=
'
AK
'
,
help_text
=
'
AK being mapped
'
)
ak
=
models
.
ForeignKey
(
to
=
AK
,
on_delete
=
models
.
CASCADE
,
verbose_name
=
_
(
'
AK
'
)
,
help_text
=
_
(
'
AK being mapped
'
)
)
room
=
models
.
ForeignKey
(
to
=
Room
,
null
=
True
,
on_delete
=
models
.
SET_NULL
,
verbose_name
=
'
Room
'
,
room
=
models
.
ForeignKey
(
to
=
Room
,
null
=
True
,
on_delete
=
models
.
SET_NULL
,
verbose_name
=
_
(
'
Room
'
)
,
help_text
=
'
Room the AK will take place in
'
)
help_text
=
_
(
'
Room the AK will take place in
'
)
)
start
=
models
.
DateTimeField
(
verbose_name
=
'
Slot Begin
'
,
help_text
=
'
Time and date the slot begins
'
)
start
=
models
.
DateTimeField
(
verbose_name
=
_
(
'
Slot Begin
'
)
,
help_text
=
_
(
'
Time and date the slot begins
'
)
)
duration
=
models
.
DecimalField
(
max_digits
=
4
,
decimal_places
=
2
,
default
=
2
,
verbose_name
=
'
Duration
'
,
duration
=
models
.
DecimalField
(
max_digits
=
4
,
decimal_places
=
2
,
default
=
2
,
verbose_name
=
_
(
'
Duration
'
)
,
help_text
=
'
Length in hours
'
)
help_text
=
_
(
'
Length in hours
'
)
)
event
=
models
.
ForeignKey
(
to
=
Event
,
on_delete
=
models
.
CASCADE
,
verbose_name
=
'
Event
'
,
help_text
=
'
Matching event
'
)
event
=
models
.
ForeignKey
(
to
=
Event
,
on_delete
=
models
.
CASCADE
,
verbose_name
=
_
(
'
Event
'
),
help_text
=
_
(
'
Associated event
'
))
class
Meta
:
class
Meta
:
verbose_name
=
'
AK Slot
'
verbose_name
=
_
(
'
AK Slot
'
)
verbose_name_plural
=
'
AK Slots
'
verbose_name_plural
=
_
(
'
AK Slots
'
)
ordering
=
[
'
start
'
,
'
room
'
]
ordering
=
[
'
start
'
,
'
room
'
]
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment