annotate apps/profile/models.py @ 130:5ab229c9d348

Add back ability to edit account settings * Account/profile editing is now done with a ModelForm, instead of processing the data manually. Help text and verbose names have been moved to the Profile model and to the UserForm (in the latter case, it's because we can't edit the User model directly). * The profile page now shows pygments style information and sections of the profile that are not filled are now hidden. * Some parts of apps/profiles/views.py have been rewritten (the getprofile() method has been removed, as it's no longer necessary, and the editprofile() view was rewritten in accordance with the switch to using ModelForms). * The styling for forms has been modified slightly.
author dellsystem <ilostwaldo@gmail.com>
date Sat, 22 Sep 2012 11:18:23 -0400
parents f872c643b056
children c7be7def8b57
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
29
6ba969517b9c Implement initial profiles, cleanup models, change Free_license to FreeLicense
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
1 from django.db import models
6ba969517b9c Implement initial profiles, cleanup models, change Free_license to FreeLicense
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
2 from django.contrib.auth.models import User
130
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
3 from django.utils.translation import ugettext as _
91
8ef0a2a03034 Add some blank lines where relevant
dellsystem <ilostwaldo@gmail.com>
parents: 29
diff changeset
4
29
6ba969517b9c Implement initial profiles, cleanup models, change Free_license to FreeLicense
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
5 from agora.apps.free_license.models import FreeLicense
102
f872c643b056 Updates to snippet functionality (see details)
dellsystem <ilostwaldo@gmail.com>
parents: 91
diff changeset
6 from agora.apps.pygments_style.models import PygmentsStyle
29
6ba969517b9c Implement initial profiles, cleanup models, change Free_license to FreeLicense
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
7
91
8ef0a2a03034 Add some blank lines where relevant
dellsystem <ilostwaldo@gmail.com>
parents: 29
diff changeset
8
29
6ba969517b9c Implement initial profiles, cleanup models, change Free_license to FreeLicense
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
9 class Profile(models.Model):
6ba969517b9c Implement initial profiles, cleanup models, change Free_license to FreeLicense
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
10 user = models.OneToOneField(User)
130
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
11 preferred_license = models.ForeignKey(FreeLicense, help_text=_("\
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
12 By default, all of your submissions will be under the following \
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
13 license, and this license will be displayed next to your \
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
14 submissions. <a href=\"/licenses/\">Find out more.</a>"),
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
15 default=1)
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
16 interests = models.CharField(max_length=512, null=True, help_text=_("\
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
17 Tell us about your research interests (e.g. \
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
18 <em>signal processing</em>, <em>hyperbolic PDEs</em>). These \
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
19 keywords will be used when searching for submissions."), blank=True,
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
20 verbose_name=_("Research interests"))
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
21 blurb = models.TextField(max_length=16384, null=True, help_text=_("\
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
22 Finally, anything else you would like to say about yourself."),
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
23 blank=True)
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
24 pygments_style = models.ForeignKey(PygmentsStyle, default=1,
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
25 verbose_name=_('Syntax highlighting style'), help_text=_("\
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
26 Choose a stylesheet for displayed syntax-highlighted code. Most of \
5ab229c9d348 Add back ability to edit account settings
dellsystem <ilostwaldo@gmail.com>
parents: 102
diff changeset
27 these stylesheets are based off of default Pygments stylesheets."))
29
6ba969517b9c Implement initial profiles, cleanup models, change Free_license to FreeLicense
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
28
6ba969517b9c Implement initial profiles, cleanup models, change Free_license to FreeLicense
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
29 def __unicode__(self):
6ba969517b9c Implement initial profiles, cleanup models, change Free_license to FreeLicense
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
30 return self.user.username
102
f872c643b056 Updates to snippet functionality (see details)
dellsystem <ilostwaldo@gmail.com>
parents: 91
diff changeset
31
f872c643b056 Updates to snippet functionality (see details)
dellsystem <ilostwaldo@gmail.com>
parents: 91
diff changeset
32
f872c643b056 Updates to snippet functionality (see details)
dellsystem <ilostwaldo@gmail.com>
parents: 91
diff changeset
33 # Defines a post_save hook to ensure that a profile is created for each user
f872c643b056 Updates to snippet functionality (see details)
dellsystem <ilostwaldo@gmail.com>
parents: 91
diff changeset
34 # This also ensures that the admin user (created when running syncdb) has one
f872c643b056 Updates to snippet functionality (see details)
dellsystem <ilostwaldo@gmail.com>
parents: 91
diff changeset
35 def create_user_profile(sender, instance, created, **kwards):
f872c643b056 Updates to snippet functionality (see details)
dellsystem <ilostwaldo@gmail.com>
parents: 91
diff changeset
36 if created:
f872c643b056 Updates to snippet functionality (see details)
dellsystem <ilostwaldo@gmail.com>
parents: 91
diff changeset
37 Profile.objects.create(user=instance)
f872c643b056 Updates to snippet functionality (see details)
dellsystem <ilostwaldo@gmail.com>
parents: 91
diff changeset
38
f872c643b056 Updates to snippet functionality (see details)
dellsystem <ilostwaldo@gmail.com>
parents: 91
diff changeset
39 models.signals.post_save.connect(create_user_profile, sender=User)