Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django import forms
- from .models import User
- class USerForm(forms.ModelForm):
- password = forms.CharField(widget=forms.PasswordInput())
- class Meta:
- model = User
- fields = ['username', 'email', 'password', 'company', 'description', 'logo']
- from django.shortcuts import render, redirect
- from django.views.generic import View, TemplateView
- from .forms import USerForm
- from django.contrib.auth import authenticate, login, logout
- from django.http import HttpResponseRedirect
- from django.contrib.auth.decorators import login_required
- from django.contrib import messages
- from django.views.generic.edit import UpdateView
- # Create your views here.
- @login_required(login_url="/jembe/login/")
- def index(request):
- return render(request, 'base.html')
- class SignUp(View):
- form_class = USerForm
- template_name = 'signup.html'
- def get(self, request):
- form = self.form_class(None)
- return render(request, self.template_name, {'form': form})
- def post(self, request):
- form = self.form_class(request.POST, request.FILES)
- if form.is_valid():
- user = form.save(commit=False)
- username = form.cleaned_data['username']
- password = form.cleaned_data['password']
- user.set_password(password)
- user.save()
- user = authenticate(username=username, password=password)
- if user is not None:
- if user.is_active:
- login(request, user)
- return redirect('invoice:index')
- return render(request, self.template_name, {'form': form})
- class LogoutView(View):
- def get(self, request):
- logout(request)
- return HttpResponseRedirect('/jembe/login')
- class AboutView(TemplateView):
- template_name = "about.html"
- `from django.db import models
- from django.contrib.auth.models import AbstractUser
- # Create your models here.
- class User(AbstractUser):
- company = models.CharField(max_length=300)
- description = models.TextField(blank=True)
- website = models.URLField()
- logo = models.ImageField(upload_to='../media/')
- `
- {% load staticfiles %}
- {% load i18n widget_tweaks %}
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="description" content="">
- <meta name="author" content="">
- <link rel="shortcut icon" href="img/favicon_1.ico">
- <title>{% block title %} Signup {% endblock %} |Jims</title>
- ""
- <!-- Bootstrap core CSS -->
- <link href="{% static 'login/css/bootstrap.min.css' %}" rel="stylesheet">
- <link href="{% static 'login/css/bootstrap-reset.css' %}" rel="stylesheet">
- <!--Animation css-->
- <link href="{% static 'login/css/animate.css' %}" rel="stylesheet">
- <!--Icon-fonts css-->
- <link href="{% static 'login/assets/font-awesome/css/font-awesome.css' %}" rel="stylesheet" />
- <link href="{% static 'login/assets/ionicon/css/ionicons.min.css' %}" rel="stylesheet" />
- <!--Morris Chart CSS -->
- <link rel="stylesheet" href="{% static 'login/assets/morris/morris.css">
- <!-- Custom styles for this template -->
- <link href="{% static 'login/css/style.css' %}" rel="stylesheet">
- <link href="{% static 'login/css/helper.css' %}" rel="stylesheet">
- <link href="{% static 'css/style.css' %}" rel="stylesheet">
- <link href="{% static 'css/bootstrap.css' %}" rel="stylesheet">
- <link href="{% static 'css/main.css' %}" rel="stylesheet">
- <link rel='stylesheet prefetch' href='http://fonts.googleapis.com/css?family=Roboto:400,100,300,500,700,900|RobotoDraft:400,100,300,500,700,900'>
- <link rel='stylesheet prefetch' href='http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css'>
- <!-- HTML5 shim and Respond.js IE8 support of HTML5 tooltipss and media queries -->
- <!--[if lt IE 9]>
- <script src="js/html5shiv.js"></script>
- <script src="js/respond.min.js"></script>
- <![endif]-->
- <script>
- (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
- (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
- m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
- })(window,document,'script','../../../www.google-analytics.com/analytics.js','ga');
- ga('create', 'UA-62751496-1', 'auto');
- ga('send', 'pageview');
- </script>
- </head>
- <body>
- <div class="navbar navbar-default navbar-fixed-top">
- <div class="container">
- <div class="navbar-header">
- <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </button>
- <a class="navbar-brand" href=""><div class="logo">
- <a href="" class="logo-expanded">
- <i class="ion-compose"></i>
- <span class="nav-label">Jigs</span>
- </a>
- </div></a>
- </div>
- <div class="navbar-collapse collapse">
- <ul class="nav navbar-nav navbar-right">
- <li><a href=""><strong>About</strong></a></li>
- <li><a href=""><strong>Login</strong></a></li>
- <li><a href=""><strong>Register</strong></a></li>
- </ul>
- </div><!--/.nav-collapse -->
- </div>
- </div>
- <div class="wrapper-page animated fadeInDown">
- <div class="panel panel-color panel-primary">
- <div class="panel-heading">
- <h3 class="text-center m-t-10"> Create a new Account </h3>
- </div>
- {# error logic #}
- {% if form.errors %}
- {% for field in form %}
- {% for error in field.errors %}
- <div class="alert alert-danger">
- <strong>{{ error | escape }}</strong>
- </div>
- {% endfor %}
- {% for error in form.non_field_errors %}
- <div class="alert alert-danger">
- <strong> {{ error | escape }}</strong>
- </div>
- {% endfor %}
- {% endfor %}
- {% endif %}
- {# end error logic #}
- <form class="form-horizontal m-t-40" action="" method="post">
- {% csrf_token %}
- {% for field in form %}
- <div class="form-group">
- <div class="col-xs-12">
- <label> {{ field.label }} </label>
- {{ field|attr:"class:form-control" }}
- </div>
- </div>
- {% endfor %}
- <div class="form-group ">
- <div class="col-xs-12">
- <label class="cr-styled">
- <input type="checkbox" checked>
- <i class="fa"></i>
- I accept <strong><a href="#">Terms and Conditions</a></strong>
- </label>
- </div>
- </div>
- <div class="form-group text-right">
- <div class="col-xs-12">
- <button class="btn btn-purple w-md" type="submit">Register</button>
- </div>
- </div>
- <div class="form-group m-t-30">
- <div class="col-sm-12 text-center">
- <a href="{% url 'invoice:login' %}">Already have account?</a>
- </div>
- </div>
- </form>
- </div>
- </div>
- <!-- js placed at the end of the document so the pages load faster -->
- <script src="{% static 'login/js/jquery.js' %}"></script>
- <script src="{% static 'login/js/bootstrap.min.js' %}"></script>
- <script src="{% static 'login/js/pace.min.js' %}"></script>
- <script src="{% static 'login/js/wow.min.js' %}"></script>
- <script src="{% static 'login/js/jquery.nicescroll.js' %}" type="text/javascript"></script>
- <!--common script for all pages-->
- <script src="{% static 'login/js/jquery.app.js' %}"></script>
- <hr/>
- <center><h3 class="text text-success"> Jembe™ © 2017</h3></center>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement