Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
CIRCLE
/
cloud
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
94
Merge Requests
10
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
04541cfc
authored
Mar 19, 2013
by
Dudás Ádám
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
school: prettification and tests
parent
a123cd4a
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
55 additions
and
28 deletions
+55
-28
school/locale/hu/LC_MESSAGES/django.po
+1
-1
school/models.py
+27
-18
school/tests.py
+27
-9
No files found.
school/locale/hu/LC_MESSAGES/django.po
View file @
04541cfc
...
@@ -59,7 +59,7 @@ msgid "default group"
...
@@ -59,7 +59,7 @@ msgid "default group"
msgstr "alapértelmezett csoport"
msgstr "alapértelmezett csoport"
#: models.py:71
#: models.py:71
msgid "New users will
automatically get
to this group."
msgid "New users will
be automatically assigned
to this group."
msgstr "Az új hallgatók automatikusan ebbe a csoportba kerülnek."
msgstr "Az új hallgatók automatikusan ebbe a csoportba kerülnek."
#: models.py:73 models.py:115 models.py:149 models.py:162
#: models.py:73 models.py:115 models.py:149 models.py:162
...
...
school/models.py
View file @
04541cfc
...
@@ -22,7 +22,7 @@ def create_user_profile(sender, instance, created, **kwargs):
...
@@ -22,7 +22,7 @@ def create_user_profile(sender, instance, created, **kwargs):
@param sender: The model class.
@param sender: The model class.
@type instance: User
@type instance: User
@param instance: The
instance being saved
.
@param instance: The
user to create a profile for (if necessary)
.
@type created: Boolean
@type created: Boolean
@param created: True if a new record was created.
@param created: True if a new record was created.
"""
"""
...
@@ -48,10 +48,14 @@ class Person(models.Model):
...
@@ -48,10 +48,14 @@ class Person(models.Model):
code
=
models
.
CharField
(
_
(
'code'
),
max_length
=
30
,
unique
=
True
)
code
=
models
.
CharField
(
_
(
'code'
),
max_length
=
30
,
unique
=
True
)
def
get_owned_shares
(
self
):
def
get_owned_shares
(
self
):
return
one
.
models
.
Share
.
objects
.
filter
(
group__in
=
self
.
owned_groups
.
all
())
"""Get the shares of the groups which the person owns."""
return
one
.
models
.
Share
.
objects
.
filter
(
group__in
=
self
.
owned_groups
.
all
())
def
get_shares
(
self
):
def
get_shares
(
self
):
return
one
.
models
.
Share
.
objects
.
filter
(
group__in
=
self
.
course_groups
.
all
())
"""Get the shares of the groups which the person is a member of."""
return
one
.
models
.
Share
.
objects
.
filter
(
group__in
=
self
.
course_groups
.
all
())
def
short_name
(
self
):
def
short_name
(
self
):
if
self
.
user
:
if
self
.
user
:
...
@@ -63,15 +67,16 @@ class Person(models.Model):
...
@@ -63,15 +67,16 @@ class Person(models.Model):
return
self
.
code
return
self
.
code
def
__unicode__
(
self
):
def
__unicode__
(
self
):
u
=
self
.
user
if
self
.
user
:
if
not
u
:
if
self
.
user
.
last_name
and
self
.
user
.
first_name
:
return
self
.
code
if
u
.
last_name
and
u
.
first_name
:
# TRANSLATORS: full name format used in enumerations
# TRANSLATORS: full name format used in enumerations
return
_
(
"
%(first)
s
%(last)
s"
)
%
{
'first'
:
u
.
first_name
,
return
_
(
"
%(first)
s
%(last)
s"
)
%
{
'last'
:
u
.
last_name
}
'first'
:
self
.
user
.
first_name
,
'last'
:
self
.
user
.
last_name
}
else
:
return
self
.
user
.
username
else
:
else
:
return
u
.
usernam
e
return
self
.
cod
e
class
Meta
:
class
Meta
:
verbose_name
=
_
(
'person'
)
verbose_name
=
_
(
'person'
)
...
@@ -86,7 +91,7 @@ class Course(models.Model):
...
@@ -86,7 +91,7 @@ class Course(models.Model):
verbose_name
=
_
(
'name'
))
verbose_name
=
_
(
'name'
))
default_group
=
models
.
ForeignKey
(
'Group'
,
null
=
True
,
blank
=
True
,
default_group
=
models
.
ForeignKey
(
'Group'
,
null
=
True
,
blank
=
True
,
related_name
=
'default_group_of'
,
verbose_name
=
_
(
'default group'
),
related_name
=
'default_group_of'
,
verbose_name
=
_
(
'default group'
),
help_text
=
_
(
'New users will
automatically get
to this group.'
))
help_text
=
_
(
'New users will
be automatically assigned
to this group.'
))
owners
=
models
.
ManyToManyField
(
Person
,
blank
=
True
,
null
=
True
,
owners
=
models
.
ManyToManyField
(
Person
,
blank
=
True
,
null
=
True
,
verbose_name
=
_
(
'owners'
))
verbose_name
=
_
(
'owners'
))
...
@@ -162,10 +167,14 @@ class Semester(models.Model):
...
@@ -162,10 +167,14 @@ class Semester(models.Model):
class
Group
(
models
.
Model
):
class
Group
(
models
.
Model
):
name
=
models
.
CharField
(
max_length
=
80
,
verbose_name
=
_
(
'name'
))
name
=
models
.
CharField
(
max_length
=
80
,
verbose_name
=
_
(
'name'
))
course
=
models
.
ForeignKey
(
'Course'
,
null
=
True
,
blank
=
True
,
verbose_name
=
_
(
'course'
))
course
=
models
.
ForeignKey
(
'Course'
,
null
=
True
,
blank
=
True
,
semester
=
models
.
ForeignKey
(
'Semester'
,
null
=
False
,
blank
=
False
,
verbose_name
=
_
(
'semester'
))
verbose_name
=
_
(
'course'
))
owners
=
models
.
ManyToManyField
(
Person
,
blank
=
True
,
null
=
True
,
related_name
=
'owned_groups'
,
verbose_name
=
_
(
'owners'
))
semester
=
models
.
ForeignKey
(
'Semester'
,
null
=
False
,
blank
=
False
,
members
=
models
.
ManyToManyField
(
Person
,
blank
=
True
,
null
=
True
,
related_name
=
'course_groups'
,
verbose_name
=
_
(
'members'
))
verbose_name
=
_
(
'semester'
))
owners
=
models
.
ManyToManyField
(
Person
,
blank
=
True
,
null
=
True
,
related_name
=
'owned_groups'
,
verbose_name
=
_
(
'owners'
))
members
=
models
.
ManyToManyField
(
Person
,
blank
=
True
,
null
=
True
,
related_name
=
'course_groups'
,
verbose_name
=
_
(
'members'
))
class
Meta
:
class
Meta
:
unique_together
=
((
'name'
,
'course'
,
'semester'
,
),
)
unique_together
=
((
'name'
,
'course'
,
'semester'
,
),
)
...
@@ -173,10 +182,10 @@ class Group(models.Model):
...
@@ -173,10 +182,10 @@ class Group(models.Model):
verbose_name_plural
=
_
(
'groups'
)
verbose_name_plural
=
_
(
'groups'
)
def
owner_list
(
self
):
def
owner_list
(
self
):
if
self
.
owners
:
if
self
.
owners
and
self
.
owners
.
count
()
>
0
:
return
", "
.
join
([
p
.
short_name
()
for
p
in
self
.
owners
.
all
()])
return
", "
.
join
([
p
.
short_name
()
for
p
in
self
.
owners
.
all
()])
else
:
else
:
return
_
(
"
n/a
"
)
return
_
(
"
(none)
"
)
owner_list
.
verbose_name
=
_
(
'owners'
)
owner_list
.
verbose_name
=
_
(
'owners'
)
def
member_count
(
self
):
def
member_count
(
self
):
...
@@ -190,4 +199,4 @@ class Group(models.Model):
...
@@ -190,4 +199,4 @@ class Group(models.Model):
@models.permalink
@models.permalink
def
get_absolute_url
(
self
):
def
get_absolute_url
(
self
):
return
(
'group_show'
,
None
,
{
'gid'
:
self
.
id
})
return
(
'group_show'
,
None
,
{
'gid'
:
self
.
id
})
school/tests.py
View file @
04541cfc
...
@@ -6,29 +6,47 @@ class MockUser:
...
@@ -6,29 +6,47 @@ class MockUser:
class
CreateUserProfileTestCase
(
TestCase
):
class
CreateUserProfileTestCase
(
TestCase
):
def
setUp
(
self
):
def
setUp
(
self
):
self
.
user
=
MockUser
()
for
p
in
Person
.
objects
.
all
():
for
p
in
Person
.
objects
.
all
():
p
.
delete
()
p
.
delete
()
def
test_new_profile
(
self
):
def
test_new_profile
(
self
):
"""Test profile creation functionality for new user."""
"""Test profile creation functionality for new user."""
user
=
MockUser
(
)
create_user_profile
(
self
.
user
.
__class__
,
self
.
user
,
True
)
create_user_profile
(
user
.
__class__
,
user
,
True
)
self
.
assertEqual
(
Person
.
objects
.
filter
(
self
.
assertEqual
(
Person
.
objects
.
filter
(
code
=
user
.
username
)
.
count
(),
1
)
code
=
self
.
user
.
username
)
.
count
(),
1
)
def
test_existing_profile
(
self
):
def
test_existing_profile
(
self
):
"""Test profile creation functionality when it already exists."""
"""Test profile creation functionality when it already exists."""
user
=
MockUser
(
)
Person
.
objects
.
create
(
code
=
self
.
user
.
username
)
Person
.
objects
.
create
(
code
=
user
.
usernam
e
)
create_user_profile
(
self
.
user
.
__class__
,
self
.
user
,
Tru
e
)
create_user_profile
(
user
.
__class__
,
user
,
True
)
self
.
assertEqual
(
Person
.
objects
.
filter
(
self
.
assertEqual
(
Person
.
objects
.
filter
(
code
=
user
.
username
)
.
count
(),
1
)
code
=
self
.
user
.
username
)
.
count
(),
1
)
class
PersonTestCase
(
TestCase
):
class
PersonTestCase
(
TestCase
):
def
setUp
(
self
):
def
setUp
(
self
):
Person
.
objects
.
create
(
)
self
.
testperson
=
Person
.
objects
.
create
(
code
=
'testperson'
)
def
test_language_code_in_choices
(
self
):
def
test_language_code_in_choices
(
self
):
"""Test whether the default value for language is a valid choice."""
"""Test whether the default value for language is a valid choice."""
language_field
=
Person
.
objects
.
all
()[
0
]
.
_meta
.
get_field
(
'language'
)
# TODO
language_field
=
self
.
testperson
.
_meta
.
get_field
(
'language'
)
choice_codes
=
[
code
for
(
code
,
_
)
in
language_field
.
choices
]
choice_codes
=
[
code
for
(
code
,
_
)
in
language_field
.
choices
]
self
.
assertIn
(
language_field
.
default
,
choice_codes
)
self
.
assertIn
(
language_field
.
default
,
choice_codes
)
def
test_get_owned_shares
(
self
):
# TODO
self
.
testperson
.
get_owned_shares
()
def
test_get_shares
(
self
):
# TODO
self
.
testperson
.
get_shares
()
def
test_short_name
(
self
):
# TODO
self
.
testperson
.
short_name
()
def
test_unicode
(
self
):
# TODO
self
.
testperson
.
__unicode__
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment