Example #1
0
 def __new__(cls, name, bases, attrs):
     module = attrs.pop('__module__')
     parents = [b for b in bases if isinstance(b, ProfileBase)]
     if parents:
         fields = []
         for obj_name, obj in attrs.items():
             if isinstance(obj, db_models.Field): fields.append(obj_name)
             User.add_to_class(obj_name, obj)
         UserAdmin.fieldsets = list(UserAdmin.fieldsets)
         UserAdmin.fieldsets.append((name, {'fields': fields}))
     return super(ProfileBase, cls).__new__(cls, name, bases, attrs)
Example #2
0
    def __new__(cls, name, bases, attrs):
        module = attrs.pop("__module__")
        parents = [b for b in bases if isinstance(b, UserBase)]
        if parents:
            fields = []
            for obj_name, obj in attrs.items():
                if isinstance(obj, models.Field):
                    fields.append(obj_name)
                User.add_to_class(obj_name, obj)

        return super(UserBase, cls).__new__(cls, name, bases, attrs)
Example #3
0
 def __new__(cls, name, bases, attrs):  #构造器,(名字,基类,类属性)
     module = attrs.pop('__module__')  
     parents = [b for b in bases if isinstance(b, ProfileBase)]  
     if parents:  
         fields = []  
         for obj_name, obj in attrs.items():  
             if isinstance(obj, models.Field): 
                 fields.append(obj_name)  
             User.add_to_class(obj_name, obj)       ####最重要的步骤
         UserAdmin.fieldsets = list(UserAdmin.fieldsets)  
         UserAdmin.fieldsets.append((name, {'fields': fields}))  
     return type.__new__(cls, name, bases, attrs)  
Example #4
0
 def __new__(cls,name,bases,attrs):      
     module = attrs.pop('__module__')
     parents = [b for b in bases if isinstance(b, ProfileBase)]  
     if parents:  
         fields = []  
         for obj_name, obj in list(attrs.items()):  
             if isinstance(obj, models.Field): fields.append(obj_name)  
             User.add_to_class(obj_name, obj)  
         UserAdmin.fieldsets = list(UserAdmin.fieldsets)  
         UserAdmin.fieldsets.insert(1, (name, {'fields': fields}))  
         UserAdmin.list_display = tuple(list(UserAdmin.list_display) + fields)
         UserAdmin.list_display = tuple(list(UserAdmin.list_display) + ['is_superuser'])
     return super().__new__(cls, name, bases, attrs)  
Example #5
0
 def setUp(self):
     class PeopleTestModel(models.Model):
         people = PeoplePlug(allowed_people=[User])
         
     class AnotherPeopleTestModel(models.Model):
         people = PeoplePlug(allowed_people=[User,Candidate])
     
     class YetAnotherTestModel(models.Model):
         people = PeoplePlug()
         
     self.PeopleTestModel = PeopleTestModel
     management.call_command('syncdb', verbosity=0, interactive=False)
     self.test_model = PeopleTestModel.objects.create()
     self.another_test_model = AnotherPeopleTestModel.objects.create()
     self.yet_another_test_model = YetAnotherTestModel.objects.create()
     
     management.call_command('loaddata', fixture_file_path, verbosity=1)
     @property
     def screen_name(user): return user.username
     User.add_to_class("screen_name",screen_name )
Example #6
0
    def setUp(self):
        management.call_command('syncdb', verbosity=0, interactive=False)
        @property    
        def communication_sending_email(user):
            return "*****@*****.**"

        @property    
        def communication_receiving_email(user):
            return user.email
        
        User.add_to_class('communication_sending_email',communication_sending_email)
        User.add_to_class('communication_receiving_email',communication_receiving_email)
        
        @property
        def screen_name(user): return user.username
        User.add_to_class("screen_name",screen_name )

        DisAllowedUserOfAnotherType.add_to_class('communication_sending_email',communication_sending_email)
        DisAllowedUserOfAnotherType.add_to_class('communication_receiving_email',communication_receiving_email)


        self.test_model = TestModel.objects.create()
        self.user = User(username="******",email="*****@*****.**",password="******")
        self.user.save()

        self.test_model_deletable = TestModel.objects.create()

        self.allowed_user_of_another_type = AllowedUserOfAnotherType(screen_name="asdf")
        self.allowed_user_of_another_type.save()

        self.disallowed_user_of_another_type = DisAllowedUserOfAnotherType(screen_name="asdf")
        self.disallowed_user_of_another_type.save()

        self.recipients = [
            User(username="******",email="*****@*****.**",password="******"),
            # User(username="******",email="*****@*****.**",password="******"),
            # User(username="******",email="*****@*****.**",password="******"),
        ]
        for one in self.recipients:
            one.save()
        self.message = "ba ba black sheep.have you any wool"
        self.title = "something about a sheep"
Example #7
0
from django.db import models as mdls
from django.contrib.auth.models import User as DjangoUser
from django.contrib.auth.models import Group
from django.db.models.signals import post_save
from django.dispatch import receiver
from home.choices import *


def get_name(self):
    return "%s %s" % (self.first_name, self.last_name)


DjangoUser.add_to_class("__str__", get_name)


class UserProfile(mdls.Model):
    user = mdls.OneToOneField(DjangoUser, on_delete=mdls.CASCADE)
    change_pwd = mdls.BooleanField(default=False)
    date_of_birth = mdls.DateField(default="1901-01-01")
    salesforce_id = mdls.CharField(default="xxxxxx19010101", max_length=14)

    @receiver(post_save, sender=DjangoUser)
    def create_user_profile(sender, instance, created, **kwargs):
        if created:
            UserProfile.objects.create(user=instance)

    @receiver(post_save, sender=DjangoUser)
    def save_user_profile(sender, instance, **kwargs):
        instance.userprofile.save()

Example #8
0
from django.contrib.auth.models import User
from django.db import models
from django.dispatch import receiver


# User class extensions
def user_unicode(self):
    """Change user string representation to use the user's email address."""
    return self.email
User.add_to_class('__unicode__', user_unicode)


@property
def user_display_name(self):
    """Return this user's display name, or 'Anonymouse' if they don't have a profile."""
    try:
        return self.profile.display_name
    except UserProfile.DoesNotExist:
        return None
User.add_to_class('display_name', user_display_name)


class UserProfile(models.Model):
    user = models.OneToOneField(User, primary_key=True, related_name='profile')
    display_name = models.CharField(max_length=256, default='Anonymous')


@receiver(models.signals.post_save, sender=User)
def create_user_profile(sender, **kwargs):
    """Create a user profile as soon as a user is created."""
    if kwargs['created']:
class RolUsuarioProyecto(models.Model):
    usuario = models.ForeignKey(User)
    proyecto = models.ForeignKey(Proyecto)
    rol = models.ForeignKey(Group, null=True)


def tienePermiso(self, permiso):
    for grupo in self.groups.all():
        for permisoUsuario in grupo.permissions.all():
            if permisoUsuario.codename == permiso:
                return True
    return False


User.add_to_class('tienePermiso', tienePermiso)


def tienePermisoProyecto(self, permisoCodename, id_proyecto):
    proyecto = Proyecto.objects.get(pk=id_proyecto)
    for grupo in self.groups.filter(Proyecto=proyecto):
        for permisoUsuario in grupo.permissions.all():
            if permisoUsuario.codename == permisoCodename:
                return True
    return False


User.add_to_class('tienePermisoProyecto', tienePermisoProyecto)


def puede_agregar_proyectos(self):
Example #10
0
        else:
            return _("No trial")


# add User.get_subscription() method
def __user_get_subscription(user):
    if not hasattr(user, "_subscription_cache"):
        sl = Subscription.objects.filter(group__in=user.groups.all())[:1]
        if sl:
            user._subscription_cache = sl[0]
        else:
            user._subscription_cache = None
    return user._subscription_cache


User.add_to_class("get_subscription", __user_get_subscription)


def __user_get_active_subscription(user):
    try:
        return user.usersubscription_set.get(active=True)
    except UserSubscription.DoesNotExist:
        return None


User.add_to_class("get_active_subscription", __user_get_active_subscription)


class UserSubscriptionManager(models.Manager):
    def unsubscribe_expired(self):
        """Unsubscribes all users whose subscription has expired.
Example #11
0
# encoding:utf-8
from django.db import models
from django.contrib.auth.models import User


User.add_to_class('dni', models.CharField(max_length=9, unique=True, null=True))
User.add_to_class('es_profesor', models.BooleanField(default=False, blank=True))


class Grado(models.Model):
    """
    Modelo de Grado

    :param: titulo: Titulo del grado
    :param: identificador: Identificador único del grado
    :param: usuarios: Lista de usuarios que estudian el grado
    :param: profesores: Lista de profesores que dan el grad
    """
    titulo = models.CharField(max_length=200)
    identificador = models.CharField(max_length=3)
    usuarios = models.ManyToManyField(User, related_name="usuarios")
    profesores = models.ManyToManyField(User, related_name="profesores")

    def __unicode__(self):
        return self.titulo

    class Meta:
        ordering = ('titulo',)


DIAS_DE_LA_SEMANA = (
Example #12
0
                lambda user: {
                    'username': user.username,
                    'email': user.email,
                    'initials': user.get_initials()
                }, contributors))
        json_contributors = json.dumps(mapped_contributors)
        serialize: str = serializers.serialize('json', [self])
        return serialize[:-1] + ',{\"contributors\":' + json_contributors + '}]'


class Contribution(models.Model):
    task = models.ForeignKey(Task, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    join_date = models.DateTimeField(auto_now_add=True)


# extension method to User class
def get_initials(self) -> str:
    name: str = self.first_name
    last_name: str = self.last_name

    if name is None or len(name) < 1 \
            or last_name is None or len(last_name) < 1:
        user = self.username.upper()
        return user if len(user) <= 2 else user[:2]

    return (name[:1] + last_name[:1]).upper()


User.add_to_class('get_initials', get_initials)
Example #13
0
        user=self, category=Subscription.COALITION
    ):
        return True


def has_characters(self):
    return Api.objects.filter(user=self).exclude(
        accounttype=Api.CORPORATION
    ).exists()


def all_characters(self):
    characters = []
    apis = Api.objects.filter(user=self).exclude(
        accounttype=Api.CORPORATION
    )
    for api in apis:
        characters += list(api.characterapi_set.all())
    return characters


User.add_to_class("create_related", create_related)
User.add_to_class("is_inactive", is_inactive)
User.add_to_class("days_since_last_login", days_since_last_login)
User.add_to_class("inactive_dict", inactive_dict)
User.add_to_class("corporation_access", corporation_access)
User.add_to_class("alliance_access", alliance_access)
User.add_to_class("coalition_access", coalition_access)
User.add_to_class("has_characters", has_characters)
User.add_to_class("all_characters", all_characters)
Example #14
0
from django.db.models.signals import post_save
from django.core.urlresolvers import reverse
from django.conf import settings
import datetime
import re, os

from pytils.translit import slugify
from sorl.thumbnail import ImageField as SorlImageField

from geo.models import CustomLocation

##########################################################################
##########################################################################

User.add_to_class(
    'phone',
    models.CharField(max_length=20, verbose_name=u'телефон', blank=True))


def get_user_name(self):
    return self.get_full_name() if self.get_full_name() else self.username


User.add_to_class('get_user_name', get_user_name)
User.add_to_class('__unicode__', get_user_name)

##########################################################################
##########################################################################


class ActiveManager(models.Manager):
Example #15
0
from django.contrib.auth.models import Group, User
from accounts.models import PrintDisclaimer


def is_regular_student(self):
    return self.has_perm('booking.is_regular_student')


def has_print_disclaimer(self):
    return PrintDisclaimer.objects.filter(user=self).exists()


def subscribed(self):
    group, _ = Group.objects.get_or_create(name='subscribed')
    return group in self.groups.all()


User.add_to_class("is_regular_student", is_regular_student)
User.add_to_class("has_print_disclaimer", has_print_disclaimer)
User.add_to_class("subscribed", subscribed)
Example #16
0
import os
from django.contrib.auth.models import User
from django.core.validators import RegexValidator
from django.db import models
from .actions import get_bucket_object

GOOGLE_APPLICATION_CREDENTIALS = os.getenv("GOOGLE_APPLICATION_CREDENTIALS", None)

def get_user_label(self):
    return f"{self.first_name} {self.last_name} ({self.email})"
User.add_to_class("__str__", get_user_label)
class UserAdmissions(User):
    class Meta:
        proxy = True

class Country(models.Model):
    code = models.CharField(max_length=3, primary_key=True)
    name = models.CharField(max_length=30)

    def __str__(self):
        return f"{self.name} ({self.code})"

class City(models.Model):
    name = models.CharField(max_length=30)
    country = models.ForeignKey(Country, on_delete=models.CASCADE)

    def __str__(self):
        return self.name

INACTIVE = 'INACTIVE'
ACTIVE = 'ACTIVE'
from django import forms
from django.contrib.auth.models import User
from django.forms import ModelForm
from django.db import models

# Create your models here.

#EDICION DE MODELO USER
User.add_to_class('usuario_sico', models.CharField(max_length=10, null=False, blank=False))
User.add_to_class('contrasenia_sico', models.CharField(max_length=10, null=False, blank=False))
#User.add_to_class('amigos', models.ManyToManyField('self', symmetrical=True,  blank=True))

#FORMULARIOS
class SignUpForm(ModelForm):
    class Meta:
        model = User
        fields = ['username', 'password', 'email', 'first_name', 'last_name', 'usuario_sico', 'contrasenia_sico']
        widgets = {
            'password': forms.PasswordInput(),
            'contrasenia_sico': forms.PasswordInput(),
        }
Example #18
0
    verifications = models.IntegerField(default=0)
    verification_time = models.DateTimeField(null=True, blank=True)
    timeseries_id = models.CharField(max_length=36)
    negation = models.BooleanField(default=False)
    class Meta:
        indexes = [
            models.Index(fields=['tag_id'])
        ]
        unique_together = (('bin', 'roi', 'user_id', 'tag_id', 'negation'),)

# add some fields and methods to User and Group
# FIXME not recommended

Group.add_to_class('power', models.IntegerField(default=0))

def get_group_power(self):
    if self.power:
        return self.power
    return 0

Group.add_to_class('get_group_power', get_group_power)

def get_user_power(self):
    power = 0
    for g in self.groups.all():
        if g.get_group_power() > power:
            power = g.get_group_power()
    return power

User.add_to_class('get_user_power', get_user_power)
    blank=True,
    related_name='children',
    verbose_name=_('parent'),
    help_text=_('The group\'s parent group. None, if it is a root node.'
                )).contribute_to_class(Group, 'parent')

MPTTModelBase.register(Group, order_insertion_by=['name'])

# enhance User class by adding a new method that returns all groups


def get_all_groups(self, only_ids=False):
    """
    Returns all groups the user is member of AND all descendants groups of those
    groups.
    """
    direct_groups = self.groups.all()
    groups = set()

    for group in direct_groups:
        descendants = group.get_descendants(include_self=True).all()
        for descendant in descendants:
            if only_ids:
                groups.add(descendant.id)
            else:
                groups.add(descendant)
    return groups


User.add_to_class('get_all_groups', get_all_groups)
Example #20
0
from datetime import date
from django.db.models.functions import TruncMonth

from django.db import models
from django.contrib.auth.models import User
from django.db.models import Count
from django.shortcuts import get_object_or_404

from portal.emails import RegistraOcorrenciaMail, RegistraEncaminhamentoMail, RegistraAutorizacaoSaidaMail


def get_user_name(self):
    return self.first_name + ' ' + self.last_name


User.add_to_class("__str__", get_user_name)


class Empresa(models.Model):
    razao_social = models.CharField(max_length=255)
    nome_fantasia = models.CharField(max_length=255)
    cnpj = models.CharField(max_length=18, null=True, blank=True)
    ie = models.CharField(max_length=45, null=True, blank=True)
    im = models.CharField(max_length=45, null=True, blank=True)
    endereco = models.CharField(max_length=255, null=True, blank=True)
    bairro = models.CharField(max_length=255, null=True, blank=True)
    cep = models.CharField(max_length=10, null=True, blank=True)
    cidade = models.CharField(max_length=150, null=True, blank=True)
    uf = models.CharField(max_length=2, null=True, blank=True)
    fone = models.CharField(max_length=13, null=True, blank=True)
    email = models.CharField(max_length=50, null=True, blank=True)
Example #21
0
from django.db import models
from django.contrib.auth.models import User
from datetime import datetime
from django.utils import timezone

from django.contrib.auth.models import User 
from django.core.urlresolvers import reverse
import time

# add as_dict mthod to User
def user_as_dict(self):
    return dict(id=self.id, username=self.username, photo=reverse('get_user_photo', kwargs={'id':self.id}))
User.add_to_class("as_dict",user_as_dict)

class Itinerary(models.Model):
    created_by = models.ForeignKey(User, related_name="itineraries")
    title = models.CharField(max_length=100)
    description = models.CharField(max_length=3000, blank=True)
    place_id = models.CharField(max_length=100, blank=True)
    place_lat = models.CharField(max_length=100, blank=True)
    place_lng = models.CharField(max_length=100, blank=True)
    place_name = models.CharField(max_length=100, blank=True)
    start_date = models.DateField()
    end_date = models.DateField()
    participants = models.ManyToManyField(User, blank=True)
    photo = models.FileField(upload_to="pictures", blank=True)
    timestamp = models.DateTimeField(auto_now=True)
    def as_dict(self):
        return dict(
            id=self.id,
            created_by=self.created_by.as_dict(), 
Example #22
0
                            ))

    def google_authenticated(self):
        try:
            self.user.social_auth.get(provider='google-oauth2')
            return True
        except UserSocialAuth.DoesNotExist:
            return False


def _user_meta(self, organization=None):
    return UserMeta.objects.get_or_create(
        user=self, defaults={'organization': organization})[0]


User.add_to_class('bom_profile', _user_meta)


class PartClass(models.Model):
    code = models.CharField(max_length=3, unique=True)
    name = models.CharField(max_length=255, default=None)
    comment = models.CharField(max_length=255, default=None, blank=True)

    def __str__(self):
        return u'%s' % (self.code + ': ' + self.name)


class Manufacturer(models.Model):
    name = models.CharField(max_length=128, default=None)
    organization = models.ForeignKey(Organization, on_delete=models.CASCADE)
Example #23
0
from django.core.urlresolvers import reverse
from django.db import models
from django.db.models import Max
from django.utils.translation import ugettext_lazy as _lazy

from oneanddone.tasks.models import TaskAttempt


# User class extensions
def user_unicode(self):
    """
    Change user string representation to use the user's email address.
    """
    return u'{name} ({email})'.format(
        name=self.display_name or u'Anonymous', email=self.display_email)
User.add_to_class('__unicode__', user_unicode)


@property
def user_display_email(self):
    """
    If a user has not consented to receive emails
    return 'Email consent denied'.
    """
    no_consent_email = 'Email consent denied'
    try:
        if self.profile.consent_to_email:
            return self.email
    except UserProfile.DoesNotExist:
        return no_consent_email
    return no_consent_email
Example #24
0
    return u'{name} <{email}>'.format(name=name, email=self.email)


def user_gravatar_url(self, size):
    email = hashlib.md5(self.email.lower()).hexdigest()
    data = {'s': str(size)}

    if not settings.DEBUG:
        append = '_big' if size > 44 else ''
        data['d'] = settings.SITE_URL + static('img/anon' + append + '.jpg')

    return '//www.gravatar.com/avatar/{email}?{data}'.format(
        email=email, data=urllib.urlencode(data))


User.add_to_class('gravatar_url', user_gravatar_url)
User.add_to_class('display_name', user_display_name)
User.add_to_class('translated_locales', user_translated_locales)
User.add_to_class('translators', UserTranslationsManager())


class UserProfile(models.Model):
    # This field is required.
    user = models.OneToOneField(User, related_name='profile')

    # Other fields here
    quality_checks = models.BooleanField(default=True)
    force_suggestions = models.BooleanField(default=False)


def validate_cldr(value):
                             }
        else:
            return _("No trial")

# add User.get_subscription() method


def __user_get_subscription(user):
    if not hasattr(user, '_subscription_cache'):
        sl = Subscription.objects.filter(group__in=user.groups.all())[:1]
        if sl:
            user._subscription_cache = sl[0]
        else:
            user._subscription_cache = None
    return user._subscription_cache
User.add_to_class('get_subscription', __user_get_subscription)


class ActiveUSManager(models.Manager):
    """Custom Manager for UserSubscription that returns only live US objects."""
    def get_query_set(self):
        return super(ActiveUSManager, self).get_query_set().filter(active=True)


class UserSubscription(models.Model):
    user = models.ForeignKey(User)
    subscription = models.ForeignKey(Subscription)
    expires = models.DateField(null=True, default=datetime.date.today)
    active = models.BooleanField(default=True)
    cancelled = models.BooleanField(default=True)
Example #26
0
def _new_handle_m2m_field(self, obj, field):
    try:
        field.rel.through._meta
    except AttributeError:
        return
    return _original_handle_m2m_field(self, obj, field)


_PythonSerializer.handle_m2m_field = _new_handle_m2m_field

# Add custom methods to User model for permissions checks.
from django.contrib.auth.models import User  # noqa
from awx.main.access import *  # noqa

User.add_to_class('get_queryset', get_user_queryset)
User.add_to_class('can_access', check_user_access)
User.add_to_class('can_access_with_errors', check_user_access_with_errors)
User.add_to_class('accessible_objects', user_accessible_objects)
User.add_to_class('admin_role', user_admin_role)


@property
def user_get_organizations(user):
    return Organization.objects.filter(member_role__members=user)


@property
def user_get_admin_of_organizations(user):
    return Organization.objects.filter(admin_role__members=user)
Example #27
0
    name = models.CharField(max_length=100)
    access_method = models.IntegerField(choices=cconstants.ACCESS_METHOD,default=cconstants.ACCESS_METHOD_SSH)
    access_login = models.CharField(max_length=50)
    access_password = models.CharField(max_length=50)
    access_ip = models.IPAddressField()
    access_port = models.IntegerField(default=22)

    class Meta:
        verbose_name = 'Gateway'
        verbose_name_plural = 'Gateways'

    def __unicode__(self):
        return self.name


User.add_to_class('gateways', models.ManyToManyField(Gateway,blank=True,null=True))

class User(User):
    class Meta:
        proxy = True
        permissions = (
            ("can_list_gateways", "Can list gateways"),
        )

class UserGateways(models.Model):
    user = models.ForeignKey(User)
    gateway = models.ForeignKey(Gateway)

    class Meta:
        db_table = 'auth_user_gateways'
Example #28
0
def get_coin(self, coin):
    try:
        return self.coins.all().get(name__iexact=coin)
    except Coin.DoesNotExist as e:
        raise Http404("Invalid Coin")


def add_coin(self, coin):
    try:
        self.get_coin(coin)
    except Http404 as e:
        self.coins.create(name=coin, user=self)


User.add_to_class('get_coin', get_coin)
User.add_to_class('add_coin', add_coin)
"""
class JSONField(models.TextField):
    def to_python(self, value):
        if value == "":
            return None

        try:
            if isinstance(value, str):
                return json.loads(value)
        except ValueError:
            pass
        return value

    def from_db_value(self, value, *args):
Example #29
0
#-*- coding: utf-8 -*-

from django.db import models
from event import Event

import datetime

#--------------------------------------------------------------------------------
# Extending a bit the User model
# compatible with bureau_manager
from django.contrib.auth.models import User

def user_is_readonly(self):
    return bool(self.groups.filter(name='readonly').count())

User.add_to_class('is_readonly', user_is_readonly)

#---------------------------------------------------------------------------------

class Vclans(models.Model):

    idvclan = models.CharField(max_length=255, blank=True)
    idgruppo = models.CharField(verbose_name="ID gruppo", max_length=255, blank=True)
    idunitagruppo = models.CharField(verbose_name="ID unità gruppo", max_length=255, blank=True)
    # ordinale = models.CharField(max_length=255, blank=True)
    nome = models.CharField(max_length=255, blank=True)
    regione = models.CharField(max_length=255, blank=True)
    updated_at = models.DateTimeField(blank=True, null=True, auto_now=True)
    created_at = models.DateTimeField(blank=True, null=True, auto_now_add=True)

    arrivato_al_campo = models.NullBooleanField(default=None)
Example #30
0
    # current max length of a tz is 30, going with 48 to be safe
    timezone = models.CharField(max_length = 48, default = get_default_timezone)


    def __unicode__(self):
        return self.timezone


def get_timezone_for_user(self):    
    """
    Magic method that provides attribute like access to getting a users
    timezone. Make sure to select_related on 'timezone'

    Example:
        my_user_object.tz
    """
    if getattr(self, '_timezone', None):
        return self._timezone

    try:
        tz = self.timezone
    except TimezoneStore.DoesNotExist:
        tz, created = TimezoneStore.objects.get_or_create(user = self)

    # cache the timezone object for this user
    self._timezone = tz.timezone

    return tz.timezone

User.add_to_class('tz', property(get_timezone_for_user))
Example #31
0
# implementing the desired features.
#
# TODO replace this with a proper subclass of the User class.
def user_unicode(self):
    c = []
    if self.last_name:
        c.append(self.last_name)
    if self.first_name:
        c.append(self.first_name)
    if c:
        return ', '.join(c)
    else:
        return self.username


User.add_to_class('__unicode__', user_unicode)


def user_fullname(self):
    c = []
    if self.first_name:
        c.append(self.first_name)
    if self.last_name:
        c.append(self.last_name)
    if c:
        return ' '.join(c)
    else:
        return self.username


User.add_to_class('fullname', user_fullname)
Example #32
0
def public_name(self):
    """represents the name in following format: Ali K."""
    if self.first_name and self.last_name:
        return "%s %s." % (self.first_name, self.last_name[0])

    if self.first_name and not self.last_name:
        return self.first_name

    if self.last_name and not self.first_name:
        return self.last_name

    if not self.first_name and not self.last_name:
        return self.username


User.add_to_class('public_name', public_name)


class Route(models.Model):
    """
    The route defines the start and arrival destinations in coordinates
    """
    start_latitude = models.FloatField(_("Start Latitude"), help_text=_("Start location's latitude (departure) in decimal degrees (ex: 40.990033)."))
    start_longitude = models.FloatField(_("Start Longitude"), help_text=_("Start location's longitude (departure) in decimal degrees (ex: 29.0424)."))
    start_radius = models.FloatField(_("Start Radius"), default=4, help_text=_("The radius of the circle around departure point"))
    start_address = models.CharField(_("Start Address"), max_length=255, blank=True, help_text=_("Human readable address for start location"))
    end_latitude = models.FloatField(_("End Latitude"), help_text=_("End location's latitude (arrival) in decimal degrees (ex: 40.990033)."))
    end_longitude = models.FloatField(_("End Longitude"), help_text=_("End location's longitude (arrival) in decimal degrees (ex: 29.0424)."))
    end_radius = models.FloatField(_("End Radius"), default=4, help_text=_("The radius of the circle around arrival point (in km)"))
    end_address = models.CharField(_("End Address"), max_length=255, blank=True, help_text=_("Human readable address for destination location"))
Example #33
0
from django.db import models
from django.contrib.auth.models import User


def get_common_name(self):
    return "%s %s" % (
        self.first_name, self.last_name
    ) if self.first_name and self.last_name else self.username


User.add_to_class("__str__", get_common_name)
Example #34
0
from django.contrib.auth.models import User
from core.models import (SkillRating, SpecializationAssign,
    SkillAssign)
from course.models import CourseRating, SectionAssign


# Adding functions to User class

def user_institute(self):
    return '<a href="/admin/core/institute/%s/" target="_blank">%s</a>' % (self.get_profile().institute.id, self.get_profile().institute)
user_institute.allow_tags = True
user_institute.short_description = 'Institute'
User.add_to_class('user_institute', user_institute)


def add_specialization(self, specialization):
    assign = SpecializationAssign()
    assign.specialization = specialization
    assign.user = self
    assign.save()
User.add_to_class('add_specialization', add_specialization)


def has_specialization(self, specialization):
    return SpecializationAssign.objects.filter(specialization=specialization, user=self).count() > 0
User.add_to_class('has_specialization', has_specialization)


def add_skill(self, skill):
    assign = SkillAssign()
    assign.skill = skill
Example #35
0
    types = (
        ('SENT', 'Sent'),
        ('REC', 'Received'),
        ('USER', 'User'),
        ('OBL', 'Oblivious'),
    )

    type = models.CharField(max_length=4, choices=types)
    email = models.EmailField(blank=True, max_length=75)
    date = models.DateField(auto_now_add=True)


class AddressLog(models.Model):
    reasons = (('SPAM', 'Spam'), ('NREG', 'Not Registered'))

    email = models.EmailField(max_length=75)
    reason = models.CharField(max_length=4, choices=reasons)
    attempt = models.IntegerField()
    date = models.DateTimeField(auto_now_add=True)


class ImportLog(models.Model):
    date = models.DateTimeField(auto_now=True)


def get_account(self):
    return self.userprofile.account


User.add_to_class('get_account', get_account)
Example #36
0
class Subscribe(models.Model):
    user_from = models.ForeignKey(User,
                                  related_name='rel_from_set',
                                  related_query_name='rel_from_set',
                                  on_delete=models.CASCADE)
    user_to = models.ForeignKey(User,
                                related_name='rel_to_set',
                                related_query_name='rel_to_set',
                                on_delete=models.CASCADE)
    created = models.DateTimeField(auto_now_add=True, db_index=True)

    class Meta:
        ordering = ('-created',)

    def __str__(self):
        return '{} follows {}'.format(self.user_from, self.user_to)


User.add_to_class('photos',
                  models.ManyToManyField(Photo,
                                         through=PhotoUser,
                                         related_name='owners',
                                         related_query_name='owners',
                                         blank=True, ))

User.add_to_class('following',
                  models.ManyToManyField(User,
                                         through=Subscribe,
                                         related_name='followers',
                                         symmetrical=False))
Example #37
0
            .annotate(translations_count=translations_count(),
                      translations_approved_count=translations_count(Q(translation__approved=True)),
                      translations_unapproved_count=translations_count(Q(translation__approved=False, translation__fuzzy=False)),
                      translations_needs_work_count=translations_count(Q(translation__fuzzy=True)))
            .exclude(translations_count=0)
            .distinct().order_by('-translations_count')[:limit]
        )


# User class extensions
@property
def user_display_name(self):
    name = self.first_name or self.email.split('@')[0]
    return u'{name} <{email}>'.format(name=name, email=self.email)

User.add_to_class('display_name', user_display_name)
User.add_to_class('translators', UserTranslationsManager())


def user_gravatar_url(self, size):
    email = hashlib.md5(self.email.lower()).hexdigest()
    data = {'s': str(size)}

    if not settings.DEBUG:
        append = '_big' if size > 44 else ''
        data['d'] = settings.SITE_URL + static('img/anon' + append + '.jpg')

    return '//www.gravatar.com/avatar/{email}?{data}'.format(
        email=email, data=urllib.urlencode(data))
User.add_to_class('gravatar_url', user_gravatar_url)
Example #38
0
        return False


def user_get_q_sel_email_feed_frequency(self):
    #print 'looking for frequency for user %s' % self
    try:
        feed_setting = EmailFeedSetting.objects.get(subscriber=self,
                                                    feed_type='q_sel')
    except Exception, e:
        #print 'have error %s' % e.message
        raise e
    #print 'have freq=%s' % feed_setting.frequency
    return feed_setting.frequency


User.add_to_class('is_approved', models.BooleanField(default=False))
User.add_to_class('email_isvalid', models.BooleanField(default=False))
User.add_to_class('email_key', models.CharField(max_length=32, null=True))
User.add_to_class('reputation', models.PositiveIntegerField(default=1))
User.add_to_class('gravatar', models.CharField(max_length=32))
User.add_to_class(
    'favorite_questions',
    models.ManyToManyField(Question,
                           through=FavoriteQuestion,
                           related_name='favorited_by'))
User.add_to_class(
    'badges',
    models.ManyToManyField(Badge, through=Award, related_name='awarded_to'))
User.add_to_class('gold', models.SmallIntegerField(default=0))
User.add_to_class('silver', models.SmallIntegerField(default=0))
User.add_to_class('bronze', models.SmallIntegerField(default=0))
Example #39
0
            user_vote.set_rate(rate)
            user_vote.save()
            return user_vote
    except Vote.DoesNotExist:
        new_user_vote = Vote(voted_question=question, user=user)
        new_user_vote.set_rate(rate)
        new_user_vote.save()
        return new_user_vote


def vote_answer(user, answer, rate):
    try:
        user_vote = user.vote_set.get(voted_answer=answer)
    except Vote.DoesNotExist:
        new_user_vote = Vote(voted_answer=answer, user=user)
        new_user_vote.set_rate(rate)
        new_user_vote.save()
        return new_user_vote

    if user_vote.rate == rate:
        user_vote.delete()
        return None
    else:
        user_vote.set_rate(rate)
        user_vote.save()
        return user_vote


User.add_to_class('vote_question', vote_question)
User.add_to_class('vote_answer', vote_answer)
Example #40
0
# -*- coding: utf-8 -*-
from __future__ import unicode_literals



from django.contrib.auth.models import User
from django.db import models
from django.utils import timezone

User.add_to_class('mobile_no', models.CharField(max_length=13, default=None, blank=False, unique=True))
User.add_to_class('qualification', models.CharField(max_length=400, default=None))
User.add_to_class('address', models.TextField(max_length=500, blank=True))
User.add_to_class('mobile_verified', models.BooleanField(default=False))
User.add_to_class('finalized', models.BooleanField(default=False))
User.add_to_class('profile_pic',  models.CharField(max_length=400, default="/BeingMomin/media/images/profiles/default_profile.jpg"))



class locality_mapping(models.Model):
    id = models.AutoField(auto_created=True, primary_key=True)
    user = models.ForeignKey(User)
    locality_key = models.CharField(max_length=400)
    tahsil = models.CharField(max_length=400)
    district = models.CharField(max_length=400)
    state = models.CharField(max_length=400)
    class Meta(object):
        db_table = 'AmbassadorPortal_locality_mapping'

class people(models.Model):
    id = models.AutoField(auto_created=True, primary_key=True)
    name = models.CharField(max_length=300, default="")
Example #41
0
COUNTRIES = product_details.get_regions(settings.LANGUAGE_CODE).items()
COUNTRIES.append(('', '---'))  # Empty choice
SHA1_RE = re.compile('^[a-f0-9]{40}$')


ACTIVATION_EMAIL_SUBJECT = _lazy('Please activate your Firefox Affiliates '
                                 'account')


# Extra User Methods
def has_created_badges(self):
    """Return whether a user has created a badge or not. Bypasses cache."""
    badge_count = BadgeInstance.objects.no_cache().filter(user=self).count()
    return badge_count > 0
User.add_to_class('has_created_badges', has_created_badges)


def get_linked_account(self):
    """
    Return the FacebookUser linked with this account, or None if no account has
    been linked.
    """
    return get_object_or_none(FacebookUser, _account_link__affiliates_user=self,
                              _account_link__is_active=True)
User.add_to_class('get_linked_account', get_linked_account)


@receiver(models.signals.post_save, sender=User)
def add_default_permissions(sender, **kwargs):
    """Add default set of permissions to users when they are first created."""
Example #42
0
from django.db import models
from django.conf import settings
from django.contrib.auth.models import User


class Profile(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL)   # AUTH_USER_MODEL = 'auth.User'
    date_of_birth = models.DateField(blank=True, null=True)
    photo = models.ImageField(upload_to='users/%Y/%m/%d', blank=True)

    def __str__(self):
        return 'Profile for user {}'.format(self.user.username)

class Contact(models.Model):
    user_from = models.ForeignKey(User, related_name='rel_from_set')
    user_to = models.ForeignKey(User, related_name='rel_to_set')
    created = models.DateTimeField(auto_now_add=True, db_index=True)

    class Meta:
        ordering = ('-created',)
    def __str__(self):
        return '{} follows {}'.format(self.user_from, self.user_to)

# 给User模型动态增加一个字段 following:我关注了哪些人。 followers:哪些人关注了我
User.add_to_class('following', models.ManyToManyField('self',   # 这里是填另一个模型的名称,因为例子是用户与用户的关系,因此用self即可
                                                      through=Contact,
                                                      related_name='followers',
                                                      symmetrical=False))   # 非对称:“甲关注乙,乙不会自动关注甲”
Example #43
0
from django.db import models
from django.contrib.auth.models import User

#Agregamos dos campos mas al modelo User que viene por defecto en Django.
User.add_to_class('direccion', models.CharField(null=True,blank=True, max_length=500))
User.add_to_class('telefono', models.PositiveIntegerField(null=True,blank=True))
User.add_to_class('estado_login',models.BooleanField(default=False))


class PerfilUsuario(models.Model):
	TIPO=(
			('operario','operario'),
			('supervisor','supervisor'),
		)
	tipo = models.CharField(max_length=20,choices=TIPO)
	fecha_registro = models.DateField(auto_now=True) 
	fecha_caducidad = models.DateField() 
	estado = models.BooleanField()
	online = models.BooleanField()

	usuario =models.ForeignKey(User)

	def __unicode__(self):
		return '%s y %s' %(self.usuario,self.tipo)
Example #44
0
def patch_user_class():
    """access biz_type, introduced_by and postcode through prefixing 'md_' e.g user.md_biz_type.
    """
    from apps.plus_groups.models import TgGroup, User_Group
    User._meta.db_table = 'tg_user'
    # Patching the User class
    User.add_to_class('__getattr__', __getattr__)
    User.add_to_class('__setattr__', __setattr__)

    # EXPERIMENT ... make username alias of user_name
    User.add_to_class('user_name', UserNameField(unique=True, max_length=255))
    #User.add_to_class('user_name',models.CharField(max_length=255,unique=True))
    #del User.username
    #User.add_to_class('username',AliasOf('user_name'))
    # EXPERIMENT END

    User.add_to_class('email_address',
                      models.CharField(max_length=255, unique=True))

    #remove the existing django groups relation
    gr = User._meta.get_field('groups')
    User._meta.local_many_to_many.remove(gr)
    del User.groups
    # add ours new relation for groups
    User.add_to_class(
        'groups',
        models.ManyToManyField(TgGroup,
                               through=User_Group,
                               related_name='users'))

    User.add_to_class('description', models.TextField())
    User.add_to_class('organisation', models.CharField(max_length=255))
    User.add_to_class('title', models.CharField(max_length=255, null=True))
    User.add_to_class('mobile', models.CharField(max_length=30))
    User.add_to_class('work', models.CharField(max_length=30))
    User.add_to_class('home', models.CharField(max_length=30))
    User.add_to_class('fax', models.CharField(max_length=30))
    User.add_to_class('place', models.CharField(max_length=150, null=True))

    User.add_to_class('created',
                      models.DateTimeField(default=datetime.datetime.now))
    User.add_to_class('email2', models.CharField(max_length=255))
    User.add_to_class('email3', models.CharField(max_length=255))
    User.add_to_class('skype_id', models.TextField())
    User.add_to_class('sip_id', models.TextField())
    User.add_to_class('website', models.TextField())
    User.add_to_class('homeplace', models.ForeignKey(Location, null=True))
    User.add_to_class('address', models.TextField())
    User.add_to_class('country',
                      models.CharField(null=True, default="", max_length=2))

    User.add_to_class(
        'homehub', models.ForeignKey("plus_groups.TgGroup", null=True)
    )  # we need this for PSN, XXX need to decide how to make it compatible with hubspace for hub+

    User.add_to_class('psn_id', models.CharField(max_length=50, null=True))
    User.add_to_class(
        'psn_password_hmac_key', models.CharField(max_length=50, null=True)
    )  #this is just for the bizare hmacing of psn passwords by a field formly known as "fullname"

    User.add_to_class('cc_messages_to_email', models.BooleanField(
        default=False))  # internal messages get reflected to email

    User.add_to_class('has_avatar', models.BooleanField(default=False))

    User.email = AliasOf('email_address')
    if settings.PROJECT_THEME == 'plus':
        User.post_or_zip = AliasOf('md_postcode')
        User.add_to_class(
            'public_field', models.SmallIntegerField(null=True)
        )  # this will be phased out as it is redundant with the new permissions system
    else:
        User.add_to_class(
            'post_or_zip',
            models.CharField(null=True, default="", max_length=30))

    User.is_active = AliasOf(
        'active'
    )  # This takes precedence over the existing is_active field in django.contrib.auth.models
    User.add_to_class(
        'active', models.SmallIntegerField(null=True)
    )  # not currently shown, however setting this to 0 will stop the user logging in

    #User.add_to_class('image', models.CharField(null=True, default="", max_length= XXXX)

    User.set_password = set_password
    User.check_password = check_password
    User.is_member_of = is_member_of
    User.is_direct_member_of = is_direct_member_of
    User.get_enclosures = get_enclosures
    User.get_enclosure_set = get_enclosure_set
    User.is_group = lambda (self): False
    User.is_user = lambda (self): True

    User.save = user_save
    User.post_save = post_save

    User.is_admin_of = lambda self, group: self.is_member_of(group.
                                                             get_admin_group())

    def is_site_admin(self):
        from apps.plus_permissions.default_agents import get_all_members_group
        return self.is_admin_of(get_all_members_group())

    User.is_site_admin = is_site_admin

    def send_tweet(self, msg):
        from apps.microblogging.models import send_tweet
        return send_tweet(self, msg)

    User.send_tweet = send_tweet

    def message(self, sender, subject, body, message_extra=""):

        if not self.active:
            return  # don't send messages to inactive members

        from messages.models import Message
        from django.core.mail import send_mail
        from django.core.urlresolvers import reverse
        from django.utils.translation import ugettext_lazy as _, ugettext

        m = Message(subject=subject, body=body, sender=sender, recipient=self)
        m.save()

        if self.cc_messages_to_email:
            # recipient wants emails cc-ed
            link = 'http://' + settings.DOMAIN_NAME + reverse('messages_all')
            settings_link = 'http://' + settings.DOMAIN_NAME + reverse(
                'acct_settings')
            main = _(""" 
%(sender)s has sent you a new message on %(account_name)s .

---------------------------------------------------------------

%(body)s

---------------------------------------------------------------


Click %(link)s to see your account.

If you do not want to receive emails when you receive messages on %(account_name)s, please change your settings here : %(settings_link)s

%(message_extra)s

""") % {
                'account_name': settings.SITE_NAME,
                'body': body,
                'link': link,
                'sender': sender.get_display_name(),
                'settings_link': settings_link,
                "message_extra": message_extra
            }

            self.email_user(subject, main, settings.SERVER_EMAIL)

        return m

    User.message = message

    def group_invite_message(self,
                             group,
                             invited_by,
                             accept_url,
                             special_message=''):

        self.message(
            invited_by,
            Template(settings.GROUP_INVITE_SUBJECT_TEMPLATE).render(
                Context({'group_name': group.get_display_name()})),
            Template(settings.GROUP_INVITE_TEMPLATE).render(
                Context({
                    'first_name': self.first_name,
                    'last_name': self.last_name,
                    'sponsor': invited_by.get_display_name(),
                    'group_name': group.get_display_name(),
                    'site_name': settings.SITE_NAME,
                    'special_message': special_message,
                    'signup_link': accept_url,
                })) + """
%s""" % accept_url)

    User.group_invite_message = group_invite_message

    User.hubs = lambda self: self.groups.filter(
        group_type=settings.GROUP_HUB_TYPE, level='member')

    User.change_avatar = lambda self: True

    def is_following(self, other_user):
        from apps.microblogging.models import Following
        return Following.objects.is_following(self, other_user)

    User.is_following = is_following

    def is_followed_by(self, other_user):
        from apps.microblogging.models import Following
        return Following.objects.is_following(other_user, self)

    User.is_followed_by = is_followed_by

    AnonymousUser.is_member_of = lambda *args, **kwargs: False
    AnonymousUser.is_direct_member_of = lambda *args, **kwarg: False
Example #45
0
    logo = models.ImageField(upload_to='media/logos', null=True, blank=True)
    web = models.URLField(max_length=25, null=True, blank=True)
    email = models.EmailField(max_length=25, null=True, blank=True)

    class Meta:
        verbose_name_plural = "sucursales"


class Bodega(Entidad):
    sucursal = models.ForeignKey(Sucursal, null=True)

    class Meta:
        ordering = ['name', ]


User.add_to_class('sucursal', models.ForeignKey(Sucursal, null=True))


class Marca(Entidad):
    pass


class Categoria(Entidad):
    pass


class Producto(Entidad):
    no_parte = models.CharField(max_length=25, null=True, blank=True,
    verbose_name="numero de parte")
    medida = models.CharField(max_length=25, null=True, blank=True)
    modelo = models.CharField(max_length=60, null=True, blank=True)
import logging

stdlogger = logging.getLogger(__name__)
dbalogger = logging.getLogger('dba')


def log_create(obj):
    dbalogger.info('{} was created: {}'.format(obj.__class__.__name__,
                                               obj.__str__()))


def get_user_info(self):
    return self.first_name + ' ' + self.last_name + ' (username='******')'


User.add_to_class("__str__", get_user_info)


# Singleton class
class SingletonModel(models.Model):
    class Meta:
        abstract = True

    def set_cache(self):
        cache.set(self.__class__.__name__, self)

    def save(self, *args, **kwargs):
        self.pk = 1
        super(SingletonModel, self).save(*args, **kwargs)
        self.set_cache()
Example #47
0
POLARITY_CHOICES = (
    (u"NNE", u"very negative"),
    (u"NEG", u"negative"),
    (u"NEU", u"neuter"),
    (u"POS", u"positive"),
    (u"PPO", u"very positive"),
)

POS_CHOICES = ((u"NP", u"Noun phrase"), (u"?", u"not defined"))

# user json function
def user_json(user):
    return {"id": user.id, "username": user.username}


User.add_to_class("json", user_json)


# Create your models here.
# from many database to just one. just a test.
class Corpus(models.Model):
    # the corpus of document. A user may have a lot of corpora
    name = models.CharField(max_length=32, unique=True)
    owner = models.ManyToManyField(User, through="Owners", null=True, blank=True)

    def __unicode__(self):
        return self.name

    def json(self):
        return {"id": self.id, "name": self.name}
Example #48
0
:atrb: phone                 Nurse's phone number
:atrb: email                 Nurse's e-mail address
"""
def user_data(self):
    if hasattr(self, 'patient'): return self.patient
    if hasattr(self, 'doctor'): return self.doctor
    if hasattr(self,'nurse'): return self.nurse
    else:return "invalid_user"

def user_type(self):
    if hasattr(self, 'patient'): return 'patient'
    if hasattr(self, 'doctor'): return 'doctor'
    if hasattr(self,'nurse'): return 'nurse'
    else: return "invalid_user"

User.add_to_class('user_data',user_data)
User.add_to_class('user_type',user_type)

class Nurse(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, default=None)
    username = models.CharField(max_length=50, default="")
    first_name = models.CharField(max_length=50, default='')
    last_name = models.CharField(max_length=50, default='')
    email    = models.CharField (max_length = 100, default = '')
    phone    = models.CharField (max_length = 10 , default = '')
    hospital = models.ForeignKey(Hospital,on_delete = models.CASCADE, default = None)

    def createNurse(user_form,nurse_form,user):
        credential = User.objects.create_user(
            username = user_form['username'],
            email = user_form['email'],
Example #49
0
from django.contrib.auth.models import User


# User class extensions
def user_unicode(self):
    """Use email address for string representation of user."""
    return self.email
User.add_to_class('__unicode__', user_unicode)
Example #50
0
        if not nickname:
            return ""
        first_letter_str = pypinyin.lazy_pinyin(self.get_nickname(),
                                                pypinyin.FIRST_LETTER)[0]
        first_letter = first_letter_str[0]
        if not first_letter.isalpha():
            return "#"
        return first_letter

    def __str__(self):
        return "uid: %s" % self.user_id


class CoachMemberRef(models.Model):
    member = models.ForeignKey(Member)
    coach = models.ForeignKey(Coach)
    primary = models.BooleanField("主教练", default=False)

    class Meta:
        db_table = "member_coach"
        unique_together = ("member", "coach")
        verbose_name = "学员教练关联"
        verbose_name_plural = "学员教练关联"


def get_str_render(self):
    return "%s-%s" % (self.id, self.username)


User.add_to_class("__str__", get_str_render)
Example #51
0
from django.db import models
from django.contrib.auth.models import User

from ..ak import instrument_choices

from django.utils.translation import ugettext_lazy as _

User.__unicode__ = lambda self: u"%s %s" % (self.first_name, self.last_name)
next(field for field in User._meta.fields if field.name == "first_name").blank = False
next(field for field in User._meta.fields if field.name == "last_name").blank = False
next(field for field in User._meta.fields if field.name == "email").blank = False
User.add_to_class("address", models.CharField(_("address"), max_length=128, blank=True, null=True))
User.add_to_class("zip", models.CharField(_("zip"), max_length=5, blank=True, null=True))
User.add_to_class("city", models.CharField(_("city"), max_length=128, blank=True, null=True))
User.add_to_class("phone", models.CharField(_("phone"), max_length=16, blank=True, null=True))
User.add_to_class("second_phone", models.CharField(_("second phone"), max_length=16, blank=True, null=True))
User.add_to_class("nation", models.CharField(_("nation"), max_length=128, blank=True, null=True))
User.add_to_class("instrument", models.CharField(_("instrument"), max_length=2, choices=instrument_choices))
User.add_to_class("has_key", models.BooleanField(_("has key"), default=False))
User.add_to_class("medals_earned", models.IntegerField(_("medals earned"), default=0))
User.add_to_class("medals_awarded", models.IntegerField(_("medals awarded"), default=0))
Example #52
0
from django.db import models
from django.urls import reverse
from django.contrib.auth.models import User
from pmanager.models import Leaders
from datetime import datetime


def get_first_name(self):
    return self.first_name


User.add_to_class("__str__", get_first_name)


#ForeignKey(User, null=True, on_delete=models.SET_NULL)
class Initi(models.Model):
    mub_name = models.CharField(max_length=250)
    leader = models.ForeignKey(User, models.SET_NULL, blank=True, null=True)

    def get_absolute_url(self):
        return reverse('initiatives:reports', kwargs={'pk': self.pk})

    def __str__(self):
        return self.mub_name


class Goals(models.Model):
    goal = models.CharField(max_length=500)
    mub = models.ForeignKey(Initi, on_delete=models.CASCADE)

    def __str__(self):
Example #53
0
    def __cmp__(self, other):
        return cmp(self.name, other.name)





def create_user_profile(sender, instance, created, **kwargs):
    if created:
        UserProfile.objects.create(user=instance)

post_save.connect(create_user_profile, sender=User)


@classmethod
def user_create(cls, **kwargs):
    user = User()
    for k, v in kwargs.iteritems():
        if k == 'password':
            user.set_password(v)
        else:
            setattr(user, k, v)
    user.save()
    for k, v in kwargs.iteritems():
        setattr(user.profile, k, v)
    user.profile.save()
    return user


User.add_to_class('create', user_create)
Example #54
0
    brand_logo_img = models.ImageField(upload_to='config_images',
                                       null=True,
                                       blank=True)
    header_background_img = models.ImageField(upload_to='config_images',
                                              null=True,
                                              blank=True)
    log_in_img = models.ImageField(upload_to='config_images',
                                   null=True,
                                   blank=True)
    sign_up_img = models.ImageField(upload_to='config_images',
                                    null=True,
                                    blank=True)
    change_password_img = models.ImageField(upload_to='config_images',
                                            null=True,
                                            blank=True)
    reset_password_img = models.ImageField(upload_to='config_images',
                                           null=True,
                                           blank=True)

    successful_sign_up_msg = models.TextField(
        default='Thank you for signing up!')

    acceptable_use_policy = models.TextField()


def get_full_name(self):
    return self.first_name + " " + self.last_name


User.add_to_class("__str__", get_full_name)
Example #55
0
class UserProfile(models.Model):
    """A user profile."""
    user = models.OneToOneField(User)
    twitter = models.CharField(u'Twitter Benutzername', max_length=24, blank=True)
    flattr = models.CharField(u'Flattr Benutzername', max_length=128, blank=True,
            help_text=mark_safe(u'Falls angegeben, wird bei deinen \
            Zusammenfassungen jeweils ein \
            <a href="https://flattr.com/">Flattr</a> Button angezeigt.'))

    def __unicode__(self):
        return u'Profile for %s' % self.user.username


User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])


def name(self):
    """Return either full user first and last name or the username, if no
    further data is found."""
    if self.first_name or self.last_name:
        return ' '.join(filter(None, [self.first_name, self.last_name]))
    return self.username
User.add_to_class('name', name)


def create_user_profile(sender, instance, created, **kwargs):
    if created:
        UserProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User)
Example #56
0
    books = Book.objects.filter(quote__user=self).annotate(
        updated_at=Max('quote__updated_at')).order_by('-updated_at')
    return books


def get_user_profile_picture_url(user):
    if user.is_authenticated():
        profile_picture_url = "https://graph.facebook.com/{0}/picture".format(
            user.social_auth.get().uid)
    else:
        profile_picture_url = ""

    return profile_picture_url


User.add_to_class("recent_books", recent_books)


class Quote(models.Model):
    quotation = models.TextField(max_length=1000)
    photo = models.ImageField(upload_to='bookshot')

    user = models.ForeignKey(User)
    book = models.ForeignKey('Book', null=True, blank=True, default=None)

    created_at = models.DateTimeField(null=True, default=None)
    updated_at = models.DateTimeField(null=True, default=None)

    def read_text_from_image(self, crop_rect, cropped_filepath=None):
        if not cropped_filepath:
            ts = int(timezone.now().timestamp())
Example #57
0
from django.db import models
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from django.utils.translation import ugettext_lazy as _

from taggit.managers import TaggableManager

import actstream.models
from actstream import actions

User.add_to_class('following', lambda self: actstream.models.following(self)[::-1])
User.add_to_class('followers', lambda self: actstream.models.followers(self)[::-1])
User.add_to_class('action_list', lambda self: actstream.models.actor_stream(self))

@property
def created_at(self):
    return self.date_joined
User.add_to_class('created_at', created_at)

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    realname = models.CharField(null=True, max_length=20, verbose_name=_("name"), help_text=_("how you want your name on RedPanal?") )
    about = models.TextField(blank=True, null=True, verbose_name=_("about"), help_text=_("something about you"))
    website = models.URLField(blank=True, null=True, verbose_name=_("website"), help_text=_("your website"))
    location = models.CharField(blank=True, null=True, max_length=50, verbose_name=_("location"), help_text=_("where do you live"))
    tags = TaggableManager(blank=True)

    def get_absolute_url(self):
        return self.user.get_absolute_url()

    def __unicode__(self):
Example #58
0
    photo = models.ImageField(upload_to='users/%Y/%m/%d', blank=True)

    def __str__(self):
        return 'Profile for user {}'.format(self.user.first_name)


class Contact(models.Model):
    user_from = models.ForeignKey('auth.User',
                                  related_name='rel_from_set',
                                  on_delete=models.CASCADE)

    user_to = models.ForeignKey('auth.User',
                                related_name='rel_to_set',
                                on_delete=models.CASCADE)

    created = models.DateTimeField(auto_now_add=True, db_index=True)

    class Meta:
        ordering = ('-created', )

    def __str__(self):
        return '{} follows {}'.format(self.user_from, self.user_to)


User.add_to_class(
    'following',
    models.ManyToManyField('self',
                           through=Contact,
                           related_name='followers',
                           symmetrical=False))
Example #59
0
# Create your models here.
from django.conf import settings
from django.contrib.auth.models import User


class Profile(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL)
    date_of_birth = models.DateField(blank=True,null=True)
    photo = models.ImageField(upload_to='users/%Y/%m/%d',blank=True)

    def __str__(self):
        return 'Profile for user {}'.format(self.user.username)


class Contact(models.Model):
    user_from = models.ForeignKey(User, related_name='rel_from_set')
    user_to = models.ForeignKey(User, related_name='rel_to_set')
    created = models.DateTimeField(auto_now_add=True, db_index=True)

    class Meta:
        ordering = ('-created',)

    def __str__(self):
        return '{} follows {}'.format(self.user_from, self.user_to)
    

User.add_to_class('following',
                  models.ManyToManyField('self',
                                         through=Contact,
                                         related_name='followers',
                                         symmetrical=False))
Example #60
0
    except:
        response = {
            'success': False,
            'error_message': f'User with email {email} does not exist :('
        }
        raise InvalidUserException(response, status_code=status_codes.HTTP_400_BAD_REQUEST)


def get_user_by_email_or_none(email):
    try:
        return User.objects.get(email=email)
    except:
        return None


User.add_to_class("get_user_or_raise_exception", get_user_or_raise_exception)
User.add_to_class("get_user_or_none", get_user_or_none)
User.add_to_class("get_user_by_email_or_raise_exception", get_user_by_email_or_raise_exception)
User.add_to_class("get_user_by_email_or_none", get_user_by_email_or_none)


class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    address = models.TextField(blank=True)
    phone_no = models.BigIntegerField(null=False,
                                      validators=[
                                          validate_phone_no
                                      ])
    city = models.CharField(max_length=100, blank=True)
    state = models.CharField(max_length=100, blank=True)
    country = models.CharField(max_length=100, blank=True)