Skip to content

Commit

Permalink
Merge branch 'master' into josh23french-master
Browse files Browse the repository at this point in the history
  • Loading branch information
wunki committed Aug 19, 2013
2 parents 9e82d91 + 285549e commit 93657f8
Show file tree
Hide file tree
Showing 33 changed files with 335 additions and 281 deletions.
5 changes: 5 additions & 0 deletions UPDATES
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
This file contains all the backwards-incompatible changes.

Version 1.2.2

- Changed backwards relationships names for Umessages contrib application from
`to_user` to `um_to_user` and `from_user` to `um_from_user`.

Version 1.2.0

- This version updates Userena to be able to use the new `User` model found in
Expand Down
2 changes: 1 addition & 1 deletion demo/demo/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,4 +152,4 @@
ANONYMOUS_USER_ID = -1

# Test runner
TEST_RUNNER = 'django.test.simple.DjangoTestSuiteRunner'
TEST_RUNNER = 'django_coverage.coverage_runner.CoverageRunner'
3 changes: 3 additions & 0 deletions demo/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,6 @@ South

# Userena
django-userena

# Coverage for testing
django_coverage
12 changes: 3 additions & 9 deletions run_tests
Original file line number Diff line number Diff line change
@@ -1,20 +1,14 @@
#!/usr/bin/env bash

# TODO: How to tell setup.py to only run some tests.

case $1 in
userena ) echo -e "\033[1mRunning tests for userena.\033[0m"
cmd="coverage run demo/manage.py test userena"
report_cmd="coverage report -m userena/*.py userena/management/commands/*.py"
cmd="demo/manage.py test userena"
;;
umessages ) echo -e "\033[1mRunning tests for umessages.\033[0m"
cmd="coverage run demo/manage.py test umessages"
report_cmd="coverage report -m userena/contrib/umessages/*.py"
cmd="demo/manage.py test umessages"
;;
* ) echo -e "\033[1mRunning all tests.\033[0m"
cmd="coverage run demo/manage.py test userena umessages"
report_cmd="coverage report -m userena/*.py userena/management/commands/*py userena/contrib/umessages/*.py"
cmd="demo/manage.py test userena umessages"
esac

$cmd
$report_cmd
2 changes: 1 addition & 1 deletion userena/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Django accounts management made easy.
"""
VERSION = (1, 2, 1)
VERSION = (1, 2, 2)

__version__ = '.'.join((str(each) for each in VERSION[:4]))

Expand Down
16 changes: 10 additions & 6 deletions userena/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,14 @@ class UserenaAdmin(UserAdmin, GuardedModelAdmin):
'is_staff', 'is_active', 'date_joined')
list_filter = ('is_staff', 'is_superuser', 'is_active')

try:
admin.site.unregister(get_user_model())
except admin.sites.NotRegistered:
pass

admin.site.register(get_user_model(), UserenaAdmin)
admin.site.register(get_profile_model())
if settings.USERENA_REGISTER_USER:
try:
admin.site.unregister(get_user_model())
except admin.sites.NotRegistered:
pass

admin.site.register(get_user_model(), UserenaAdmin)

if settings.USERENA_REGISTER_PROFILE:
admin.site.register(get_profile_model())
48 changes: 24 additions & 24 deletions userena/contrib/umessages/fixtures/messages.json
Original file line number Diff line number Diff line change
@@ -1,50 +1,50 @@
[
{
"pk": 1,
"model": "umessages.message",
"pk": 1,
"model": "umessages.message",
"fields": {
"body": "Hello from your friend",
"sender_deleted_at": null,
"sent_at": "2010-01-01T12:00:00.019Z",
"body": "Hello from your friend",
"sender_deleted_at": null,
"sent_at": "2010-01-01T12:00:00.019Z",
"sender": 1
}
},
},
{
"pk": 2,
"model": "umessages.message",
"pk": 2,
"model": "umessages.message",
"fields": {
"body": "Hello from your mother",
"sender_deleted_at": "2010-01-01T12:00:00.019Z",
"sent_at": "2010-01-01T12:00:00.019Z",
"body": "Hello from your mother",
"sender_deleted_at": "2010-01-01T12:00:00.019Z",
"sent_at": "2010-01-01T12:00:00.019Z",
"sender": 2
}
},
},
{
"pk": 1,
"model": "umessages.messagerecipient",
"pk": 1,
"model": "umessages.messagerecipient",
"fields": {
"message": 1,
"read_at": null,
"deleted_at": null,
"message": 1,
"read_at": null,
"deleted_at": null,
"user": 2
}
},
{
"pk": 2,
"model": "umessages.messagerecipient",
"pk": 2,
"model": "umessages.messagerecipient",
"fields": {
"message": 2,
"read_at": "2010-01-01T12:00:00.019Z",
"deleted_at": null,
"message": 2,
"read_at": "2010-01-01T12:00:00.019Z",
"deleted_at": null,
"user": 1
}
},
{
"pk": 1,
"model": "umessages.messagecontact",
"fields": {
"from_user": 1,
"to_user": 2,
"um_from_user": 1,
"um_to_user": 2,
"latest_message": 2
}
}
Expand Down
4 changes: 2 additions & 2 deletions userena/contrib/umessages/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ def save(self, sender):
:return: The saved :class:`Message`.
"""
to_user_list = self.cleaned_data['to']
um_to_user_list = self.cleaned_data['to']
body = self.cleaned_data['body']

msg = Message.objects.send_message(sender,
to_user_list,
um_to_user_list,
body)

return msg
42 changes: 21 additions & 21 deletions userena/contrib/umessages/managers.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
class MessageContactManager(models.Manager):
""" Manager for the :class:`MessageContact` model """

def get_or_create(self, from_user, to_user, message):
def get_or_create(self, um_from_user, um_to_user, message):
"""
Get or create a Contact
Expand All @@ -18,21 +18,21 @@ def get_or_create(self, from_user, to_user, message):
"""
created = False
try:
contact = self.get(Q(from_user=from_user, to_user=to_user) |
Q(from_user=to_user, to_user=from_user))
contact = self.get(Q(um_from_user=um_from_user, um_to_user=um_to_user) |
Q(um_from_user=um_to_user, um_to_user=um_from_user))

except self.model.DoesNotExist:
created = True
contact = self.create(from_user=from_user,
to_user=to_user,
contact = self.create(um_from_user=um_from_user,
um_to_user=um_to_user,
latest_message=message)

return (contact, created)

def update_contact(self, from_user, to_user, message):
def update_contact(self, um_from_user, um_to_user, message):
""" Get or update a contacts information """
contact, created = self.get_or_create(from_user,
to_user,
contact, created = self.get_or_create(um_from_user,
um_to_user,
message)

# If the contact already existed, update the message
Expand All @@ -52,20 +52,20 @@ def get_contacts_for(self, user):
The :class:`User` which to get the contacts for.
"""
contacts = self.filter(Q(from_user=user) | Q(to_user=user))
contacts = self.filter(Q(um_from_user=user) | Q(um_to_user=user))
return contacts

class MessageManager(models.Manager):
""" Manager for the :class:`Message` model. """

def send_message(self, sender, to_user_list, body):
def send_message(self, sender, um_to_user_list, body):
"""
Send a message from a user, to a user.
:param sender:
The :class:`User` which sends the message.
:param to_user_list:
:param um_to_user_list:
A list which elements are :class:`User` to whom the message is for.
:param message:
Expand All @@ -77,17 +77,17 @@ def send_message(self, sender, to_user_list, body):
msg.save()

# Save the recipients
msg.save_recipients(to_user_list)
msg.update_contacts(to_user_list)
msg.save_recipients(um_to_user_list)
msg.update_contacts(um_to_user_list)
signals.email_sent.send(sender=None,msg=msg)

return msg

def get_conversation_between(self, from_user, to_user):
def get_conversation_between(self, um_from_user, um_to_user):
""" Returns a conversation between two users """
messages = self.filter(Q(sender=from_user, recipients=to_user,
messages = self.filter(Q(sender=um_from_user, recipients=um_to_user,
sender_deleted_at__isnull=True) |
Q(sender=to_user, recipients=from_user,
Q(sender=um_to_user, recipients=um_from_user,
messagerecipient__deleted_at__isnull=True))
return messages

Expand All @@ -111,22 +111,22 @@ def count_unread_messages_for(self, user):

return unread_total

def count_unread_messages_between(self, to_user, from_user):
def count_unread_messages_between(self, um_to_user, um_from_user):
"""
Returns the amount of unread messages between two users
:param to_user:
:param um_to_user:
A Django :class:`User` for who the messages are for.
:param from_user:
:param um_from_user:
A Django :class:`User` from whom the messages originate from.
:return:
An integer with the amount of unread messages.
"""
unread_total = self.filter(message__sender=from_user,
user=to_user,
unread_total = self.filter(message__sender=um_from_user,
user=um_to_user,
read_at__isnull=True,
deleted_at__isnull=True).count()

Expand Down
22 changes: 11 additions & 11 deletions userena/contrib/umessages/migrations/0001_initial.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@
class Migration(SchemaMigration):

def forwards(self, orm):

# Adding model 'MessageContact'
db.create_table('umessages_messagecontact', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('from_user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='from_users', to=orm['auth.User'])),
('to_user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='to_users', to=orm['auth.User'])),
('um_from_user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='um_from_users', to=orm['auth.User'])),
('um_to_user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='um_to_users', to=orm['auth.User'])),
('latest_message', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['umessages.Message'])),
))
db.send_create_signal('umessages', ['MessageContact'])

# Adding unique constraint on 'MessageContact', fields ['from_user', 'to_user']
db.create_unique('umessages_messagecontact', ['from_user_id', 'to_user_id'])
# Adding unique constraint on 'MessageContact', fields ['um_from_user', 'um_to_user']
db.create_unique('umessages_messagecontact', ['um_from_user_id', 'um_to_user_id'])

# Adding model 'MessageRecipient'
db.create_table('umessages_messagerecipient', (
Expand All @@ -42,9 +42,9 @@ def forwards(self, orm):


def backwards(self, orm):
# Removing unique constraint on 'MessageContact', fields ['from_user', 'to_user']
db.delete_unique('umessages_messagecontact', ['from_user_id', 'to_user_id'])

# Removing unique constraint on 'MessageContact', fields ['um_from_user', 'um_to_user']
db.delete_unique('umessages_messagecontact', ['um_from_user_id', 'um_to_user_id'])

# Deleting model 'MessageContact'
db.delete_table('umessages_messagecontact')
Expand Down Expand Up @@ -103,11 +103,11 @@ def backwards(self, orm):
'sent_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'})
},
'umessages.messagecontact': {
'Meta': {'ordering': "['latest_message']", 'unique_together': "(('from_user', 'to_user'),)", 'object_name': 'MessageContact'},
'from_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'from_users'", 'to': "orm['auth.User']"}),
'Meta': {'ordering': "['latest_message']", 'unique_together': "(('um_from_user', 'um_to_user'),)", 'object_name': 'MessageContact'},
'um_from_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'um_from_users'", 'to': "orm['auth.User']"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'latest_message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['umessages.Message']"}),
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'to_users'", 'to': "orm['auth.User']"})
'um_to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'um_to_users'", 'to': "orm['auth.User']"})
},
'umessages.messagerecipient': {
'Meta': {'object_name': 'MessageRecipient'},
Expand Down
Loading

0 comments on commit 93657f8

Please sign in to comment.