Exemplo n.º 1
0
 def save_artist_profile(self, profile, commit=True):
     """`profile` is an instance of UserProfile"""
     user = profile.user
     profile.is_artist = True
     profile.phone_number = self.cleaned_data['phone_number']
     if 'has_opted_in' in self.fields:
         profile.has_opted_in = self.cleaned_data.get('has_opted_in', False)
     if commit:
         profile.save()
     user.first_name = self.cleaned_data['first_name']
     user.last_name = self.cleaned_data['last_name']
     if commit:
         user.save()
     adr1 = self.cleaned_data.get('address1', '')
     city = self.cleaned_data.get('city', '')
     state = self.cleaned_data.get('state', '')
     postal_code = self.cleaned_data.get('postal_code', '')
     if adr1 and city and state and postal_code:
         adr = Address(user_profile=profile)
         adr.address1 = adr1
         adr.address2 = self.cleaned_data.get('address2', '')
         adr.city = city
         adr.state = state
         adr.postal_code = postal_code
         if commit:
             adr.save()
     artist_profile = ArtistProfile(user_profile=profile)
     artist_profile.name = self.cleaned_data['name']
     artist_profile.num_members = self.cleaned_data.get('num_members', 2)
     artist_profile.url = self.cleaned_data['url']
     artist_profile.website = self.cleaned_data.get('website', None)
     if commit:
         artist_profile.save()
         artist_profile.genres = list(Genre.objects.filter(id__in=self.cleaned_data['genres']))
     return artist_profile
Exemplo n.º 2
0
 def save(self, commit=True):
     show_fields = self.show_fields
     if self.instance.is_sso:
         self.instance.send_reminders = False
         self.instance.send_favorites = False
     else:
         self.instance.send_reminders = self.cleaned_data.get(
             'send_reminders', False)
         self.instance.send_favorites = self.cleaned_data.get(
             'send_favorites', False)
     user_dirty = False
     if 'email' in show_fields:
         email = self.cleaned_data.get('email', '').lower()
         if email:
             self.instance.user.email = email
             self.instance.is_sso = False
             user_dirty = True
     if 'name' in show_fields:
         self.instance.user.username = self.cleaned_data['username']
         self.instance.user.first_name = self.cleaned_data['first_name']
         self.instance.user.last_name = self.cleaned_data['last_name']
         if self.cleaned_data.get('has_opted_in', None) is not None:
             self.instance.has_opted_in = self.cleaned_data.get(
                 'has_opted_in', False)
         self.instance.permission = self.cleaned_data['permission']
         user_dirty = True
     if user_dirty and commit:
         self.instance.user.save()
     if 'birth_date' in show_fields:
         self.instance.birth_date = self.cleaned_data['birth_date']
     if 'phone_number' in show_fields:
         self.instance.phone_number = self.cleaned_data['phone_number']
     if 'image' in show_fields:
         avatar_img = self.cleaned_data.get('image', None)
         if avatar_img:
             avatar_img_field = self.instance._meta.get_field(
                 'avatar_image')
             avatar_img_field.save_form_data(self.instance, avatar_img)
     if commit:
         self.instance.save()
         if 'image' in show_fields:
             self.instance._create_resized_images(raw_field=None, save=True)
     if 'address' in show_fields:
         adr = Address(user_profile=self.instance)
         adr.address1 = self.cleaned_data['address1']
         adr.address2 = self.cleaned_data.get('address2', '')
         adr.city = self.cleaned_data['city']
         adr.state = self.cleaned_data['state']
         adr.postal_code = self.cleaned_data['postal_code']
         #adr.country = self.cleaned_data['country']
         if commit:
             adr.save()
     return self.instance
Exemplo n.º 3
0
 def save(self, commit=True):
     show_fields = self.show_fields
     if self.instance.is_sso:
         self.instance.send_reminders = False
         self.instance.send_favorites = False
     else:
         self.instance.send_reminders = self.cleaned_data.get('send_reminders', False)
         self.instance.send_favorites = self.cleaned_data.get('send_favorites', False)
     user_dirty = False
     if 'email' in show_fields:
         email = self.cleaned_data.get('email', '').lower()
         if email:
             self.instance.user.email = email
             self.instance.is_sso = False
             user_dirty = True
     if 'name' in show_fields:
         self.instance.user.username = self.cleaned_data['username']
         self.instance.user.first_name = self.cleaned_data['first_name']
         self.instance.user.last_name = self.cleaned_data['last_name']
         if self.cleaned_data.get('has_opted_in', None) is not None:
             self.instance.has_opted_in = self.cleaned_data.get('has_opted_in', False)
         self.instance.permission = self.cleaned_data['permission']
         user_dirty = True
     if user_dirty and commit:
         self.instance.user.save()
     if 'birth_date' in show_fields:
         self.instance.birth_date = self.cleaned_data['birth_date']
     if 'phone_number' in show_fields:
         self.instance.phone_number = self.cleaned_data['phone_number']
     if 'image' in show_fields:
         avatar_img = self.cleaned_data.get('image', None)
         if avatar_img:
             avatar_img_field = self.instance._meta.get_field('avatar_image')
             avatar_img_field.save_form_data(self.instance, avatar_img)
     if commit:
         self.instance.save()
         if 'image' in show_fields:
             self.instance._create_resized_images(raw_field=None, save=True)
     if 'address' in show_fields:
         adr = Address(user_profile=self.instance)
         adr.address1 = self.cleaned_data['address1']
         adr.address2 = self.cleaned_data.get('address2', '')
         adr.city = self.cleaned_data['city']
         adr.state = self.cleaned_data['state']
         adr.postal_code = self.cleaned_data['postal_code']
         #adr.country = self.cleaned_data['country']
         if commit:
             adr.save()
     return self.instance
Exemplo n.º 4
0
 def __init__(self, *args, **kwargs):
     user_profile_instance = kwargs.pop('user_profile_instance', None)
     self.user_profile_instance = user_profile_instance
     if not user_profile_instance:
         super(ArtistProfileUpdateForm, self).__init__(*args, **kwargs)
     else:
         # Gather initial values based on existing data.
         artist_profile = self.user_profile_instance.artist
         if artist_profile:
             if artist_profile:
                 initial_genres = [
                     g.id for g in artist_profile.genres.all()
                 ]
             else:
                 artist_profile = ArtistProfile()
                 initial_genres = []
         else:
             artist_profile = ArtistProfile()
             initial_genres = []
         try:
             adr = self.user_profile_instance.address
         except Address.DoesNotExist:
             adr = Address()
         # Populate initial values.
         initial = {}
         initial.update(self.user_profile_instance.user.__dict__)
         initial.update(self.user_profile_instance.__dict__)
         initial.update(adr.__dict__)
         initial.update(artist_profile.__dict__)
         initial['genres'] = initial_genres
         if artist_profile.paypal:
             initial.update(artist_profile.paypal.__dict__)
             initial.update(
                 {'paypal_email2': artist_profile.paypal.paypal_email})
         if artist_profile.google:
             initial.update(artist_profile.google.__dict__)
         initial.update(kwargs.pop('initial', {}))
         super(ArtistProfileUpdateForm, self).__init__(initial=initial,
                                                       *args,
                                                       **kwargs)
         if artist_profile.paypal:
             self.fields[
                 'paypal_email'].help_text = _PAYPAL_EMAIL_HELP_WITH_LINKS
         if artist_profile.google:
             self.fields['google_merchant_id'].help_text = get_gco_help()
Exemplo n.º 5
0
 def save_artist_profile(self, profile, commit=True):
     """`profile` is an instance of UserProfile"""
     user = profile.user
     profile.is_artist = True
     profile.phone_number = self.cleaned_data['phone_number']
     if 'has_opted_in' in self.fields:
         profile.has_opted_in = self.cleaned_data.get('has_opted_in', False)
     if commit:
         profile.save()
     user.first_name = self.cleaned_data['first_name']
     user.last_name = self.cleaned_data['last_name']
     if commit:
         user.save()
     adr1 = self.cleaned_data.get('address1', '')
     city = self.cleaned_data.get('city', '')
     state = self.cleaned_data.get('state', '')
     postal_code = self.cleaned_data.get('postal_code', '')
     if adr1 and city and state and postal_code:
         adr = Address(user_profile=profile)
         adr.address1 = adr1
         adr.address2 = self.cleaned_data.get('address2', '')
         adr.city = city
         adr.state = state
         adr.postal_code = postal_code
         if commit:
             adr.save()
     artist_profile = ArtistProfile(user_profile=profile)
     artist_profile.name = self.cleaned_data['name']
     artist_profile.num_members = self.cleaned_data.get('num_members', 2)
     artist_profile.url = self.cleaned_data['url']
     artist_profile.website = self.cleaned_data.get('website', None)
     if commit:
         artist_profile.save()
         artist_profile.genres = list(
             Genre.objects.filter(id__in=self.cleaned_data['genres']))
     return artist_profile
Exemplo n.º 6
0
    def __init__(self,
                 instance,
                 show_fields=None,
                 optional_fields=None,
                 *args,
                 **kwargs):
        self.instance = instance  # an instance of UserProfile
        if show_fields is None:
            show_fields = [
                'email', 'name', 'phone_number', 'birth_date', 'image'
            ]  # 'phone_number',
        if optional_fields is None:
            optional_fields = [
                'email', 'name', 'phone_number', 'birth_date', 'image'
            ]  # 'phone_number',
        self.show_fields = show_fields
        self.optional_fields = optional_fields
        super(UserProfileForm, self).__init__(*args, **kwargs)

        email = self.instance.user.email.lower()
        is_fb_email = email.endswith('facebook.com')
        default_username = self.instance.user.username

        if is_sso_email(email) or is_fb_email:
            default_email = u''
        else:
            default_email = email

        if self.instance.is_sso:
            default_username = self.instance.sso_username

        if True:  # default_email or is_fb_email:
            self.fields['permission'] = forms.CharField(
                label=_('Who can see my profile'),
                initial=self.instance.permission,
                widget=forms.Select(choices=UserProfile.PERMISSION_CHOICES),
            )
            self.fields['send_reminders'] = forms.BooleanField(
                initial=self.instance.send_reminders,
                label=_(
                    "Email me daily reminders of upcoming events I am in for"),
                required=False)
            self.fields['send_favorites'] = forms.BooleanField(
                initial=self.instance.send_favorites,
                label=
                _("Email me daily reminders of upcoming events my friends are in for"
                  ),
                required=False)

        if 'email' in show_fields:
            self.fields['email'] = forms.EmailField(label=_('Email'),
                                                    initial=default_email,
                                                    required='email'
                                                    not in optional_fields)
            if not self.instance.is_sso and is_fb_email and (
                    self.instance.send_reminders
                    or self.instance.send_favorites):
                self.fields[
                    'email'].help_text = u'''Event reminder emails are being sent to your Facebook account.<br/> 
                                                                       Add a different email address above or leave it empty to continue 
                                                                       using your Facebook account.'''

        if 'name' in show_fields:
            self.fields['username'] = forms.RegexField(
                label=_("Username"),
                max_length=30,
                regex=r'^\w+$',
                initial=default_username,
                error_message=
                _("This value must contain only letters, numbers and underscores."
                  ),
                min_length=4,
                help_text=
                _(u'Between 4 and 30 alphanumeric characters (letters, digits and underscores).'
                  ))

            self.fields['first_name'] = forms.CharField(
                label=_('First name'),
                max_length=30,
                initial=self.instance.user.first_name,
                required='name' not in optional_fields)
            self.fields['last_name'] = forms.CharField(
                label=_('Last name'),
                max_length=30,
                initial=self.instance.user.last_name,
                required='name' not in optional_fields)

        if 'birth_date' in show_fields:
            self.fields['birth_date'] = forms.DateField(
                label=_('Date of birth'),
                input_formats=['%m/%d/%Y'],
                error_messages={
                    'invalid':
                    _('Enter a valid date in this format: MM/DD/YYYY.')
                },
                help_text=_('In the format M/D/YYYY. For example, 8/21/1985.'),
                initial=self.instance.birth_date
                and self.instance.birth_date.strftime('%m/%d/%Y') or None,
                required='birth_date' not in optional_fields)

        if 'phone_number' in show_fields:
            self.fields['phone_number'] = us_forms.USPhoneNumberField(
                label=_('Phone number'),
                initial=self.instance.phone_number,
                help_text=_('In the format: xxx-xxx-xxxx.'),
                required='phone_number' not in optional_fields)

        if 'address' in show_fields:
            try:
                adr = self.instance.address
            except Address.DoesNotExist:
                adr = Address()
            self.fields['address1'] = forms.CharField(label=_('Address 1'),
                                                      initial=adr.address1)
            self.fields['address2'] = forms.CharField(label=_('Address 2'),
                                                      required=False,
                                                      initial=adr.address2)
            self.fields['city'] = forms.CharField(label=_('City'),
                                                  max_length=100,
                                                  initial=adr.city)
            self.fields['state'] = us_forms.USStateField(
                label=_('State'),
                initial=adr.state,
                widget=us_forms.USStateSelect())
            self.fields['postal_code'] = us_forms.USZipCodeField(
                label=_('ZIP code'),
                initial=adr.postal_code,
                help_text=_(
                    'U.S. zip code in the format XXXXX or XXXXX-XXXX.'))
            #self.fields['country'] = forms.CharField(label=_('Country'), max_length=75, initial=adr.country)
            #self.fields['country'].widget.attrs.update({'class':'textInput'})

        if 'image' in show_fields:
            self.fields['image'] = forms.ImageField(label=_("Profile image"),
                                                    required=False,
                                                    help_text=AVATAR_HELP_TEXT)
        if 'name' in show_fields:
            self.fields['has_opted_in'] = forms.BooleanField(
                initial=self.instance.has_opted_in,
                label=_('Receive e-mail with news about %s.' %
                        settings.UI_SETTINGS['UI_SITE_TITLE']),
                required=False)
def register_unapproved_stay(postdata):
    '''
    When a calendar form is submitted, give the resulting request.POST data
    to this function. This function handles stripping the data down and validating/creating
    the resulting objects in the database. If the post data is validated successfully
    and the objects are created, then the returned dictionary will have a key value
    pair of 'success': True. If the validation is not successful or the objects are not
    created, then the returned dictionary will have a key value pair of 'success': False,
    and the errors will be reported in a list key value mapping of 'error_message': ['...', '...', ..]
    containing the list of error messages.
    '''
    name = postdata['name'].strip()
    age = int(postdata['age'].strip())
    phone = postdata['phone_contact_0'] + postdata['phone_contact_1'].strip()
    email = postdata['email_contact'].strip()
    num_guests = int(postdata['number_of_guests'].strip())
    in_date = parser.parse(postdata['in_date'].split('(')[0].strip())
    out_date = parser.parse(postdata['out_date'].split('(')[0].strip())
    additional = postdata['additional_questions_or_concerns']

    street = postdata['street_number'].strip()
    route = postdata['route'].strip()
    city = postdata['city'].strip()
    state = postdata['state'].strip()
    zip_code = postdata['zip_code'].strip()
    country = postdata['country'].strip()

    try:
        new_address = Address(street_number=street,
                              route=route,
                              city=city,
                              state=state,
                              zip_code=zip_code,
                              country=country)
        new_address.save()

        existing_guest = Guest.objects.filter(phone_contact=phone)[0]
        guest = None

        if not existing_guest:
            guest = Guest(name=name,
                          age=age,
                          phone_contact=phone,
                          email_contact=email,
                          address=new_address)
            guest.save()

        else:
            existing_guest.name = name
            existing_guest.age = age
            existing_guest.email_contact = email
            existing_guest.address = new_address
            existing_guest.save()

            guest = existing_guest

        new_stay = Stay(guest=guest,
                        in_date=in_date,
                        out_date=out_date,
                        number_of_guests=num_guests,
                        additional_questions_or_concerns=additional)
        new_stay.full_clean()
        new_stay.save()

        result = {'success': True, 'stay': new_stay}

    except ValidationError as e:
        result = {
            'success': False,
            'error_source':
            'registration.utils.register_unapproved_stay: Validation Failed',
            'error_details': e.message_dict,
        }
    return result
Exemplo n.º 8
0
def edit_address(request):
    page_name = 'editar perfil'
    form = AddressForm(request.POST or None)
    success_message = False
    user = request.user
    address = Address.objects.filter(user=user).first()

    if address != None:
        form.fields['zip_code'].initial = address.zip_code
        form.fields['street'].initial = address.street
        form.fields['number'].initial = address.number
        form.fields['complement'].initial = address.complement
        form.fields['district'].initial = address.district
        form.fields['city'].initial = address.city
        form.fields['state'].initial = address.state

    if request.method == 'POST' and form.is_valid():

        if address is None:
            address = Address()

        address.zip_code = form.cleaned_data['zip_code']
        address.street = form.cleaned_data['street']
        address.number = form.cleaned_data['number']
        address.complement = form.cleaned_data['complement']
        address.district = form.cleaned_data['district']
        address.city = form.cleaned_data['city']
        address.state = form.cleaned_data['state']
        address.user = user

        address.save()

        success_message = True

    return render(request, 'edit-address.html', {'form': form, 'page_name': page_name, 'success_message':success_message})