示例#1
0
def get_documentlist_js(request):
    response = {}
    status = 405
    if request.is_ajax() and request.method == 'POST':
        status = 200
        response['documents'] = documents_list(request)
        response['team_members'] = []
        for team_member in request.user.leader.all():
            tm_object = {}
            tm_object['id'] = team_member.member.id
            tm_object['name'] = team_member.member.readable_name
            tm_object['username'] = team_member.member.get_username()
            tm_object['avatar'] = avatar_url(team_member.member, 80)
            response['team_members'].append(tm_object)
        serializer = PythonWithURLSerializer()
        export_temps = serializer.serialize(ExportTemplate.objects.all())
        response['export_templates'] = [obj['fields'] for obj in export_temps]
        cit_styles = serializer.serialize(CitationStyle.objects.all())
        response['citation_styles'] = [obj['fields'] for obj in cit_styles]
        cit_locales = serializer.serialize(CitationLocale.objects.all())
        response['citation_locales'] = [obj['fields'] for obj in cit_locales]
        response['user'] = {}
        response['user']['id'] = request.user.id
        response['user']['name'] = request.user.readable_name
        response['user']['username'] = request.user.get_username()
        response['user']['avatar'] = avatar_url(request.user, 80)
        response['access_rights'] = get_accessrights(
            AccessRight.objects.filter(document__owner=request.user))
    return JsonResponse(response, status=status)
示例#2
0
 def get_document(self):
     response = dict()
     response['type'] = 'document_data'
     response['document'] = dict()
     response['document']['id']=self.document.id
     response['document']['title']=self.document.title
     response['document']['contents']=self.document.contents
     response['document']['metadata']=self.document.metadata
     response['document']['settings']=self.document.settings
     response['document']['access_rights'] = get_accessrights(AccessRight.objects.filter(document__owner=self.document.owner))
     response['document']['owner'] = dict()
     response['document']['owner']['id']=self.document.owner.id
     response['document']['owner']['name']=self.document.owner.readable_name
     response['document']['owner']['avatar']=avatar_url(self.document.owner,80)            
     response['document']['owner']['team_members']=[]
     for team_member in self.document.owner.leader.all():
         tm_object = dict()
         tm_object['id'] = team_member.member.id
         tm_object['name'] = team_member.member.readable_name
         tm_object['avatar'] = avatar_url(team_member.member,80)
         response['document']['owner']['team_members'].append(tm_object)
     response['document_values'] = dict()    
     response['document_values']['is_owner']=self.is_owner
     response['document_values']['rights'] = self.access_rights
     if self.is_new:
         response['document_values']['is_new'] = True
     if not self.is_owner:
         response['user']=dict()
         response['user']['id']=self.user.id
         response['user']['name']=self.user.readable_name
         response['user']['avatar']=avatar_url(self.user,80)
     if self.in_control:
         response['document_values']['control']=True
     response['document_values']['session_id']= self.id
     self.write_message(response)
示例#3
0
def index(request):
    user = request.user
    visit_num = UList.objects.count() + 1
    ip, is_routable = get_client_ip(request)
    try:
        data = str(datetime.datetime.now()) + ', ip:' + str(
            ip) + f', server_name: {request.META["SERVER_NAME"]}'
    except:
        data = str(datetime.datetime.now())
    if request.user.is_authenticated:
        visit = UList(visitor=user,
                      user=user,
                      data=data,
                      image=str(avatar_url(user)))
    else:
        visit = UList(
            visitor=user,
            data=data,
            image=
            'https://www.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e/?s=80'
        )
    visit.save()

    # update avatars for auth user for old visits
    if request.user.is_authenticated:
        for obj in UList.objects.filter(user=user).exclude(
                image=str(avatar_url(user))):
            obj.image = str(avatar_url(user))
            obj.save()

    obj = UList.objects.all()
    return render(request, "index.html", {"UList": obj, "counter": visit_num})
示例#4
0
 def test_gravatar_backup_setting(self):
     avatar_tags.AVATAR_GRAVATAR_BACKUP = False
     url = avatar_tags.avatar_url(self.user)
     self.assertEquals(settings.AVATAR_DEFAULT_URL, url)
     avatar_tags.AVATAR_GRAVATAR_BACKUP = True
     url = avatar_tags.avatar_url(self.user)
     self.assertTrue(url.startswith("http://www.gravatar.com/"))
示例#5
0
def has_avatar(user, size=88):
    """
    Used to pull the avatar from a user profile. If an image has not been set
    no image will be returned.

    Usage::

        {% has_avatar model.user [size] %}

    Be sure to attach .user to an object that  contains a user relationship. 
    Example::

    {% for officer in officers %}
        {% has_avatar officer.user 64 %}
    {% endfor %}

    This will return an avatar image that is 64x64 pixels.

    Note: This uses the 'django-avatar' package: https://github.com/jezdez/django-avatar
    """
    if not isinstance(user, User):
        try:
            user = User.objects.get(username=user)
            alt = unicode(user)
            url = avatar_url(user, size)
        except User.DoesNotExist:
            url = AVATAR_DEFAULT_URL
            alt = _("Default Avatar")
    else:
        alt = unicode(user)
        url = avatar_url(user, size)
    if url == AVATAR_DEFAULT_URL:
        return ""
    return """<img src="%s" alt="%s" width="%s" height="%s" />""" % (url, alt,
        size, size)
示例#6
0
def has_avatar(user, size=88):
    """
    Used to pull the avatar from a user profile. If an image has not been set
    no image will be returned.

    Usage::

        {% has_avatar model.user [size] %}

    Be sure to attach .user to an object that  contains a user relationship. 
    Example::

    {% for officer in officers %}
        {% has_avatar officer.user 64 %}
    {% endfor %}

    This will return an avatar image that is 64x64 pixels.

    Note: This uses the 'django-avatar' package: https://github.com/jezdez/django-avatar
    """
    if not isinstance(user, User):
        try:
            user = User.objects.get(username=user)
            alt = unicode(user)
            url = avatar_url(user, size)
        except User.DoesNotExist:
            url = AVATAR_DEFAULT_URL
            alt = _("Default Avatar")
    else:
        alt = unicode(user)
        url = avatar_url(user, size)
    if url == AVATAR_DEFAULT_URL:
        return ""
    return """<img src="%s" alt="%s" width="%s" height="%s" />""" % (url, alt, size, size)
示例#7
0
def get_booklist_js(request):
    response = {}
    status = 405
    if request.is_ajax() and request.method == "POST":
        status = 200
        response["documents"] = documents_list(request)
        books = Book.objects.filter(Q(owner=request.user) | Q(bookaccessright__user=request.user)).order_by("-updated")
        response["books"] = []
        for book in books:
            access_right = (
                "w" if book.owner == request.user else BookAccessRight.objects.get(user=request.user, book=book).rights
            )
            date_format = "%d/%m/%Y"
            date_obj = dateutil.parser.parse(str(book.added))
            added = date_obj.strftime(date_format)
            date_obj = dateutil.parser.parse(str(book.updated))
            updated = date_obj.strftime(date_format)
            is_owner = False
            if book.owner == request.user:
                is_owner = True
            chapters = []
            for chapter in book.chapter_set.all():
                chapters.append(
                    {
                        "text": chapter.text_id,
                        "number": chapter.number,
                        "part": chapter.part,
                        "title": chapter.text.title,
                    }
                )
            book_data = {
                "id": book.id,
                "title": book.title,
                "is_owner": is_owner,
                "owner": book.owner.id,
                "owner_name": book.owner.readable_name,
                "owner_avatar": avatar_url(book.owner, 80),
                "added": added,
                "updated": updated,
                "rights": access_right,
                "chapters": chapters,
                "metadata": book.metadata,
                "settings": book.settings,
            }
            if book.cover_image:
                book_data["cover_image"] = book.cover_image.id
            response["books"].append(book_data)
        response["team_members"] = []
        for team_member in request.user.leader.all():
            tm_object = {}
            tm_object["id"] = team_member.member.id
            tm_object["name"] = team_member.member.readable_name
            tm_object["avatar"] = avatar_url(team_member.member, 80)
            response["team_members"].append(tm_object)
        response["user"] = {}
        response["user"]["id"] = request.user.id
        response["user"]["name"] = request.user.readable_name
        response["user"]["avatar"] = avatar_url(request.user, 80)
        response["access_rights"] = get_accessrights(BookAccessRight.objects.filter(book__owner=request.user))
    return HttpResponse(simplejson.dumps(response), content_type="application/json; charset=utf8", status=status)
示例#8
0
文件: feeds.py 项目: lmorchard/badger
    def add_item_elements(self, handler, item):
        """Inject Activity Stream elements into an item"""

        handler.addQuickElement('published', item['pubdate'].isoformat())
        item['pubdate'] = None

        # Author information.
        if item['author_name'] is not None:
            handler.startElement(u"author", {})
            handler.addQuickElement(u"activity:object-type", 
                'http://activitystrea.ms/schema/1.0/person')
            handler.addQuickElement(u"name", item['author_name'])
            if item['author_email'] is not None:
                handler.addQuickElement(u"email", item['author_email'])
            if item['author_link'] is not None:
                handler.addQuickElement(u"uri", item['author_link'])
            handler.addQuickElement(u"id", 
                get_tag_uri(item['author_link'], item['pubdate']))
            handler.addQuickElement(u"link", u"", {
                'type': 'text/html', 'rel':'alternate',
                'href': item['author_link']
            })
            handler.addQuickElement(u"link", u"", {
                'type': 'image/jpeg', 'rel':'photo',
                'media:width': '64', 'media:height': '64',
                'href': self.feed['request'].build_absolute_uri(
                    avatar_url(item['obj'].claimed_by, 64)),
            })
            avatar_href = avatar_url(item['obj'].claimed_by, 64)
            if avatar_href.startswith('/'):
                avatar_href = self.feed['request'].build_absolute_uri(avatar_href)
            handler.addQuickElement(u"link", u"", {
                'type': 'image/jpeg', 'rel':'preview',
                'media:width': '64', 'media:height': '64',
                'href': avatar_href,
            })
            handler.endElement(u"author")
        item['author_name'] = None

        handler.addQuickElement('activity:verb', item['activity']['verb'])

        a_object = item['activity']['object']
        handler.startElement(u"activity:object", {})
        handler.addQuickElement(u"activity:object-type", a_object['object-type'])
        handler.addQuickElement(u"title", a_object['name'])
        handler.addQuickElement(u"id", get_tag_uri(a_object['link'], 
                item['pubdate']))
        handler.addQuickElement(u"link", '', {
            'href': a_object['link'], 'rel':'alternate', 'type':'text/html'
        })
        handler.addQuickElement(u"link", u"", {
            'type': 'image/jpeg', 'rel':'preview',
            'media:width':  a_object['preview']['width'],
            'media:height': a_object['preview']['height'],
            'href': a_object['preview']['href'],
        })
        handler.endElement(u"activity:object")

        super(ActivityStreamAtomFeedGenerator, self).add_item_elements(handler, item)
示例#9
0
def get_booklist_js(request):
    response={}
    status = 405
    if request.is_ajax() and request.method == 'POST':
        status = 200
        response['documents'] = documents_list(request)
        books = Book.objects.filter(Q(owner=request.user) | Q(bookaccessright__user=request.user)).order_by('-updated')
        response['books']=[]
        for book in books :
            access_right = 'w' if book.owner == request.user else BookAccessRight.objects.get(user=request.user,book=book).rights
            date_format = '%d/%m/%Y'
            date_obj = dateutil.parser.parse(str(book.added))
            added = date_obj.strftime(date_format)
            date_obj = dateutil.parser.parse(str(book.updated))
            updated = date_obj.strftime(date_format)
            is_owner = False
            if book.owner == request.user:
                is_owner = True
            chapters = []
            for chapter in book.chapter_set.all():
                chapters.append({'text': chapter.text_id, 'number': chapter.number, 'part': chapter.part, 'title': chapter.text.title})
            book_data = {
                'id': book.id,
                'title': book.title,
                'is_owner': is_owner,
                'owner': book.owner.id,
                'owner_name': book.owner.readable_name,
                'owner_avatar': avatar_url(book.owner,80),
                'added': added,
                'updated': updated,
                'rights': access_right,
                'chapters': chapters,
                'metadata': book.metadata,
                'settings': book.settings
            }
            if book.cover_image:
                book_data['cover_image'] = book.cover_image.id
            response['books'].append(book_data)
        response['team_members']=[]
        for team_member in request.user.leader.all():
            tm_object = {}
            tm_object['id'] = team_member.member.id
            tm_object['name'] = team_member.member.readable_name
            tm_object['avatar'] = avatar_url(team_member.member,80)
            response['team_members'].append(tm_object)
        response['user']={}
        response['user']['id']=request.user.id
        response['user']['name']=request.user.readable_name
        response['user']['avatar']=avatar_url(request.user,80)            
        response['access_rights'] = get_accessrights(BookAccessRight.objects.filter(book__owner=request.user))
    return HttpResponse(
        json.dumps(response),
        content_type = 'application/json; charset=utf8',
        status=status
    )
示例#10
0
def create_profile_index(profile):
    # calculate counts and avatar
    layers_count = get_objects_for_user(
        profile, 'base.view_resourcebase').instance_of(Layer).count()

    maps_count = get_objects_for_user(
        profile, 'base.view_resourcebase').instance_of(Map).count()

    documents_count = get_objects_for_user(
        profile, 'base.view_resourcebase').instance_of(Document).count()

    avatar_100 = avatar_url(profile, 240)

    obj = ProfileIndex(meta={'id': profile.id},
                       id=profile.id,
                       username=profile.username,
                       first_name=profile.first_name,
                       last_name=profile.last_name,
                       profile=profile.profile,
                       organization=profile.organization,
                       position=profile.position,
                       type='user',
                       avatar_100=avatar_100,
                       layers_count=layers_count,
                       maps_count=maps_count,
                       documents_count=documents_count)
    obj.save()
    return obj.to_dict(include_meta=True)
示例#11
0
文件: views.py 项目: shaz/fiduswriter
def documents_list(request):
    documents = Text.objects.filter(
        Q(owner=request.user)
        | Q(accessright__user=request.user)).order_by('-updated')
    output_list = []
    for document in documents:
        access_right = 'w' if document.owner == request.user else AccessRight.objects.get(
            user=request.user, text=document).rights
        date_format = '%d/%m/%Y'
        date_obj = dateutil.parser.parse(str(document.added))
        added = date_obj.strftime(date_format)
        date_obj = dateutil.parser.parse(str(document.updated))
        updated = date_obj.strftime(date_format)
        is_owner = False
        if document.owner == request.user:
            is_owner = True
        output_list.append({
            'id': document.id,
            'title': document.title,
            'is_owner': is_owner,
            'owner': document.owner.id,
            'owner_name': document.owner.readable_name,
            'owner_avatar': avatar_url(document.owner, 80),
            'added': added,
            'updated': updated,
            #'is_locked': document.is_locked(),
            'rights': access_right
        })
    return output_list
示例#12
0
    def dehydrate(self, bundle):
        a = bundle.obj
        if self.get_resource_uri(bundle) == bundle.request.path:
            # it's a detailed request so we add the mks & parties scores
            mks_values = dict(a.get_mks_values())
            members = []
            for mk in Member.objects.filter(pk__in=mks_values.keys()).select_related('current_party'):
                # TODO: this sucks, performance wise
                current_party = mk.current_party
                members.append (dict(name=mk.name,
                        score = mks_values[mk.id]['score'],
                        rank = mks_values[mk.id]['rank'],
                        volume = mks_values[mk.id]['volume'],
                        absolute_url = mk.get_absolute_url(),
                        party = current_party.name,
                        party_url = current_party.get_absolute_url(),
                    ))
            bundle.data['members'] = members
            bundle.data['parties'] = [
                dict(
                    name=x.name, score=a.party_score(x),
                    absolute_url=x.get_absolute_url()
                ) for x in Party.objects.prefetch_related('members')
            ]
            bundle.data['votes'] = [
                dict(title=v.vote.title, id=v.id, importance=v.importance,
                     score=v.score, reasoning=v.reasoning)
                for v in bundle.obj.agendavotes.select_related()
            ]
            bundle.data['editors'] = [
                dict(absolute_url=e.get_absolute_url(), username=e.username,
                     avatar=avatar_url(e, 48))
                for e in bundle.obj.editors.all()]

        return bundle
示例#13
0
def documents_list(request):
    documents = Document.objects.filter(Q(owner=request.user) | Q(accessright__user=request.user)).order_by('-updated')
    output_list=[]
    for document in documents :
        access_right = 'w' if document.owner == request.user else AccessRight.objects.get(user=request.user,document=document).rights
        revisions = DocumentRevision.objects.filter(document=document)
        revision_list = []
        for revision in revisions:
            revision_list.append({
                'date': time.mktime(revision.date.utctimetuple()),
                'note': revision.note,
                'file_name': revision.file_name,
                'pk': revision.pk
            })

        added = time.mktime(document.added.utctimetuple())
        updated = time.mktime(document.updated.utctimetuple())
        is_owner = False
        if document.owner == request.user:
            is_owner = True
        output_list.append({
            'id': document.id,
            'title': document.title,
            'is_owner': is_owner,
            'owner': {
                'id': document.owner.id,
                'name': document.owner.readable_name,
                'avatar': avatar_url(document.owner,80)
            },
            'added': added,
            'updated': updated,
            'rights': access_right,
            'revisions': revision_list
        })
    return output_list
示例#14
0
def documents_list(request):
    documents = Text.objects.filter(Q(owner=request.user) | Q(accessright__user=request.user)).order_by('-updated')
    output_list=[]
    for document in documents :
        access_right = 'w' if document.owner == request.user else AccessRight.objects.get(user=request.user,text=document).rights
        date_format = '%d/%m/%Y'
        date_obj = dateutil.parser.parse(str(document.added))
        added = date_obj.strftime(date_format)
        date_obj = dateutil.parser.parse(str(document.updated))
        updated = date_obj.strftime(date_format)
        is_owner = False
        if document.owner == request.user:
            is_owner = True
        output_list.append({
            'id': document.id,
            'title': document.title,
            'is_owner': is_owner,
            'owner': document.owner.id,
            'owner_name': document.owner.readable_name,
            'owner_avatar': avatar_url(document.owner,80),
            'added': added,
            'updated': updated,
            'is_locked': document.is_locked(),
            'rights': access_right
        })
    return output_list
示例#15
0
def documents_list(request):
    documents = Document.objects.filter(Q(owner=request.user) | Q(accessright__user=request.user)).order_by('-updated')
    output_list=[]
    for document in documents :
        access_right = 'w' if document.owner == request.user else AccessRight.objects.get(user=request.user,document=document).rights
        revisions = DocumentRevision.objects.filter(document=document)
        revision_list = []
        for revision in revisions:
            revision_list.append({
                'date': time.mktime(revision.date.utctimetuple()),
                'note': revision.note,
                'file_name': revision.file_name,
                'pk': revision.pk
            })
        
        added = time.mktime(document.added.utctimetuple())
        updated = time.mktime(document.updated.utctimetuple())
        is_owner = False
        if document.owner == request.user:
            is_owner = True
        output_list.append({
            'id': document.id,
            'title': document.title,
            'is_owner': is_owner,
            'owner': { 
                'id': document.owner.id,
                'name': document.owner.readable_name,
                'avatar': avatar_url(document.owner,80)
            },
            'added': added,
            'updated': updated,
            'rights': access_right,
            'revisions': revision_list
        })
    return output_list
示例#16
0
def avatar(user, size=settings.AVATAR_DEFAULT_SIZE, **kwargs):
    if has_avatar(user):
        # Use assigned avatar
        alt = six.text_type(user)
        url = avatar_url(user, size)
        kwargs.update({'alt': alt})
        context = {
            'user': user,
            'url': url,
            'size': size,
            'kwargs': kwargs,
        }
        return render_to_string('avatar/avatar_tag.html', context)
    else:
        # Dynamically generate an avatar based on the user's initials
        letter = '?'
        if user.first_name:
            letter = user.first_name[0].upper()
            if user.last_name:
                letter += user.last_name[0].upper()
        elif user.username:
            letter = user.username[0].upper()

        colour_ix = int(hashlib.md5(str(user.id).encode()).hexdigest(), 16) % NUM_COLOURS
        context = {'colour_ix': colour_ix, 'letter': letter, 'size': size, 'font_size': (size / 2)}
        return render_to_string('accounts/dynamic_avatar.svg', context)
示例#17
0
def get_avatar_url(comment):
    ret = None
    if comment.user is not None:
        try:
            return avatar_url(comment.user)
        except Exception as exc:
            pass
    return get_user_avatar(comment)
示例#18
0
 def test_gravatar_backup_rating_setting(self):
     avatar_tags.AVATAR_GRAVATAR_BACKUP = True
     avatar_tags.AVATAR_GRAVATAR_BACKUP_RATING = 'x'
     url = avatar_tags.avatar_url(self.user)
     self.assertTrue("r=x" in url)
     
     
     
示例#19
0
文件: user.py 项目: alkhor/mk42
    def avatar(self):
        """
        Return user avatar url.
        
        :return: user avatar url.
        :rtype: unicode.
        """

        return avatar_url(self)
示例#20
0
def avatar_full_url(context, user, size=settings.AVATAR_DEFAULT_SIZE):
    url = avatar_url(user, size)
    if url.startswith("http"):
        return url
    if getattr(context, "request", None):
        return context.request.build_absolute_uri(url)
    ## YAK!!!
    site = Site.objects.get_current()
    return "http://" + site.domain + url
示例#21
0
def profile_post_save(instance, sender, **kwargs):
    """Make sure the user belongs by default to the anonymous group.
    This will make sure that anonymous permissions will be granted to the new users."""
    from django.contrib.auth.models import Group
    anon_group, created = Group.objects.get_or_create(name='anonymous')
    instance.groups.add(anon_group)
    # keep in sync Profile email address with Account email address
    if instance.email not in [u'', '', None] and not kwargs.get('raw', False):
        EmailAddress.objects.filter(user=instance, primary=True).update(email=instance.email)
    Profile.objects.filter(id=instance.id).update(avatar_100=avatar_url(instance, 100))
示例#22
0
文件: views.py 项目: zed0/warwick_gg
def user_to_dict(user):
    """
    Convert a user to a dict for use in the seating front-end
    """
    profile = WarwickGGUser.objects.get(user=user)

    return {
        'nickname': profile.long_name,
        'avatar': avatar_url(user),
        'user_id': user.id
    }
示例#23
0
def get_documentlist_js(request):
    response = {}
    status = 405
    if request.is_ajax() and request.method == 'POST':
        status = 200
        response['documents'] = documents_list(request)
        response['team_members'] = []
        for team_member in request.user.leader.all():
            tm_object = {}
            tm_object['id'] = team_member.member.id
            tm_object['name'] = team_member.member.readable_name
            tm_object['avatar'] = avatar_url(team_member.member, 80)
            response['team_members'].append(tm_object)
        response['user'] = {}
        response['user']['id'] = request.user.id
        response['user']['name'] = request.user.readable_name
        response['user']['avatar'] = avatar_url(request.user, 80)
        response['access_rights'] = get_accessrights(
            AccessRight.objects.filter(document__owner=request.user))
    return JsonResponse(response, status=status)
示例#24
0
def user_avatar(user, size=avatar_settings.AVATAR_DEFAULT_SIZE, **kwargs):
    if not isinstance(user, get_user_model()):
        try:
            user = get_user(user)
            alt = six.text_type(user)
            url = avatar_url(user, size)
        except get_user_model().DoesNotExist:
            url = get_default_avatar_url()
            alt = _("Default Avatar")
    else:
        alt = six.text_type(user)
        url = avatar_url(user, size)
    context = dict(kwargs, **{
        'user': user,
        'url': url,
        'alt': alt,
        'size': size,
    })
    ret = jinja_env.get_template('avatar/avatar_tag.html').render(**context)
    return jinja2.Markup(ret)
示例#25
0
 def open(self, document_id):
     print 'Websocket opened - redis'
     self.user = self.get_current_user()
     if int(document_id) == 0:
         can_access = True
         self.is_owner = True
         self.access_rights = 'w'
         self.is_new = True
         self.document = Document.objects.create(owner_id=self.user.id)
     else:
         self.is_new = False
         document = Document.objects.filter(id=int(document_id))
         if len(document) > 0:
             document = document[0]
             self.document = document
             if self.document.owner == self.user:
                 self.access_rights = 'w'
                 self.is_owner = True
                 can_access = True
             else:
                 self.is_owner = False
                 access_rights = AccessRight.objects.filter(document=self.document, user=self.user)
                 if len(access_rights) > 0:
                     self.access_rights = access_rights[0].rights
                     can_access = True
                 else:
                     can_access = False
         else:
             can_access = False
     if can_access:
         self.channel = str(self.document.id)
         self.listen_to_redis()
         response = dict()
         response['type'] = 'welcome'
         self.write_message(response)
         if self.pubsub_numsub(self.channel)==1:
             participants = None
         else:
             participants = self.get_storage_object('participants_'+str(self.channel))
         if participants == None or len(participants.keys()) == 0:
             participants = {}
             self.id = 0
             self.in_control = True
         else:
             self.id = int(max(participants))+1
             self.in_control = False
         participants[self.id] = {
                 'key':self.id,
                 'id':self.user.id,
                 'name':self.user.readable_name,
                 'avatar':avatar_url(self.user,80)
                 }
         self.set_storage_object('participants_'+str(self.channel),participants)
示例#26
0
文件: views.py 项目: zed0/warwick_gg
def seat_to_dict(seat: Seating):
    """
    Convert a seat in the DB to a dict for use in the seating front-end
    """
    profile = WarwickGGUser.objects.get(user=seat['user_id'])

    return {
        'nickname': profile.long_name,
        'seat_id': seat['seat'],
        'user_id': seat['user_id'],
        'avatar': avatar_url(profile.user)
    }
示例#27
0
文件: reports.py 项目: tjguk/ironcage
    def get_context_data(self):
        candidates = Nomination.objects.all()
        rows = [[
            candidate.nominee.name, candidate.statement,
            avatar_url(candidate.nominee)
        ] for candidate in candidates]

        return {
            'title': self.title,
            'headings': ['Name', 'Statement', 'Avatar URL'],
            'rows': rows,
        }
示例#28
0
def get_documentlist_js(request):
    response={}
    status = 405
    if request.is_ajax() and request.method == 'POST':
        status = 200
        response['documents'] = documents_list(request)
        response['team_members']=[]
        for team_member in request.user.leader.all():
            tm_object = {}
            tm_object['id'] = team_member.member.id
            tm_object['name'] = team_member.member.readable_name
            tm_object['avatar'] = avatar_url(team_member.member,80)
            response['team_members'].append(tm_object)
        response['user']={}
        response['user']['id']=request.user.id
        response['user']['name']=request.user.readable_name
        response['user']['avatar']=avatar_url(request.user,80)
        response['access_rights'] = get_accessrights(AccessRight.objects.filter(document__owner=request.user))
    return JsonResponse(
        response,
        status=status
    )
示例#29
0
文件: views.py 项目: shaz/fiduswriter
def get_documentlist_js(request):
    response = {}
    status = 405
    if request.is_ajax() and request.method == 'POST':
        status = 200
        response['documents'] = documents_list(request)
        response['team_members'] = []
        for team_member in request.user.leader.all():
            tm_object = {}
            tm_object['id'] = team_member.member.id
            tm_object['name'] = team_member.member.readable_name
            tm_object['avatar'] = avatar_url(team_member.member, 80)
            response['team_members'].append(tm_object)
        response['user'] = {}
        response['user']['id'] = request.user.id
        response['user']['name'] = request.user.readable_name
        response['user']['avatar'] = avatar_url(request.user, 80)
        response['access_rights'] = get_accessrights(
            AccessRight.objects.filter(text__owner=request.user))
    return HttpResponse(simplejson.dumps(response),
                        content_type='application/json; charset=utf8',
                        status=status)
示例#30
0
文件: feeds.py 项目: lmorchard/badger
    def write(self, outfile, encoding):
        # Check for a callback param, validate it before use
        callback = self.feed['request'].GET.get('callback', None)
        if callback is not None:
            if not validate_jsonp.is_valid_jsonp_callback_value(callback):
                callback = None

        items_out = []
        for item in self.items:
            
            avatar_href = avatar_url(item['obj'].claimed_by, 64)
            if avatar_href.startswith('/'):
                avatar_href = self.request.build_absolute_uri(avatar_href)

            a_object = item['activity']['object']

            item_out = {
                'postedTime': item['pubdate'],
                'verb': item['activity']['verb'],
                'actor': {
                    'objectType': 'http://activitystrea.ms/schema/1.0/person',
                    'id': get_tag_uri(item['author_link'], item['pubdate']),
                    'displayName': item['author_name'],
                    'permalinkUrl': item['author_link'],
                    'image': {
                        'url': avatar_href, 
                        'width':'64', 
                        'height':'64',
                    }
                },
                'object': {
                    'objectType': a_object['object-type'],
                    'id': get_tag_uri(a_object['link'], item['pubdate']),
                    'displayName': a_object['name'],
                    'permalinkUrl': a_object['link'],
                    'image': {
                        'url': a_object['preview']['href'],
                        'width': a_object['preview']['width'],
                        'height': a_object['preview']['height'],
                    }
                },
            }
            items_out.append(item_out)

        data = {
            "items": items_out
        }

        if callback: outfile.write('%s(' % callback)
        outfile.write(json.dumps(data, default=self._encode_complex))
        if callback: outfile.write(')')
示例#31
0
 def get_document(self):
     response = dict()
     response['type'] = 'document_data'
     response['document'] = dict()
     response['document']['id'] = self.document.id
     response['document']['title'] = self.document.title
     response['document']['contents'] = self.document.contents
     response['document']['metadata'] = self.document.metadata
     response['document']['settings'] = self.document.settings
     response['document']['access_rights'] = get_accessrights(
         AccessRight.objects.filter(document__owner=self.document.owner))
     response['document']['owner'] = dict()
     response['document']['owner']['id'] = self.document.owner.id
     response['document']['owner'][
         'name'] = self.document.owner.readable_name
     response['document']['owner']['avatar'] = avatar_url(
         self.document.owner, 80)
     response['document']['owner']['team_members'] = []
     for team_member in self.document.owner.leader.all():
         tm_object = dict()
         tm_object['id'] = team_member.member.id
         tm_object['name'] = team_member.member.readable_name
         tm_object['avatar'] = avatar_url(team_member.member, 80)
         response['document']['owner']['team_members'].append(tm_object)
     response['document_values'] = dict()
     response['document_values']['is_owner'] = self.is_owner
     response['document_values']['rights'] = self.access_rights
     if self.is_new:
         response['document_values']['is_new'] = True
     if not self.is_owner:
         response['user'] = dict()
         response['user']['id'] = self.user.id
         response['user']['name'] = self.user.readable_name
         response['user']['avatar'] = avatar_url(self.user, 80)
     if self.in_control:
         response['document_values']['control'] = True
     response['document_values']['session_id'] = self.id
     self.write_message(response)
示例#32
0
def get_documentlist_js(request):
    response={}
    status = 405
    if request.is_ajax() and request.method == 'POST':
        status = 200
        response['documents'] = documents_list(request)
        response['team_members']=[]
        for team_member in request.user.leader.all():
            tm_object = {}
            tm_object['id'] = team_member.member.id
            tm_object['name'] = team_member.member.readable_name
            tm_object['avatar'] = avatar_url(team_member.member,80)
            response['team_members'].append(tm_object)
        response['user']={}
        response['user']['id']=request.user.id
        response['user']['name']=request.user.readable_name
        response['user']['avatar']=avatar_url(request.user,80)            
        response['access_rights'] = get_accessrights(AccessRight.objects.filter(text__owner=request.user))
    return HttpResponse(
        simplejson.dumps(response),
        content_type = 'application/json; charset=utf8',
        status=status
    )        
def recipient_search(request):
    term = request.GET.get("term")
    users = User.objects.filter(username__icontains=term)
    if request.GET.get("format") == "json":
        data = []
        for user in users:
            avatar_img_url = avatar_url(user, size=50)
            data.append({"id": user.username,
                         "url": reverse("user_page",args=(user.username,)),
                         "name": "%s" % user.username,
                         "img": avatar_img_url})

        return HttpResponse(simplejson.dumps(data),
                            mimetype='application/json')
def recipient_search(request):
    term = request.GET.get("term")
    users = User.objects.filter(username__icontains=term)
    if request.GET.get("format") == "json":
        data = []
        for user in users:
            avatar_img_url = avatar_url(user, size=50)
            data.append({"id": user.username,
                         "url": reverse("user_page",args=(user.username,)),
                         "name": "%s" % user.username,
                         "img": avatar_img_url})

        return HttpResponse(simplejson.dumps(data),
                            content_type='application/json')
示例#35
0
 def send_participant_list(cls, document):
     if document in DocumentWS.sessions:
         participant_list = []
         for waiter in cls.sessions[document].keys():
             participant_list.append({
                 'key':waiter,
                 'id':cls.sessions[document][waiter].user.id,
                 'name':cls.sessions[document][waiter].user.readable_name,
                 'avatar':avatar_url(cls.sessions[document][waiter].user,80)
                 })
         chat = {
             "participant_list": participant_list,
             "type": 'connections'
             }
         DocumentWS.send_updates(chat, document)
示例#36
0
def recipient_search(request):
    term = request.GET.get("term")
    users = User.objects.filter(Q(first_name__icontains=term) |
                                Q(last_name__icontains=term) |
                                Q(username__icontains=term) |
                                Q(email__icontains=term))
    if request.GET.get("format") == "json":
        data = []
        for user in users:
            avatar_img_url = avatar_url(user, size=50)
            data.append({"id": user.username,
                         "name": "%s %s"%(user.first_name, user.last_name),
                         "img": avatar_img_url})

        return HttpResponse(json.dumps(data),
                            content_type='application/json')
def recipient_search(request):
    term = request.GET.get("term")
    users = User.objects.filter(Q(first_name__icontains=term)|
                                Q(last_name__icontains=term)|
                                Q(username__icontains=term)|
                                Q(email__icontains=term))
    if request.GET.get("format") == "json":
        data = []
        for user in users:
            avatar_img_url = avatar_url(user, size=50)
            data.append({"id": user.username,
                         #"url": reverse("profile_detail",args=(user.username,)),
                         "url": '',
                         "name": "%s %s".strip() % (user.first_name, user.last_name) if user.first_name or user.last_name else user.username,
                         "img": avatar_img_url})

        return HttpResponse(json.dumps(data),
                            mimetype='application/json')
示例#38
0
def profile_post_save(instance, sender, **kwargs):
    """
    Make sure the user belongs by default to the anonymous group.
    This will make sure that anonymous permissions will be granted to the new users.
    """
    from django.contrib.auth.models import Group
    anon_group, created = Group.objects.get_or_create(name='anonymous')
    instance.groups.add(anon_group)
    # do not create email, when user-account signup code is in use
    if getattr(instance, '_disable_account_creation', False):
        return
    # keep in sync Profile email address with Account email address
    if instance.email not in [u'', '', None] and not kwargs.get('raw', False):
        address, created = EmailAddress.objects.get_or_create(
            user=instance, primary=True,
            defaults={'email': instance.email, 'verified': False})
        if not created:
            EmailAddress.objects.filter(user=instance, primary=True).update(email=instance.email)
    Profile.objects.filter(id=instance.id).update(avatar_100=avatar_url(instance, 100))
示例#39
0
 def send_participant_list(cls, document):
     if document in DocumentWS.sessions:
         participant_list = []
         for waiter in cls.sessions[document].keys():
             participant_list.append({
                 'key':
                 waiter,
                 'id':
                 cls.sessions[document][waiter].user.id,
                 'name':
                 cls.sessions[document][waiter].user.readable_name,
                 'avatar':
                 avatar_url(cls.sessions[document][waiter].user, 80)
             })
         chat = {
             "participant_list": participant_list,
             "type": 'connections'
         }
         DocumentWS.send_updates(chat, document)
示例#40
0
    def dehydrate(self, bundle):
        a = bundle.obj
        if self.get_resource_uri(bundle) == bundle.request.path:
            # it's a detailed request so we add the mks & parties scores
            mks_values = dict(a.get_mks_values())
            members = []
            for mk in Member.objects.filter(
                    pk__in=mks_values.keys()).select_related('current_party'):
                # TODO: this sucks, performance wise
                current_party = mk.current_party
                members.append(
                    dict(
                        name=mk.name,
                        score=mks_values[mk.id]['score'],
                        rank=mks_values[mk.id]['rank'],
                        volume=mks_values[mk.id]['volume'],
                        absolute_url=mk.get_absolute_url(),
                        party=current_party.name,
                        party_url=current_party.get_absolute_url(),
                    ))
            bundle.data['members'] = members
            bundle.data['parties'] = [
                dict(name=x.name,
                     score=a.party_score(x),
                     absolute_url=x.get_absolute_url())
                for x in Party.objects.prefetch_related('members')
            ]
            bundle.data['votes'] = [
                dict(title=v.vote.title,
                     id=v.id,
                     importance=v.importance,
                     score=v.score,
                     reasoning=v.reasoning)
                for v in bundle.obj.agendavotes.select_related()
            ]
            bundle.data['editors'] = [
                dict(absolute_url=e.get_absolute_url(),
                     username=e.username,
                     avatar=avatar_url(e, 48))
                for e in bundle.obj.editors.all()
            ]

        return bundle
示例#41
0
 def send_participant_list(cls, document_id):
     if document_id in WebSocket.sessions:
         participant_list = []
         for session_id, waiter in cls.sessions[
             document_id
         ]['participants'].items():
             access_rights = waiter.user_info.access_rights
             if access_rights not in CAN_COMMUNICATE:
                 continue
             participant_list.append({
                 'session_id': session_id,
                 'id': waiter.user_info.user.id,
                 'name': waiter.user_info.user.readable_name,
                 'avatar': avatar_url(waiter.user_info.user, 80)
             })
         message = {
             "participant_list": participant_list,
             "type": 'connections'
         }
         WebSocket.send_updates(message, document_id)
示例#42
0
 def send_participant_list(cls, document_id):
     if document_id in WebSocket.sessions:
         participant_list = []
         for session_id, waiter in cls.sessions[
             document_id
         ]['participants'].items():
             access_rights = waiter.user_info.access_rights
             if access_rights not in CAN_COMMUNICATE:
                 continue
             participant_list.append({
                 'session_id': session_id,
                 'id': waiter.user_info.user.id,
                 'name': waiter.user_info.user.readable_name,
                 'avatar': avatar_url(waiter.user_info.user, 80)
             })
         message = {
             "participant_list": participant_list,
             "type": 'connections'
         }
         WebSocket.send_updates(message, document_id)
示例#43
0
文件: feeds.py 项目: lmorchard/badger
 def item_description(self, item):
     # TODO: Stick this in a template?
     avatar_img = avatar_url(item.claimed_by, 64)
     if avatar_img.startswith('/'):
         avatar_img = self.request.build_absolute_uri(avatar_img)
     badge_img = badge_url(item.badge, 64) 
     if badge_img.startswith('/'):
         badge_img = self.request.build_absolute_uri(badge_img)
     return """
         <a href="%(claimed_by_url)s"><img src="%(avatar_img)s" width="64" height="64" /> %(claimed_by)s</a>
         <a href="%(award_url)s">claimed</a> the badge
         <a href="%(badge_url)s">"%(badge_title)s" <img src="%(badge_img)s" width="64" height="64" /></a>
     """ % {
         'avatar_img': avatar_img,
         'badge_img': badge_img,
         'claimed_by': item.claimed_by,
         'claimed_by_url': item.claimed_by.get_absolute_url(),
         'badge_title': item.badge.title,
         'badge_url': item.badge.get_absolute_url(),
         'award_url': item.get_absolute_url(),
     }
示例#44
0
 def send_participant_list(cls, document_id):
     if document_id in DocumentWS.sessions:
         participant_list = []
         for waiter in cls.sessions[document_id]['participants'].keys():
             participant_list.append({
                 'session_id': waiter,
                 'id': cls.sessions[document_id]['participants'][
                     waiter
                 ].user_info.user.id,
                 'name': cls.sessions[document_id]['participants'][
                     waiter
                 ].user_info.user.readable_name,
                 'avatar': avatar_url(cls.sessions[document_id][
                     'participants'
                 ][waiter].user_info.user, 80)
             })
         message = {
             "participant_list": participant_list,
             "type": 'connections'
         }
         DocumentWS.send_updates(message, document_id)
def __get_user_data(request, user_type):
    response_data = []
    q = request.REQUEST.get('q', None)

    if q:
        if user_type == USER_TYPE_SCIENTIST:
            scientist_list = User.objects.filter(Q(userprofile__is_scientist=True),
                                                 Q(username=q) | Q(email__icontains=q)).exclude(Q(id=request.user.id))
        elif user_type == USER_TYPE_PARTICIPANT:
            scientist_list = User.objects.filter(Q(userprofile__is_participant=True),
                                                 Q(username=q) | Q(email__icontains=q)).exclude(Q(id=request.user.id))

        for scientist in scientist_list:
            response_data.append(
                {
                    'id': scientist.id,
                    'avatar': avatar_url(scientist, 80),
                    'display_name': scientist.username,
                    'email': scientist.email
                }
            )
    return response_data
示例#46
0
文件: models.py 项目: patsy/gypsum
    def summary(self):
        summary = {
            'name': self.name,
            'activity': self.activity.name,
            'activity_icon_url': self.activity.icon_url,
            'distance': self.distance,
            'duration': self.get_duration_string(),
            'pace': self.get_pace_string(),
            'owner': {
                'name': self.owner.get_full_name(),
                'id': self.owner.id,
                'username': self.owner.username,
                'avatar_url': avatar_url(self.owner, 32)
            },
            'date': self.date,
            'number': self.number,
        }

        if self.pk:
            summary['details_url'] = self.get_absolute_url()

        return summary
示例#47
0
 def send_participant_list(cls, document_id):
     if document_id in DocumentWS.sessions:
         participant_list = []
         for waiter in cls.sessions[document_id]['participants'].keys():
             participant_list.append({
                 'session_id':
                 waiter,
                 'id':
                 cls.sessions[document_id]['participants']
                 [waiter].user_info.user.id,
                 'name':
                 cls.sessions[document_id]['participants']
                 [waiter].user_info.user.readable_name,
                 'avatar':
                 avatar_url(
                     cls.sessions[document_id]['participants']
                     [waiter].user_info.user, 80)
             })
         message = {
             "participant_list": participant_list,
             "type": 'connections'
         }
         DocumentWS.send_updates(message, document_id)
def upload_avatar(request):
    '''
    Upload avatar
    :param request:
    :return:
    '''
    if request.method == 'POST':
        avatar_file = request.FILES['file']
        avatar = Avatar(
            user=request.user,
            primary=True,
        )
        try:
            avatar.avatar.delete()
        except Exception as e:
            # TODO log e
            pass
        avatar.avatar.save(avatar_file.name, avatar_file)
        avatar.save()
        avatar.create_thumbnail(80)
        return_data = json.dumps(
            {'status': 'success', 'thumbnail_url': avatar_url(request.user, 80)})
        return HttpResponse(return_data, mimetype='application/json')
    return HttpResponseNotAllowed(['POST', ])
示例#49
0
 def dehydrate_avatar(self, bundle):
     return avatar_url(bundle.obj, 48)
示例#50
0
 def dehydrate_editors(self, bundle):
     return [
         dict(absolute_url=e.get_absolute_url(), username=e.username,
              avatar=avatar_url(e, 48))
         for e in bundle.obj.editors.all()
     ]
示例#51
0
 def dehydrate_avatar_100(self, bundle):
     return avatar_url(bundle.obj, 240)
示例#52
0
 def get_attribute(self, instance):
     return build_absolute_uri(avatar_url(instance, self.avatar_size))
示例#53
0
    def compact(self):
        """Converts a standard and verbose 'perm_spec' into 'compact mode'.

         - The method also recognizes special/internal security groups, like 'anonymous' and 'registered-members' and places
           their permissions on a specific node called 'groups'.
         - Every security group, different from the former ones, associated to a GeoNode 'GroupProfile', will be placed on a
           node called 'organizations' instead.
        e.g.:

        ```
        {
            "users": [
                {
                    "id": 1001,
                    "username": "******",
                    "first_name": "",
                    "last_name": "",
                    "avatar": "",
                    "permissions": "manage",
                    "is_superuser": <bool>,
                    "is_staff": <bool>
                }
            ],
            "organizations": [],
            "groups": [
                {
                    "id": 3,
                    "title": "Registered Members",
                    "name": "registered-members",
                    "permissions": "edit"
                },
                {
                    "id": 2,
                    "title": "anonymous",
                    "name": "anonymous",
                    "permissions": "download"
                }
            ]
        }
        ```
        """
        json = {}
        user_perms = []
        group_perms = []
        anonymous_perms = None
        contributors_perms = None
        organization_perms = []

        for _k in self.users:
            _perms = self.users[_k]
            if isinstance(_k, str):
                _k = get_user_model().objects.get(username=_k)
            if not _k.is_anonymous and _k.username != 'AnonymousUser':
                avatar = build_absolute_uri(avatar_url(_k, 240))
                user = _User(_k.id, _k.username, _k.last_name, _k.first_name,
                             avatar, _k.is_superuser, _k.is_staff)
                is_owner = _k == self._resource.owner
                user_perms.append({
                    'id':
                    user.id,
                    'username':
                    user.username,
                    'first_name':
                    user.first_name,
                    'last_name':
                    user.last_name,
                    'avatar':
                    user.avatar,
                    'permissions':
                    _to_compact_perms(_perms, self._resource.resource_type,
                                      self._resource.subtype, is_owner),
                    'is_superuser':
                    user.is_superuser,
                    'is_staff':
                    user.is_staff
                })
            else:
                anonymous_perms = {
                    'id':
                    Group.objects.get(name='anonymous').id,
                    'title':
                    'anonymous',
                    'name':
                    'anonymous',
                    'permissions':
                    _to_compact_perms(_perms, self._resource.resource_type,
                                      self._resource.subtype)
                }
        # Let's make sure we don't lose control over the resource
        if not any([
                _u.get('id', None) == self._resource.owner.id
                for _u in user_perms
        ]):
            user_perms.append({
                'id':
                self._resource.owner.id,
                'username':
                self._resource.owner.username,
                'first_name':
                self._resource.owner.first_name,
                'last_name':
                self._resource.owner.last_name,
                'avatar':
                build_absolute_uri(avatar_url(self._resource.owner, 240)),
                'permissions':
                OWNER_RIGHTS,
                'is_superuser':
                self._resource.owner.is_superuser,
                'is_staff':
                self._resource.owner.is_staff
            })
        for user in get_user_model().objects.filter(is_superuser=True):
            if not any([_u.get('id', None) == user.id for _u in user_perms]):
                user_perms.append({
                    'id':
                    user.id,
                    'username':
                    user.username,
                    'first_name':
                    user.first_name,
                    'last_name':
                    user.last_name,
                    'avatar':
                    build_absolute_uri(avatar_url(user, 240)),
                    'permissions':
                    MANAGE_RIGHTS,
                    'is_superuser':
                    user.is_superuser,
                    'is_staff':
                    user.is_staff
                })

        for _k in self.groups:
            _perms = self.groups[_k]
            if isinstance(_k, str):
                _k = Group.objects.get(name=_k)
            if _k.name == 'anonymous':
                anonymous_perms = {
                    'id':
                    _k.id,
                    'title':
                    'anonymous',
                    'name':
                    'anonymous',
                    'permissions':
                    _to_compact_perms(_perms, self._resource.resource_type,
                                      self._resource.subtype)
                }
            elif hasattr(_k, 'groupprofile'):
                group = _Group(_k.id, _k.groupprofile.title, _k.name,
                               _k.groupprofile.logo_url)
                if _k.name == groups_settings.REGISTERED_MEMBERS_GROUP_NAME:
                    contributors_perms = {
                        'id':
                        group.id,
                        'title':
                        group.title,
                        'name':
                        group.name,
                        'permissions':
                        _to_compact_perms(_perms, self._resource.resource_type,
                                          self._resource.subtype)
                    }
                else:
                    organization_perms.append({
                        'id':
                        group.id,
                        'title':
                        group.title,
                        'name':
                        group.name,
                        'logo':
                        group.logo,
                        'permissions':
                        _to_compact_perms(_perms, self._resource.resource_type,
                                          self._resource.subtype)
                    })

        if anonymous_perms:
            group_perms.append(anonymous_perms)
        else:
            anonymous_group = Group.objects.get(name='anonymous')
            group_perms.append({
                'id':
                anonymous_group.id,
                'title':
                'anonymous',
                'name':
                'anonymous',
                'permissions':
                _to_compact_perms(
                    get_group_perms(anonymous_group, self._resource),
                    self._resource.resource_type, self._resource.subtype)
            })
        if contributors_perms:
            group_perms.append(contributors_perms)
        elif Group.objects.filter(
                name=groups_settings.REGISTERED_MEMBERS_GROUP_NAME).exists():
            contributors_group = Group.objects.get(
                name=groups_settings.REGISTERED_MEMBERS_GROUP_NAME)
            group_perms.append({
                'id':
                contributors_group.id,
                'title':
                'Registered Members',
                'name':
                contributors_group.name,
                'permissions':
                _to_compact_perms(
                    get_group_perms(contributors_group, self._resource),
                    self._resource.resource_type, self._resource.subtype)
            })

        json['users'] = user_perms
        json['organizations'] = organization_perms
        json['groups'] = group_perms
        return json.copy()
示例#54
0
文件: api.py 项目: PhilLiDAR2/geonode
 def dehydrate_avatar_100(self, bundle):
     return avatar_url(bundle.obj, 100)
示例#55
0
 def dehydrate(self, bundle):
     bundle.data['full_name'] = bundle.obj.user.full_name
     bundle.data['profile_url'] = bundle.obj.user.get_absolute_url()
     bundle.data['avatar_url'] = avatar_url(bundle.obj.user)
     return bundle
示例#56
0
def avatar_post_save(instance, sender, **kw):
    MapstoryProfile.objects.filter(user_id=instance.user.id).update(
        avatar_100=avatar_url(instance.user, 100))