Example #1
0
def favourites(request):
    current_user = {'user': request.user}
    if request.method == 'POST':
        id_product = request.POST['id_product']
        product = Product.objects.filter(id=id_product)
        new_favourite = UserProfile(current_user, product)
    return render(request, 'favourites/favourites.html', current_user)
Example #2
0
def create_profile(sender, instance, signal, created, **kwargs):
    """When user is created also create a matching profile."""
 
    from profiles.models import UserProfile
 
    if created:
        UserProfile(user = instance).save()
Example #3
0
    def register(self, request, **kwargs):
        username, email, password = kwargs['username'], kwargs[
            'email'], kwargs['password1']
        if Site._meta.installed:
            site = Site.objects.get_current()
        else:
            site = RequestSite(request)
        new_user = RegistrationProfile.objects.create_inactive_user(
            username, email, password, site)
        signals.user_registered.send(sender=self.__class__,
                                     user=new_user,
                                     request=request)

        user = User.objects.get(username=new_user.username)
        user.first_name = kwargs['first_name']
        user.last_name = kwargs['last_name']
        user.save()
        new_profile = UserProfile(user=user)
        new_profile.fiscal_code = kwargs['fiscal_code']
        new_profile.telephone = kwargs['telephone']
        new_profile.area = kwargs['area']
        new_profile.personal_data = kwargs['personal_data']
        new_profile.save()

        return new_user
Example #4
0
    def test_models_entry(self):
        # Sets a User instance.
        user1 = User()
        user1.save()

        up = UserProfile(user=user1,
                         full_name="bob smith",
                         phone_number=134256748,
                         street_address1="test1",
                         street_address2="test2",
                         postcode="po2099",
                         town_city="town",
                         country="Country",
                         employee=False,
                         image="image.jpg")
        up.save()

        self.assertEqual(up.user, user1)
        self.assertEqual(up.full_name, "bob smith")
        self.assertEqual(up.phone_number, 134256748)
        self.assertEqual(up.street_address1, "test1")
        self.assertEqual(up.street_address2, "test2")
        self.assertEqual(up.postcode, "po2099")
        self.assertEqual(up.town_city, "town")
        self.assertEqual(up.country, "Country")
        self.assertEqual(up.employee, False)
        self.assertEqual(up.image, "image.jpg")
Example #5
0
    def create_user(self, username, email, password):
        '''
		'''
        try:
            user = User.objects.filter(username__iexact=username)
        except:
            user = None
        if user:
            return False

        try:
            user = User.objects.filter(email__iexact=email)
        except:
            user = None
        if user:
            return False

        try:
            user = UserProfile.objects.filter(email_unconfirmed__iexact=email)
        except:
            user = None
        if user:
            return False

        try:
            new_user = User.objects.create_user(username=username,
                                                password=password)
            new_user.is_active = False
            new_user.save()
        except:
            return False

        confirm_key = generate_sha1()
        account = self.create(user=new_user, \
                  confirm_key=confirm_key, \
                  confirm_key_creat_time = now(), \
                  email_unconfirmed = email, \
                  last_active = now())
        account.send_confirm_email()

        profile = UserProfile(user=new_user)
        try:
            anonymous = User.objects.get(pk=ANONYMOUS_ID)
        except:
            anonymous = self.create_anonymous()
        profile.avatar = anonymous.userprofile.avatar
        profile.username = username
        profile.save()

        # print 'send create_user_done signal'
        # create_user_done.send(sender='UserAccount', user=new_user)
        filename = get_gravatar(account.email_unconfirmed)
        if filename:
            avatar = Avatar()
            avatar.avatar_save(filename)
            remove(filename)
            profile.avatar = avatar
            profile.save()

        return new_user
 def generate_user_profile(self, user):
     user_profile = UserProfile()
     user_profile.user = user
     user_profile.gender = 'M'
     user_profile.birthday = '1985-05-21'
     user_profile.save()
     return user_profile
Example #7
0
 def create(self, validated_data):
     user = UserProfile(phone_number=validated_data['phone_number'],
                        name=validated_data['name'],
                        organisation=validated_data['organisation'])
     user.set_password(validated_data['password'])
     user.save()
     return user
Example #8
0
    def _make_test_profile():

        test_profile = UserProfile(
            created_by=make_test_user,
            username= '******',
            bio= 'this is a bio and its going to be outrageous',
            avatar= 'a picture here',

            )
        test_profile.save()
        test_profile.skills.add(make_skill)
        return test_profile
Example #9
0
 def register(self, request, **kwargs):
     new_user = super(TreeBackend, self).register(request, **kwargs)
     new_user.first_name = kwargs['first_name']
     new_user.last_name = kwargs['last_name']
     new_user.save()
     try:
         profile = new_user.get_profile()
     except:
         profile = UserProfile(user=new_user)
     profile.zip_code = kwargs.get('zip_code')
     profile.volunteer = kwargs.get('volunteer')
     profile.updates = kwargs.get('updates')
     profile.photo = kwargs.get('photo')
     profile.save()
     return new_user
Example #10
0
 def setUp(self):
     self.browser = webdriver.Firefox()
     self.browser.implicitly_wait(3)
     self.browser.wait = WebDriverWait(self.browser, 10)
     sally = UserModel().objects.create_user(
         first_name='Sally',
         last_name='Hayes',
         username='******',
         email='[email protected]:8081',
         password='******'
     )
     sally_profile = UserProfile()
     sally_profile.user = sally
     sally_profile.birthday = '1985-07-22'
     sally_profile.gender = 'F'
     sally_profile.save()
Example #11
0
def user_registered_callback(sender, user, request, **kwargs):
    """
    Save name to user and automatically create shed and profile named
    """
    user.first_name = request.POST["first_name"]
    user.last_name = request.POST["last_name"]
    user.save()
    shed = Shed(name="%s's home" % user.username,
                owner=user,
                street=request.POST["street"],
                city=request.POST["city"],
                state=request.POST["state"],
                postal_code=request.POST["postal_code"])
    shed.save()
    profile = UserProfile(user=user, home_shed=shed)
    stats = Stats()
    stats.save()
    profile.stats = stats
    profile.save()
Example #12
0
    def create_anonymous(self):
        '''
		'''
        anonymous = User(id=ANONYMOUS_ID, \
                         username=ANONYMOUS_USERNAME, \
                         password=ANONYMOUS_PASSWORD) # this password will
        # never be used!
        anonymous.save()
        avatar = Avatar()
        avatar.avatar_save(MEDIA_ROOT + ANONYMOUS_USERNAME + '.jpg')

        profile = UserProfile(user=anonymous)
        profile.avatar = avatar
        profile.name = ANONYMOUS_NAME
        profile.save()

        # there while add some other thing

        return anonymous
def checkout_confirm(request, order_number):
    """
    Handle successful checkouts
    """
    save_info = request.session.get('save_info')
    order = get_object_or_404(Order, order_number=order_number)

    if request.user.is_authenticated:
        profile = UserProfile.objects.get(user=request.user)
        # Attach the user's profile to the order
        order.user_profiles = profile
        order.save()

        # Save the user's info
        if save_info:
            profile_data = {
                'default_phone_number': order.phone_number,
                'default_country': order.country,
                'default_postcode': order.postcode,
                'default_town_or_city': order.town_or_city,
                'default_street_address1': order.street_address1,
                'default_street_address2': order.street_address2,
                'default_county': order.county,
            }
            user_profile_form = UserProfile(profile_data, instance=profile)
            if user_profile_form.is_valid():
                user_profile_form.save()

    messages.success(
        request, f'Order successfully processed! \
        Your order number is {order_number}. A confirmation \
        email will be sent to {order.email}.')

    if 'bag' in request.session:
        del request.session['bag']

    template = 'checkout/checkout_confirm.html'
    context = {
        'order': order,
    }

    return render(request, template, context)
Example #14
0
    def get(self, request, **kwargs):
        token = kwargs.get("token")
        uidb64 = kwargs.get("uidb64")
        try:
            uid = force_text(urlsafe_base64_decode(uidb64))
            user = User.objects.get(pk=uid)
        except (TypeError, ValueError, OverflowError, User.DoesNotExist):
            user = None

        if user and not user.is_active and default_token_generator.check_token(
                user, token):
            user.is_active = True
            user.save()
            createprofile = UserProfile()
            createprofile.name = user.first_name
            createprofile.email = user.email
            createprofile.save()

            return super(CreateCompleteView, self).get(request, **kwargs)
        else:
            raise Http404
Example #15
0
def register(request):
    """A view that manages the registration form"""
    if request.method == 'POST':
        user_form = UserRegistrationForm(request.POST)
        if user_form.is_valid():
            the_user = user_form.save()

            user = auth.authenticate(request.POST.get('email'),
                                     password=request.POST.get('password1'))
            if user:
                user_profile = UserProfile(user=the_user)
                user_profile.save()
                messages.success(request, "You have successfully registered")
                return redirect(reverse('login'))

            else:
                messages.error(request,
                               "Unable to create an account at this time!")
    else:
        user_form = UserRegistrationForm()

    args = {'user_form': user_form}
    return render(request, 'register.html', args)
Example #16
0
    def create(self, validated_data):
        profile_data = validated_data.pop('profile', None)
        data = self.validated_data
        user = User.objects.create_user(
            username=data['username'],
            email=data['email'],
            password=data['password'],
        )
        user.save()

        profile_image = profile_data.get('profile_image') or None
        bio = "Say Hi to me. I'm new here"
        if not profile_image:
            profile_image = 'https://api.adorable.io/avatar/200/' + user.username
        profile = UserProfile(user=user,
                              bio=bio,
                              profile_image=profile_image,
                              full_name=profile_data.get('full_name', ''),
                              is_verified=profile_data.get(
                                  'is_verified', False),
                              address=profile_data.get('address', ''))
        profile.save()
        return user
Example #17
0
def makeProfile(request):
    """ This creates an empty profile for the user to fill out """
    upr = UserProfile()
    upr.user = request.user
    upr.image = "images/no-pic.png"
    upr.save()
Example #18
0
 def update(self, validated_data):
     user = UserProfile(phone_number=validated_data['phone_number'], )
     otp = random.randrange(0, 4)
     user.set_password(otp)
     user.save()
     return user
Example #19
0
def create_profile_handler(sender, instance, **kwargs):
    """As New User created, create and attach Profile"""
    if not kwargs.get('created'):
        return None
    profile = UserProfile(user=instance)
    profile.save()
Example #20
0
 def handle(self, *args, **options):
     user = User.objects.get(id=1)
     up = UserProfile(user=user, privacy='open')
     up.save()
Example #21
0
def setupTreemapEnv():
    Choices(field="plot_type", key="blah", value="blah", key_type="str").save()

    r1 = ReputationAction(name="edit verified", description="blah")
    r2 = ReputationAction(name="edit tree", description="blah")
    r3 = ReputationAction(name="Administrative Action", description="blah")
    r4 = ReputationAction(name="add tree", description="blah")
    r5 = ReputationAction(name="edit plot", description="blah")
    r6 = ReputationAction(name="add plot", description="blah")

    for r in [r1, r2, r3, r4, r5, r6]:
        r.save()

    bv = BenefitValues(co2=0.02,
                       pm10=9.41,
                       area="InlandValleys",
                       electricity=0.1166,
                       voc=4.69,
                       ozone=5.0032,
                       natural_gas=1.25278,
                       nox=12.79,
                       stormwater=0.0078,
                       sox=3.72,
                       bvoc=4.96)

    bv.save()

    dbh = "[1.0, 2.0, 3.0]"

    rsrc = Resource(meta_species="BDM_OTHER",
                    electricity_dbh=dbh,
                    co2_avoided_dbh=dbh,
                    aq_pm10_dep_dbh=dbh,
                    region="Sim City",
                    aq_voc_avoided_dbh=dbh,
                    aq_pm10_avoided_dbh=dbh,
                    aq_ozone_dep_dbh=dbh,
                    aq_nox_avoided_dbh=dbh,
                    co2_storage_dbh=dbh,
                    aq_sox_avoided_dbh=dbh,
                    aq_sox_dep_dbh=dbh,
                    bvoc_dbh=dbh,
                    co2_sequestered_dbh=dbh,
                    aq_nox_dep_dbh=dbh,
                    hydro_interception_dbh=dbh,
                    natural_gas_dbh=dbh)
    rsrc.save()

    u = User.objects.filter(username="******")

    if u:
        u = u[0]
    else:
        u = User.objects.create_user("jim", "*****@*****.**", "jim")
        u.is_staff = True
        u.is_superuser = True
        u.save()
        up = UserProfile(user=u)
        u.reputation = Reputation(user=u)
        u.reputation.save()

    n1geom = MultiPolygon(
        Polygon(((0, 0), (100, 0), (100, 100), (0, 100), (0, 0))))
    n2geom = MultiPolygon(
        Polygon(((0, 101), (101, 101), (101, 200), (0, 200), (0, 101))))

    n1 = Neighborhood(name="n1",
                      region_id=2,
                      city="c1",
                      state="PA",
                      county="PAC",
                      geometry=n1geom)
    n2 = Neighborhood(name="n2",
                      region_id=2,
                      city="c2",
                      state="NY",
                      county="NYC",
                      geometry=n2geom)

    n1.save()
    n2.save()

    z1geom = MultiPolygon(
        Polygon(((0, 0), (100, 0), (100, 100), (0, 100), (0, 0))))
    z2geom = MultiPolygon(
        Polygon(((0, 100), (100, 100), (100, 200), (0, 200), (0, 100))))

    z1 = ZipCode(zip="19107", geometry=z1geom)
    z2 = ZipCode(zip="10001", geometry=z2geom)

    z1.save()
    z2.save()

    exgeom1 = MultiPolygon(
        Polygon(((0, 0), (25, 0), (25, 25), (0, 25), (0, 0))))
    ex1 = ExclusionMask(geometry=exgeom1, type="building")

    ex1.save()

    agn1 = AggregateNeighborhood(annual_stormwater_management=0.0,
                                 annual_electricity_conserved=0.0,
                                 annual_energy_conserved=0.0,
                                 annual_natural_gas_conserved=0.0,
                                 annual_air_quality_improvement=0.0,
                                 annual_co2_sequestered=0.0,
                                 annual_co2_avoided=0.0,
                                 annual_co2_reduced=0.0,
                                 total_co2_stored=0.0,
                                 annual_ozone=0.0,
                                 annual_nox=0.0,
                                 annual_pm10=0.0,
                                 annual_sox=0.0,
                                 annual_voc=0.0,
                                 annual_bvoc=0.0,
                                 total_trees=0,
                                 total_plots=0,
                                 location=n1)

    agn2 = AggregateNeighborhood(annual_stormwater_management=0.0,
                                 annual_electricity_conserved=0.0,
                                 annual_energy_conserved=0.0,
                                 annual_natural_gas_conserved=0.0,
                                 annual_air_quality_improvement=0.0,
                                 annual_co2_sequestered=0.0,
                                 annual_co2_avoided=0.0,
                                 annual_co2_reduced=0.0,
                                 total_co2_stored=0.0,
                                 annual_ozone=0.0,
                                 annual_nox=0.0,
                                 annual_pm10=0.0,
                                 annual_sox=0.0,
                                 annual_voc=0.0,
                                 annual_bvoc=0.0,
                                 total_trees=0,
                                 total_plots=0,
                                 location=n2)

    agn1.save()
    agn2.save()

    s1 = Species(symbol="s1", genus="testus1", species="specieius1")
    s2 = Species(symbol="s2", genus="testus2", species="specieius2")

    s1.save()
    s2.save()

    ie = ImportEvent(file_name='site_add')
    ie.save()
Example #22
0
def setupTreemapEnv():
    settings.GEOSERVER_GEO_LAYER = ""
    settings.GEOSERVER_GEO_STYLE = ""
    settings.GEOSERVER_URL = ""

    def local_render_to_response(*args, **kwargs):
        from django.template import loader, RequestContext
        from django.http import HttpResponse

        httpresponse_kwargs = {'mimetype': kwargs.pop('mimetype', None)}
        hr = HttpResponse(loader.render_to_string(*args, **kwargs),
                          **httpresponse_kwargs)

        if hasattr(args[1], 'dicts'):
            hr.request_context = args[1].dicts

        return hr

    django.shortcuts.render_to_response = local_render_to_response

    r1 = ReputationAction(name="edit verified", description="blah")
    r2 = ReputationAction(name="edit tree", description="blah")
    r3 = ReputationAction(name="Administrative Action", description="blah")
    r4 = ReputationAction(name="add tree", description="blah")
    r5 = ReputationAction(name="edit plot", description="blah")
    r6 = ReputationAction(name="add plot", description="blah")
    r7 = ReputationAction(name="add stewardship", description="blah")
    r8 = ReputationAction(name="remove stewardship", description="blah")

    for r in [r1, r2, r3, r4, r5, r6, r7, r8]:
        r.save()

    bv = BenefitValues(co2=0.02,
                       pm10=9.41,
                       area="InlandValleys",
                       electricity=0.1166,
                       voc=4.69,
                       ozone=5.0032,
                       natural_gas=1.25278,
                       nox=12.79,
                       stormwater=0.0078,
                       sox=3.72,
                       bvoc=4.96)

    bv.save()

    dbh = "[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]"
    dbh2 = "[2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]"

    rsrc1 = Resource(meta_species="BDM OTHER", region="NoEastXXX")
    rsrc2 = Resource(meta_species="BDL OTHER", region="NoEastXXX")

    rsrc1.save()
    rsrc2.save()

    u = User.objects.filter(username="******")

    if u:
        u = u[0]
    else:
        u = User.objects.create_user("jim", "*****@*****.**", "jim")
        u.is_staff = True
        u.is_superuser = True
        u.save()
        up = UserProfile(user=u)
        up.save()
        u.reputation = Reputation(user=u)
        u.reputation.save()

    amy_filter_result = User.objects.filter(username="******")
    if not amy_filter_result:
        amy = User.objects.create_user("amy", "*****@*****.**", "amy")
    else:
        amy = amy_filter_result[0]
        amy.is_staff = False
        amy.is_superuser = False
        amy.save()
        amy_profile = UserProfile(user=amy)
        amy_profile.save()
        amy.reputation = Reputation(user=amy)
        amy.reputation.save()

    olivia_filter_result = User.objects.filter(username="******")
    if not amy_filter_result:
        olivia = User.objects.create_user("olivia", "*****@*****.**",
                                          "olivia")
    else:
        olivia = olivia_filter_result[0]
        olivia.is_staff = False
        olivia.is_superuser = False
        olivia.save()
        olivia_profile = UserProfile(user=olivia)
        olivia_profile.save()
        olivia.reputation = Reputation(user=olivia)
        olivia.reputation.save()

    n1geom = MultiPolygon(
        Polygon(((0, 0), (100, 0), (100, 100), (0, 100), (0, 0))))
    n2geom = MultiPolygon(
        Polygon(((0, 101), (101, 101), (101, 200), (0, 200), (0, 101))))

    n1 = Neighborhood(name="n1",
                      region_id=2,
                      city="c1",
                      state="PA",
                      county="PAC",
                      geometry=n1geom)
    n2 = Neighborhood(name="n2",
                      region_id=2,
                      city="c2",
                      state="NY",
                      county="NYC",
                      geometry=n2geom)

    n1.save()
    n2.save()

    z1geom = MultiPolygon(
        Polygon(((0, 0), (100, 0), (100, 100), (0, 100), (0, 0))))
    z2geom = MultiPolygon(
        Polygon(((0, 100), (100, 100), (100, 200), (0, 200), (0, 100))))

    z1 = ZipCode(zip="19107", geometry=z1geom)
    z2 = ZipCode(zip="10001", geometry=z2geom)

    z1.save()
    z2.save()

    exgeom1 = MultiPolygon(
        Polygon(((0, 0), (25, 0), (25, 25), (0, 25), (0, 0))))
    ex1 = ExclusionMask(geometry=exgeom1, type="building")

    ex1.save()

    agn1 = AggregateNeighborhood(annual_stormwater_management=0.0,
                                 annual_electricity_conserved=0.0,
                                 annual_energy_conserved=0.0,
                                 annual_natural_gas_conserved=0.0,
                                 annual_air_quality_improvement=0.0,
                                 annual_co2_sequestered=0.0,
                                 annual_co2_avoided=0.0,
                                 annual_co2_reduced=0.0,
                                 total_co2_stored=0.0,
                                 annual_ozone=0.0,
                                 annual_nox=0.0,
                                 annual_pm10=0.0,
                                 annual_sox=0.0,
                                 annual_voc=0.0,
                                 annual_bvoc=0.0,
                                 total_trees=0,
                                 total_plots=0,
                                 location=n1)

    agn2 = AggregateNeighborhood(annual_stormwater_management=0.0,
                                 annual_electricity_conserved=0.0,
                                 annual_energy_conserved=0.0,
                                 annual_natural_gas_conserved=0.0,
                                 annual_air_quality_improvement=0.0,
                                 annual_co2_sequestered=0.0,
                                 annual_co2_avoided=0.0,
                                 annual_co2_reduced=0.0,
                                 total_co2_stored=0.0,
                                 annual_ozone=0.0,
                                 annual_nox=0.0,
                                 annual_pm10=0.0,
                                 annual_sox=0.0,
                                 annual_voc=0.0,
                                 annual_bvoc=0.0,
                                 total_trees=0,
                                 total_plots=0,
                                 location=n2)

    agn1.save()
    agn2.save()

    s1 = Species(symbol="s1",
                 genus="testus1",
                 species="specieius1",
                 cultivar_name='',
                 family='',
                 alternate_symbol='a1')
    s2 = Species(symbol="s2",
                 genus="testus2",
                 species="specieius2",
                 cultivar_name='',
                 family='',
                 alternate_symbol='a2')
    s3 = Species(symbol="s3",
                 genus="testus2",
                 species="specieius3",
                 cultivar_name='',
                 family='',
                 alternate_symbol='a3')

    s1.native_status = 'True'
    s1.fall_conspicuous = True
    s1.flower_conspicuous = True
    s1.palatable_human = True

    s2.native_status = 'True'
    s2.fall_conspicuous = False
    s2.flower_conspicuous = True
    s2.palatable_human = False
    s2.wildlife_value = True

    s3.wildlife_value = True

    s1.save()
    s2.save()
    s3.save()

    s1.resource.add(rsrc1)
    s2.resource.add(rsrc2)
    s3.resource.add(rsrc2)

    ie = ImportEvent(file_name='site_add')
    ie.save()
Example #23
0
def page(request):
    form = Form_register(prefix='register')
    form_log = Form_login(prefix='login')
    context = {
        "form": form,
        "form_log": form_log,
    }
    if request.method == 'POST' and 'login' in request.POST:
        form_log = Form_login(request.POST, prefix='login')
        if form_log.is_valid():
            username = form_log.cleaned_data["username"]
            password = form_log.cleaned_data["password"]
            user = authenticate(username=username, password=password)
            if user:
                from django.contrib.auth import login
                login(request, user)
            if request.user.is_authenticated():
                profile = UserProfile.objects.get(user_auth=request.user)
                context['profile'] = profile
                frequests = Invite.objects.filter(r_to=profile).exclude(
                    r_from=profile)
                context['frequests'] = frequests
                return render(request, "welcome.html", context)
            form_log = Form_login(prefix='login')
            context["form_log"] = form_log
            return render(request, "welcome.html", context)
        context["form_log"] = form_log
        return render(request, "welcome.html", context)

    if request.method == 'POST' and 'register' in request.POST:
        form = Form_register(request.POST, prefix='register')
        if form.is_valid():
            login = form.cleaned_data['login'].lower()
            password = form.cleaned_data['password']
            email = form.cleaned_data['email']
            user_auth = User.objects.create_user(username=login,
                                                 email=email,
                                                 password=password)
            user_auth.is_active = True

            user_auth.save()
            new_user = UserProfile(user_auth=user_auth)
            new_user.save()
            user = authenticate(username=login, password=password)
            if user:
                from django.contrib.auth import login
                login(request, user)
            return HttpResponseRedirect(reverse('welcome'))
        else:
            if request.user.is_authenticated():
                profile = UserProfile.objects.get(user_auth=request.user)
                context['profile'] = profile
                frequests = Invite.objects.filter(r_to=profile).exclude(
                    r_from=profile)
                context['frequests'] = frequests
            context["form"] = form
            return render(request, 'welcome.html', context)
        context["form"] = form
        return render(request, "welcome.html", context)

    if request.user.is_authenticated():
        profile = UserProfile.objects.get(user_auth=request.user)
        context['profile'] = profile
        frequests = Invite.objects.filter(r_to=profile).exclude(r_from=profile)
        context['frequests'] = frequests

    return render(request, "welcome.html", context)
Example #24
0
def Registration(request):
    '''register a user as a Rooroo member'''
    if request.user.is_authenticated():
        # already registered and logged in
        return HttpResponseRedirect('index.html')

    if request.method == 'POST':
        # submission of customized form
        form = RegistrationForm(request.POST)
        if form.is_valid():
            try:
                # all fields in form are filled out, unique username, correct email format, matching passwords
                new_user = User.objects.create_user(
                    username=form.cleaned_data[
                        'username'],  # pass value in username field in form
                    email=form.cleaned_data['email'],
                    password=form.cleaned_data['password'])
            except Exception as e:
                print e
                import traceback
                import sys
                traceback.print_exc(file=sys.stdout)
            else:
                new_user.is_active = False
                new_user.save(
                )  # save form input into a user object for logging into account

            finally:
                # build the activation key for new user profile account; expires after 2 days
                salt = hashlib.sha1(str(random.random())).hexdigest()[:5]
                activation_key = hashlib.sha1(salt +
                                              new_user.username).hexdigest()
                key_expires = datetime.datetime.utcnow().replace(
                    tzinfo=utc) + datetime.timedelta(2)

            try:
                # create manual UserProfile object
                print "userprofile"
                new_userprofile = UserProfile(
                    user=new_user,
                    activation_key=activation_key,
                    key_expires=key_expires,
                    position=form.cleaned_data['position'])
            except Exception as e:
                print e
                import traceback
                traceback.print_exc(file=sys.stdout)
                # error: new user object created but not new user profile;
                # make new user inactive to avoid breaking foreign keys to users, then delete
                new_user.is_active = False
                new_user.delete()
                return render_to_response(
                    'registration/registration_form.html', {'form': form},
                    context_instance=RequestContext(request))
            else:
                print "in else"
                new_userprofile.save()

                email_subject = "REQUEST: Activate Your RooRoo Account"
                email_body = "Hello %s,\n\nTo activate your account, please click on the link within 48 hours:\nhttp://localhost:8000/accounts/confirm/%s \n\nNote: This is an auto-generated e-mail message; please do not reply." % (
                    new_user.username, new_userprofile.activation_key)
                #https://mol-flipbook.sbgrid.org/accounts/confirm/%s \n\nNote: This is an auto-generated e-mail message, please do not reply."%(

                from_sender = '*****@*****.**'
                to_recipient = [new_user.email]

                try:
                    send_mail(email_subject, email_body, from_sender,
                              to_recipient)
                except Exception as e:
                    print e
                    traceback.print_exc(file=sys.stdout)
                finally:
                    # render html page stating email is sent out to user
                    return render_to_response(
                        'registration/registration_complete.html',
                        context_instance=RequestContext(request))
        else:
            # form not valid, try again
            print("User form is bound:{0} errors:{1}").format(
                form.is_bound, form.errors)
            return render_to_response('registration/registration_form.html',
                                      {'form': form},
                                      context_instance=RequestContext(request))

    else:
        '''user is not submitting the form, show them a blank registration form'''
        form = RegistrationForm()
        # add form to context
        context = {'form': form}
        return render_to_response('registration/registration_form.html',
                                  context,
                                  context_instance=RequestContext(request))
Example #25
0
    def setUp(self):
        ######
        # Request/Render mock
        ######
        def local_render_to_response(*args, **kwargs):
            from django.template import loader, RequestContext
            from django.http import HttpResponse

            httpresponse_kwargs = {'mimetype': kwargs.pop('mimetype', None)}
            hr = HttpResponse(loader.render_to_string(*args, **kwargs),
                              **httpresponse_kwargs)

            if hasattr(args[1], 'dicts'):
                hr.request_context = args[1].dicts

            return hr

        django.shortcuts.render_to_response = local_render_to_response

        ######
        # Content types
        ######
        r1 = ReputationAction(name="edit verified", description="blah")
        r2 = ReputationAction(name="edit tree", description="blah")
        r3 = ReputationAction(name="Administrative Action", description="blah")
        r4 = ReputationAction(name="add tree", description="blah")
        r5 = ReputationAction(name="edit plot", description="blah")
        r6 = ReputationAction(name="add plot", description="blah")
        r7 = ReputationAction(name="add stewardship", description="blah")
        r8 = ReputationAction(name="remove stewardship", description="blah")

        self.ra = [r1, r2, r3, r4, r5, r6, r7, r8]

        for r in self.ra:
            r.save()

        ######
        # Set up benefit values
        ######
        bv = BenefitValues(co2=0.02,
                           pm10=9.41,
                           area="InlandValleys",
                           electricity=0.1166,
                           voc=4.69,
                           ozone=5.0032,
                           natural_gas=1.25278,
                           nox=12.79,
                           stormwater=0.0078,
                           sox=3.72,
                           bvoc=4.96)

        bv.save()
        self.bv = bv

        dbh = "[1.0, 2.0, 3.0]"

        rsrc = Resource(meta_species="BDM_OTHER",
                        electricity_dbh=dbh,
                        co2_avoided_dbh=dbh,
                        aq_pm10_dep_dbh=dbh,
                        region="Sim City",
                        aq_voc_avoided_dbh=dbh,
                        aq_pm10_avoided_dbh=dbh,
                        aq_ozone_dep_dbh=dbh,
                        aq_nox_avoided_dbh=dbh,
                        co2_storage_dbh=dbh,
                        aq_sox_avoided_dbh=dbh,
                        aq_sox_dep_dbh=dbh,
                        bvoc_dbh=dbh,
                        co2_sequestered_dbh=dbh,
                        aq_nox_dep_dbh=dbh,
                        hydro_interception_dbh=dbh,
                        natural_gas_dbh=dbh)
        rsrc.save()
        self.rsrc = rsrc

        ######
        # Users
        ######
        u = User.objects.filter(username="******")

        if u:
            u = u[0]
        else:
            u = User.objects.create_user("jim", "*****@*****.**", "jim")
            u.is_staff = True
            u.is_superuser = True
            u.save()
            up = UserProfile(user=u)
            u.reputation = Reputation(user=u)
            u.reputation.save()

        self.u = u

        #######
        # Setup geometries -> Two stacked 100x100 squares
        #######
        n1geom = MultiPolygon(
            Polygon(((0, 0), (100, 0), (100, 100), (0, 100), (0, 0))))
        n2geom = MultiPolygon(
            Polygon(((0, 101), (101, 101), (101, 200), (0, 200), (0, 101))))

        n1 = Neighborhood(name="n1",
                          region_id=2,
                          city="c1",
                          state="PA",
                          county="PAC",
                          geometry=n1geom)
        n2 = Neighborhood(name="n2",
                          region_id=2,
                          city="c2",
                          state="NY",
                          county="NYC",
                          geometry=n2geom)

        n1.save()
        n2.save()

        z1geom = MultiPolygon(
            Polygon(((0, 0), (100, 0), (100, 100), (0, 100), (0, 0))))
        z2geom = MultiPolygon(
            Polygon(((0, 100), (100, 100), (100, 200), (0, 200), (0, 100))))

        z1 = ZipCode(zip="19107", geometry=z1geom)
        z2 = ZipCode(zip="10001", geometry=z2geom)

        z1.save()
        z2.save()

        exgeom1 = MultiPolygon(
            Polygon(((0, 0), (25, 0), (25, 25), (0, 25), (0, 0))))
        ex1 = ExclusionMask(geometry=exgeom1, type="building")

        ex1.save()

        agn1 = AggregateNeighborhood(annual_stormwater_management=0.0,
                                     annual_electricity_conserved=0.0,
                                     annual_energy_conserved=0.0,
                                     annual_natural_gas_conserved=0.0,
                                     annual_air_quality_improvement=0.0,
                                     annual_co2_sequestered=0.0,
                                     annual_co2_avoided=0.0,
                                     annual_co2_reduced=0.0,
                                     total_co2_stored=0.0,
                                     annual_ozone=0.0,
                                     annual_nox=0.0,
                                     annual_pm10=0.0,
                                     annual_sox=0.0,
                                     annual_voc=0.0,
                                     annual_bvoc=0.0,
                                     total_trees=0,
                                     total_plots=0,
                                     location=n1)

        agn2 = AggregateNeighborhood(annual_stormwater_management=0.0,
                                     annual_electricity_conserved=0.0,
                                     annual_energy_conserved=0.0,
                                     annual_natural_gas_conserved=0.0,
                                     annual_air_quality_improvement=0.0,
                                     annual_co2_sequestered=0.0,
                                     annual_co2_avoided=0.0,
                                     annual_co2_reduced=0.0,
                                     total_co2_stored=0.0,
                                     annual_ozone=0.0,
                                     annual_nox=0.0,
                                     annual_pm10=0.0,
                                     annual_sox=0.0,
                                     annual_voc=0.0,
                                     annual_bvoc=0.0,
                                     total_trees=0,
                                     total_plots=0,
                                     location=n2)

        agn1.save()
        agn2.save()

        self.agn1 = agn1
        self.agn2 = agn2

        self.z1 = z1
        self.z2 = z2
        self.n1 = n1
        self.n2 = n2

        ######
        # And we could use a few species...
        ######
        s1 = Species(symbol="s1", genus="testus1", species="specieius1")
        s2 = Species(symbol="s2", genus="testus2", species="specieius2")

        s1.save()
        s2.save()

        self.s1 = s1
        self.s2 = s2

        #######
        # Create some basic plots
        #######
        ie = ImportEvent(file_name='site_add')
        ie.save()

        self.ie = ie

        p1_no_tree = Plot(geometry=Point(50, 50),
                          last_updated_by=u,
                          import_event=ie,
                          present=True,
                          data_owner=u)
        p1_no_tree.save()

        p2_tree = Plot(geometry=Point(51, 51),
                       last_updated_by=u,
                       import_event=ie,
                       present=True,
                       data_owner=u)
        p2_tree.save()

        p3_tree_species1 = Plot(geometry=Point(50, 100),
                                last_updated_by=u,
                                import_event=ie,
                                present=True,
                                data_owner=u)
        p3_tree_species1.save()

        p4_tree_species2 = Plot(geometry=Point(50, 150),
                                last_updated_by=u,
                                import_event=ie,
                                present=True,
                                data_owner=u)
        p4_tree_species2.save()

        t1 = Tree(plot=p2_tree,
                  species=None,
                  last_updated_by=u,
                  import_event=ie)
        t1.present = True
        t1.save()

        t2 = Tree(plot=p3_tree_species1,
                  species=s1,
                  last_updated_by=u,
                  import_event=ie)
        t2.present = True
        t2.save()

        t3 = Tree(plot=p4_tree_species2,
                  species=s2,
                  last_updated_by=u,
                  import_event=ie)
        t3.present = True
        t3.save()

        self.p1_no_tree = p1_no_tree
        self.p2_tree = p2_tree
        self.p3_tree_species1 = p3_tree_species1
        self.p4_tree_species2 = p4_tree_species2

        self.plots = [p1_no_tree, p2_tree, p3_tree_species1, p4_tree_species2]

        self.t1 = t1
        self.t2 = t2
        self.t3 = t3
 def test_userprofile(self):
     user = User(username='******')
     user.save()
     userprofile = UserProfile(user=user, default_email='*****@*****.**')
     self.assertEqual(str(userprofile), 'testuser, [email protected]')