def save(self, send_email=True): user = RegistrationProfile.objects.create_inactive_user(username=self.cleaned_data['username'], password=self.cleaned_data['password1'], email=self.cleaned_data['email'], site=None, send_email=send_email ) user.username = user.username.strip().lower() user.save() # remove spaces from username and change all to lowercase profile = Profile(user=user) profile.save() organization = Organization.objects.create( #create organization name = self.cleaned_data['organization'], trade_name = self.cleaned_data['organization'], short_name = slugify(self.cleaned_data['shortname']), ) default_place = Place.objects.create( #create default place label = organization.name, # use same name as label active = True, place_type = PlaceType.objects.get(description='Matriz'), # mandatory field organization = organization, # link place to this organization ) default_room = Room.objects.create( description = 'Sala 1', place = default_place, room_type=RoomType.objects.all()[0], ) person = Person.objects.create(name=self.cleaned_data['name'], user=user) #, organization=organization) person.organization.add(organization) profile.org_active = organization #set org as active profile.temp = self.cleaned_data['password1'] # temporary field (LDAP) profile.person = person profile.save() try: admin_role = Group.objects.get(name='administrator') Role.objects.create(profile=profile, organization=organization, group=admin_role) profile.user.groups.add(admin_role) except: pass try: professional_role = Group.objects.get(name='professional') Role.objects.create(profile=profile, organization=organization, group=professional_role) profile.user.groups.add(professional_role) except: pass careprof = CareProfessional() careprof.person = person pp = ProfessionalProfile() pi = ProfessionalIdentification() pp.save() pi.save() careprof.professionalProfile = pp careprof.professionalIdentification = pi careprof.save() return organization
def save_careprof(request, object_id, save_person, is_student=False): """ This view function returns the informations about CareProfessional @param request: this is a request sent by the browser. @type request: a instance of the class C{HttpRequest} created by the framework Django @param object: it is the tyoe of CareProfessional that must be filled. @type object: an instance of the built-in type C{CareProfessional}. """ if object_id: object = get_object_or_404(CareProfessional, pk=object_id, person__organization=request.user.get_profile().org_active) else: object = CareProfessional() if save_person: object.person = person_save(request, get_object_or_None(Person, pk=object.person_id) or Person()) object.save() ''' remove service before add check if service have referral before remove. cannot be removed if have referral. ''' # all service that are in list_service cannot be removed because it have referral. Create a error message for service and show to user. list_to_remove = [] # remove service, compare from form and db. for x in object.prof_services.all(): # professional if not x.id in request.POST.getlist('professional_service'): # check referral if Referral.objects.charged().filter( professional=object, service=x, status='01'): list_to_remove.append(x) # add to msg else: object.prof_services.remove(x) # remove from professional # add new service to professional for x in request.POST.getlist('professional_service'): object.prof_services.add(x) # no problem to replace profile = get_object_or_None(ProfessionalProfile, pk=object.professionalProfile_id) or ProfessionalProfile() profile.initialProfessionalActivities = request.POST.get('professional_initialActivitiesDate') profile.save() object.professionalProfile = profile # remove all workplace profile.workplace.clear() # update workplace for x in request.POST.getlist('professional_workplace'): profile.workplace.add( Place.objects.get( pk=x, organization=request.user.get_profile().org_active ) ) if not is_student: if request.POST.get('professional_registerNumber') or request.POST.get('professional_area'): if not object.professionalIdentification: identification = ProfessionalIdentification() else: identification = object.professionalIdentification if request.POST.get('professional_registerNumber'): identification.registerNumber = request.POST.get('professional_registerNumber') if request.POST.get('professional_area'): identification.profession = get_object_or_None(Profession, id=request.POST.get('professional_area')) identification.save() object.professionalIdentification = identification object.save() return object, list_to_remove
def save_careprof(request, object_id, save_person, is_student=False): """ This view function returns the informations about CareProfessional @param request: this is a request sent by the browser. @type request: a instance of the class C{HttpRequest} created by the framework Django @param object: it is the tyoe of CareProfessional that must be filled. @type object: an instance of the built-in type C{CareProfessional}. """ if object_id: object = get_object_or_404( CareProfessional, pk=object_id, person__organization=request.user.get_profile().org_active) else: object = CareProfessional() if save_person: object.person = person_save( request, get_object_or_None(Person, pk=object.person_id) or Person()) object.save() ''' remove service before add check if service have referral before remove. cannot be removed if have referral. ''' # all service that are in list_service cannot be removed because it have referral. Create a error message for service and show to user. list_to_remove = [] # remove service, compare from form and db. for x in object.prof_services.all(): # professional if not x.id in request.POST.getlist('professional_service'): # check referral if Referral.objects.charged().filter(professional=object, service=x, status='01'): list_to_remove.append(x) # add to msg else: object.prof_services.remove(x) # remove from professional # add new service to professional for x in request.POST.getlist('professional_service'): object.prof_services.add(x) # no problem to replace profile = get_object_or_None( ProfessionalProfile, pk=object.professionalProfile_id) or ProfessionalProfile() profile.initialProfessionalActivities = request.POST.get( 'professional_initialActivitiesDate') profile.save() object.professionalProfile = profile # remove all workplace profile.workplace.clear() # update workplace for x in request.POST.getlist('professional_workplace'): profile.workplace.add( Place.objects.get( pk=x, organization=request.user.get_profile().org_active)) if not is_student: if request.POST.get('professional_registerNumber') or request.POST.get( 'professional_area'): if not object.professionalIdentification: identification = ProfessionalIdentification() else: identification = object.professionalIdentification if request.POST.get('professional_registerNumber'): identification.registerNumber = request.POST.get( 'professional_registerNumber') if request.POST.get('professional_area'): identification.profession = get_object_or_None( Profession, id=request.POST.get('professional_area')) identification.save() object.professionalIdentification = identification object.save() return object, list_to_remove
def save_careprof(request, object_id, save_person, is_student=False): """ This view function returns the informations about CareProfessional @param request: this is a request sent by the browser. @type request: a instance of the class C{HttpRequest} created by the framework Django @param object: it is the tyoe of CareProfessional that must be filled. @type object: an instance of the built-in type C{CareProfessional}. """ if object_id: object = get_object_or_404(CareProfessional, pk=object_id, person__organization=request.user.get_profile().org_active) else: object = CareProfessional() if save_person: object.person = person_save(request, get_object_or_None(Person, pk=object.person_id) or Person()) object.save() #exist_referral="False" list_from_form = request.POST.getlist('professional_service') # MAKE A LIST WHIT ID SERVICE list_db = [] for y in object.prof_services.filter(organization=request.user.get_profile().org_active): list_db.append(y.id) # IF LIST_FROM_FORM > 0 THEN ADDED SERVICE if len(list_from_form) > 0: for ps_id in list_from_form: ps = Service.objects.get(pk=ps_id) object.prof_services.add(ps) # COMPARES THE LIST_DB AND LIST_FORM, THE RESULT WILL BE SERVICES THAT WILL BE REMOVED if len(list_from_form) > 0: for x in list_from_form: try: indice = list_db.remove(x) except: pass ## REMOVE SERVICE #if len(list_db) > 0: #for o in list_db: #if Referral.objects.charged().filter(professional = object, service = o, status = '01').count() > 0: #exist_referral="True" #else: #object.prof_services.remove(o) profile = get_object_or_None(ProfessionalProfile, pk=object.professionalProfile_id) or ProfessionalProfile() profile.initialProfessionalActivities = request.POST.get('professional_initialActivitiesDate') profile.save() object.professionalProfile = profile if (len(request.POST.getlist('professional_workplace'))): for o in profile.workplace.filter(organization=request.user.get_profile().org_active): profile.workplace.remove(o) for wplace_id in request.POST.getlist('professional_workplace'): profile.workplace.add(Place.objects.get(pk=wplace_id)) if not is_student: if (len(request.POST.getlist('professional_agreement'))): profile.agreement.clear() for agreemt_id in request.POST.getlist('professional_agreement'): profile.agreement.add(Agreement.objects.get(pk=agreemt_id)) if request.POST.get('professional_registerNumber') or request.POST.get('professional_area'): if not object.professionalIdentification: identification = ProfessionalIdentification() else: identification = object.professionalIdentification if request.POST.get('professional_registerNumber'): identification.registerNumber = request.POST.get('professional_registerNumber') if request.POST.get('professional_area'): identification.profession = get_object_or_None(Profession, id=request.POST.get('professional_area')) identification.save() object.professionalIdentification = identification object.save() return object