Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Fukász Rómeó Ervin
/
cloud
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
A prog2-höz tartozó friss repo anyagok itt elérhetőek:
https://git.iit.bme.hu/
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
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
56 additions
and
29 deletions
+56
-29
school/locale/hu/LC_MESSAGES/django.po
+1
-1
school/models.py
+28
-19
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"
msgstr "alapértelmezett csoport"
#: 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."
#: 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):
@param sender: The model class.
@type instance: User
@param instance: The
instance being saved
.
@param instance: The
user to create a profile for (if necessary)
.
@type created: Boolean
@param created: True if a new record was created.
"""
...
...
@@ -48,10 +48,14 @@ class Person(models.Model):
code
=
models
.
CharField
(
_
(
'code'
),
max_length
=
30
,
unique
=
True
)
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
):
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
):
if
self
.
user
:
...
...
@@ -63,15 +67,16 @@ class Person(models.Model):
return
self
.
code
def
__unicode__
(
self
):
u
=
self
.
user
if
not
u
:
return
self
.
code
if
u
.
last_name
and
u
.
first_name
:
# TRANSLATORS: full name format used in enumerations
return
_
(
"
%(first)
s
%(last)
s"
)
%
{
'first'
:
u
.
first_name
,
'last'
:
u
.
last_name
}
if
self
.
user
:
if
self
.
user
.
last_name
and
self
.
user
.
first_name
:
# TRANSLATORS: full name format used in enumerations
return
_
(
"
%(first)
s
%(last)
s"
)
%
{
'first'
:
self
.
user
.
first_name
,
'last'
:
self
.
user
.
last_name
}
else
:
return
self
.
user
.
username
else
:
return
u
.
usernam
e
return
self
.
cod
e
class
Meta
:
verbose_name
=
_
(
'person'
)
...
...
@@ -86,7 +91,7 @@ class Course(models.Model):
verbose_name
=
_
(
'name'
))
default_group
=
models
.
ForeignKey
(
'Group'
,
null
=
True
,
blank
=
True
,
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
,
verbose_name
=
_
(
'owners'
))
...
...
@@ -162,10 +167,14 @@ class Semester(models.Model):
class
Group
(
models
.
Model
):
name
=
models
.
CharField
(
max_length
=
80
,
verbose_name
=
_
(
'name'
))
course
=
models
.
ForeignKey
(
'Course'
,
null
=
True
,
blank
=
True
,
verbose_name
=
_
(
'course'
))
semester
=
models
.
ForeignKey
(
'Semester'
,
null
=
False
,
blank
=
False
,
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'
))
course
=
models
.
ForeignKey
(
'Course'
,
null
=
True
,
blank
=
True
,
verbose_name
=
_
(
'course'
))
semester
=
models
.
ForeignKey
(
'Semester'
,
null
=
False
,
blank
=
False
,
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
:
unique_together
=
((
'name'
,
'course'
,
'semester'
,
),
)
...
...
@@ -173,10 +182,10 @@ class Group(models.Model):
verbose_name_plural
=
_
(
'groups'
)
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
()])
else
:
return
_
(
"
n/a
"
)
return
_
(
"
(none)
"
)
owner_list
.
verbose_name
=
_
(
'owners'
)
def
member_count
(
self
):
...
...
@@ -190,4 +199,4 @@ class Group(models.Model):
@models.permalink
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:
class
CreateUserProfileTestCase
(
TestCase
):
def
setUp
(
self
):
self
.
user
=
MockUser
()
for
p
in
Person
.
objects
.
all
():
p
.
delete
()
def
test_new_profile
(
self
):
"""Test profile creation functionality for new user."""
user
=
MockUser
(
)
create_user_profile
(
user
.
__class__
,
user
,
True
)
self
.
assertEqual
(
Person
.
objects
.
filter
(
code
=
user
.
username
)
.
count
(),
1
)
create_user_profile
(
self
.
user
.
__class__
,
self
.
user
,
True
)
self
.
assertEqual
(
Person
.
objects
.
filter
(
code
=
self
.
user
.
username
)
.
count
(),
1
)
def
test_existing_profile
(
self
):
"""Test profile creation functionality when it already exists."""
user
=
MockUser
(
)
Person
.
objects
.
create
(
code
=
user
.
usernam
e
)
create_user_profile
(
user
.
__class__
,
user
,
True
)
self
.
assertEqual
(
Person
.
objects
.
filter
(
code
=
user
.
username
)
.
count
(),
1
)
Person
.
objects
.
create
(
code
=
self
.
user
.
username
)
create_user_profile
(
self
.
user
.
__class__
,
self
.
user
,
Tru
e
)
self
.
assertEqual
(
Person
.
objects
.
filter
(
code
=
self
.
user
.
username
)
.
count
(),
1
)
class
PersonTestCase
(
TestCase
):
def
setUp
(
self
):
Person
.
objects
.
create
(
)
self
.
testperson
=
Person
.
objects
.
create
(
code
=
'testperson'
)
def
test_language_code_in_choices
(
self
):
"""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
]
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