Skip to content

Commit

Permalink
Add ability to customize user display
Browse files Browse the repository at this point in the history
  • Loading branch information
paltman committed Jul 30, 2016
1 parent cfe6cc4 commit 17fa975
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 3 deletions.
21 changes: 18 additions & 3 deletions pinax/messages/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,23 @@
from .models import Message


class NewMessageForm(forms.ModelForm):
class UserModelChoiceField(forms.ModelChoiceField):

def label_from_instance(self, obj):
return hookset.display_name(obj)


class UserModelMultipleChoiceField(forms.ModelMultipleChoiceField):

def label_from_instance(self, obj):
return hookset.display_name(obj)


class NewMessageForm(forms.Form):

subject = forms.CharField()
to_user = forms.ModelChoiceField(queryset=get_user_model().objects.none)
to_user = UserModelChoiceField(queryset=get_user_model().objects.none)
content = forms.CharField(widget=forms.Textarea)

def __init__(self, *args, **kwargs):
self.user = kwargs.pop("user")
Expand All @@ -31,7 +45,8 @@ class Meta:

class NewMessageFormMultiple(forms.ModelForm):
subject = forms.CharField()
to_user = forms.ModelMultipleChoiceField(get_user_model().objects.none)
to_user = UserModelMultipleChoiceField(get_user_model().objects.none)
content = forms.CharField(widget=forms.Textarea)

def __init__(self, *args, **kwargs):
self.user = kwargs.pop("user")
Expand Down
3 changes: 3 additions & 0 deletions pinax/messages/hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@

class DefaultHookSet(object):

def display_name(self, user):
return str(user)

def get_user_choices(self, user):
return get_user_model().objects.exclude(id=user.id)

Expand Down

0 comments on commit 17fa975

Please sign in to comment.