Esempio n. 1
0
def _update_name_from_orcid_record(profile: Profile,
                                   orcid_record: dict) -> None:
    given_name = jmespath.search('person.name."given-names".value',
                                 orcid_record)
    family_name = jmespath.search('person.name."family-name".value',
                                  orcid_record)

    if given_name and family_name:
        profile.name = Name('{} {}'.format(given_name, family_name),
                            '{}, {}'.format(family_name, given_name))
    elif given_name:
        profile.name = Name(given_name, given_name)
    elif family_name:
        profile.name = Name(family_name, family_name)
Esempio n. 2
0
def create_profile(request):
    jwt_token = request.data.get('token')
    name = request.data.get('name')
    is_professor = request.data.get('is_professor')
    # Validação do token
    client = Client()
    response = client.post('/token_verify/', request.data)
    if response.status_code != HTTP_200_OK:
        return response
    # Decodificação do usuário
    user_obj = jwt.decode(jwt_token, SECRET_KEY, algorithms=['HS256'])
    user = User.objects.get(pk=user_obj['user_id'])

    if is_professor:
        is_professor = ast.literal_eval(is_professor)
    else:
        return Response(data={'error': 'Parametro invalido: is_professor'},
                        status=HTTP_400_BAD_REQUEST)

    # Obtendo profile
    if is_professor:
        profile = Profile(user=user, is_professor=is_professor)
        profile.save()
        professor = Professor(profile=profile)
        professor.save()
        if name:
            profile.name = name
            classes = []
            all_classes = Class.objects.all()
            for each in all_classes:
                for professor_name in each.professors:
                    if professor_name == name:
                        classes.append([each.discipline.code, each.name])
            professor.classes = classes
            professor.save()

        profile.save()
        serializer = ProfileSerializer(profile)
    else:
        profile = Profile(user=user, is_professor=is_professor)
        profile.save()
        student = Student(profile=profile)
        student.save()
        if name:
            profile.name = name
        profile.save()
        serializer = ProfileSerializer(profile)
    return Response(data=serializer.data, status=HTTP_200_OK)
Esempio n. 3
0
 def create_profile():
     """Creates a new profile for the agents"""
     try:
         profile = Profile.objects.get(name="Agente")
     except Profile.DoesNotExist:
         profile = Profile()
         profile.name = "Agente"
         profile.active = True
         profile.save()
     return profile
Esempio n. 4
0
def save_profile(request):
    profile = Profile()
    profile.name = request.POST["tmp_name"]
    profile.desc = request.POST["tmp_desc"]
    profile.addr = request.POST["tmp_addr"]
    profile.contact = request.POST["tmp_contact"]
    profile.receiver = request.POST["tmp_receiver"]
    request.session[DRAFT_PROFILE_KEY] = profile 
    
    next = request.POST.get("next", '')
    if not next:
        raise Exception("No any next page")
    return HttpResponseRedirect(next)
Esempio n. 5
0
 def save(self, request):
     profile = Profile.objects.get(user=request.user)
     if profile is None:
         profile = Profile(user=request.user)
         
     profile.name = self.cleaned_data.get("name")
     profile.sex = self.cleaned_data.get("sex")
     profile.contact = self.cleaned_data.get("contact")
     profile.addr = self.cleaned_data.get("addr")
     profile.receiver = self.cleaned_data.get("receiver")
     #profile.city = self.getCity()
     #profile.website = self.cleaned_data.get("website")
     #profile.spacename = self.cleaned_data.get("spacename")
     profile.desc = self.cleaned_data.get("desc")
     profile.save()
     
     profileUpdated.send(sender=profile.__class__, request=request, profile=profile) 
     
     return profile
Esempio n. 6
0
 def after_signup(self, request, user, emailAddress, **kwargs):
     profile = None
     
     try:
         profile = Profile.objects.get(user=user)
     except Profile.DoesNotExist:
         profile = Profile(user=user)
     
     profile.name = self.cleaned_data.get("nickname")
     #profile.city = City.objects.getById(id=2)  #TODO, load from cities cache
     profile.save()
     
     #=======================================================
     #code in the bookstore
     '''为注册用户创建购物车'''
     try:
         cart = Cart.objects.get(owner=profile)
     except Cart.DoesNotExist:
         cart = Cart(owner=profile)
     
     cart.save()
Esempio n. 7
0
    def create_admin_profile():
        try:
            admin_profile = Profile.objects.get(name="ADMINISTRADOR")
        except Profile.DoesNotExist:
            admin_profile = Profile()
            admin_profile.name = "ADMINISTRADOR"
            admin_profile.active = True
            admin_profile.save()

        actions = Action.objects.all()
        for action in actions:
            try:
                permission = ProfilePermissions.objects.get(
                    profile=admin_profile.id, action=action.id)
            except ProfilePermissions.DoesNotExist:
                permission = ProfilePermissions()
                permission.profile = admin_profile
                permission.action = action

            permission.permission = True
            permission.save()
        Command.create_admin_user(admin_profile)
Esempio n. 8
0
    def load_player(self, member_url, team, char_name=None):
        """ Loads player and team membership data, and adds as member to team. Return profile, membership """
        try:
            member_d = self.visit_url(member_url)
        except IOError:
            profile_name = " ".join(
                (word.capitalize()
                 for word in member_url.strip("/").split("/")[-1].split("-")))
            print(
                "Page not found, constructing from {0} name and {1} charname".
                format(profile_name, char_name))
            # create profile and membership
            profile, created = Profile(name=profile_name,
                                       user=self.master_user), True
            profile.save()
            membership = TeamMembership(team=team,
                                        profile=profile,
                                        char_name=char_name,
                                        active=False)
            membership.save()
            return profile, membership

        if "Player not found in database" in tostring(member_d):
            print("Player not found...skipping", file=self.stdout)
            return
        info_ps = member_d.cssselect('.content-section-1 p')
        info_h3s = member_d.cssselect('.content-section-1 h3')
        profile_name = info_ps[1].text
        if char_name is None:
            char_name = info_ps[4].text
            if "." in char_name:
                char_name = char_name.split(".", 1)[0]
        if Profile.objects.filter(name=profile_name).count():
            profile, created = Profile.objects.get(name=profile_name), False
            membership, membership_created = TeamMembership.objects.get_or_create(
                team=team, profile=profile, defaults={'char_name': char_name})
            membership.char_name = char_name
        else:
            try:
                membership = TeamMembership.objects.get(team=team,
                                                        char_name=char_name)
                profile, created = membership.profile, False
            except TeamMembership.DoesNotExist:
                # create profile and membership
                profile, created = Profile(name=profile_name,
                                           user=self.master_user), True
                profile.save()
                membership = TeamMembership(team=team,
                                            profile=profile,
                                            char_name=char_name)
        print(created, file=self.stdout)
        profile.name = profile_name
        member_photo_url = info_ps[0].cssselect('img')[0].get('src')
        if member_photo_url != self.unknown_photo:
            filename = slugify(
                profile.name) + posixpath.splitext(member_photo_url)[1]
            profile.photo.save(
                filename,
                ContentFile(urllib2.urlopen(member_photo_url).read()))
        if info_ps[3].text:
            profile.title = info_ps[3].text
        if info_ps[-1].text:  # deal with blank race
            if info_h3s[-1].text.strip().lower() == "champion":
                membership.champion = info_ps[-1].text.strip()
            else:
                try:
                    membership.race = info_ps[-1].text[0].upper()
                    membership.clean_fields()
                except ValidationError:
                    membership.race = None
        try:
            membership.questions_answers = tostring(
                member_d.cssselect('div.content-section-2 ol')[0])
        except:
            pass
        try:
            profile.full_clean()
        except ValidationError as e:
            print("Profile did not validate! {profile_name} {e}".format(
                profile_name=profile_name.encode('ascii', 'ignore'), e=e),
                  file=self.stderr)
        else:
            profile.save()
            membership.save()
        return profile, membership
Esempio n. 9
0
    def load_player(self, member_url, team, char_name=None):
        """ Loads player and team membership data, and adds as member to team. Return profile, membership """
        try:
            member_d = self.visit_url(member_url)
        except IOError:
            profile_name = " ".join((word.capitalize() for word in member_url.strip("/").split("/")[-1].split("-")))
            print("Page not found, constructing from {0} name and {1} charname".format(profile_name, char_name))
            # create profile and membership
            profile, created = Profile(name=profile_name, user=self.master_user), True
            profile.save()
            membership = TeamMembership(team=team, profile=profile, char_name=char_name, active=False)
            membership.save()
            return profile, membership

        if "Player not found in database" in tostring(member_d):
            print("Player not found...skipping", file=self.stdout)
            return
        info_ps = member_d.cssselect('.content-section-1 p')
        info_h3s = member_d.cssselect('.content-section-1 h3')
        profile_name = info_ps[1].text
        if char_name is None:
            char_name = info_ps[4].text
            if "." in char_name:
                char_name = char_name.split(".", 1)[0]
        if Profile.objects.filter(name=profile_name).count():
            profile, created = Profile.objects.get(name=profile_name), False
            membership, membership_created = TeamMembership.objects.get_or_create(team=team, profile=profile, defaults={'char_name': char_name})
            membership.char_name = char_name
        else:
            try:
                membership = TeamMembership.objects.get(team=team, char_name=char_name)
                profile, created = membership.profile, False
            except TeamMembership.DoesNotExist:
                # create profile and membership
                profile, created = Profile(name=profile_name, user=self.master_user), True
                profile.save()
                membership = TeamMembership(team=team, profile=profile, char_name=char_name)
        print(created, file=self.stdout)
        profile.name = profile_name
        member_photo_url = info_ps[0].cssselect('img')[0].get('src')
        if member_photo_url != self.unknown_photo:
            filename = slugify(profile.name) + posixpath.splitext(member_photo_url)[1]
            profile.photo.save(filename, ContentFile(urllib2.urlopen(member_photo_url).read()))
        if info_ps[3].text:
            profile.title = info_ps[3].text
        if info_ps[-1].text:  # deal with blank race
            if info_h3s[-1].text.strip().lower() == "champion":
                membership.champion = info_ps[-1].text.strip()
            else:
                try:
                    membership.race = info_ps[-1].text[0].upper()
                    membership.clean_fields()
                except ValidationError:
                    membership.race = None
        try:
            membership.questions_answers = tostring(member_d.cssselect('div.content-section-2 ol')[0])
        except:
            pass
        try:
            profile.full_clean()
        except ValidationError as e:
            print("Profile did not validate! {profile_name} {e}".format(profile_name=profile_name.encode('ascii', 'ignore'), e=e), file=self.stderr)
        else:
            profile.save()
            membership.save()
        return profile, membership