Пример #1
0
def init_db():
    '''
    project1 = Project(location=1, number_participants=2)
    project1.save()
    project2 = Project(location=1, number_participants=1, part_of=project1)
    project2.save()

    user = UserAccount(username="******", email="*****@*****.**", firstname="hans", lastname="mueller", preference="none")
    user = UserAccount(username="******", email="*****@*****.**", firstname="carlo", lastname="arndt", preference="none")
    user.save()
    '''

    business = BusinessAccount(email='*****@*****.**',
                               company_name='business1',
                               fee=10.10,
                               bank_account='AT123456789123')
    business.save()

    organization = Organization(focus='sth',
                                name='brot fuer die Welt',
                                employees=1200,
                                business=business)
    organization.save()

    project = Project(location=2,
                      number_participants=12,
                      organization=organization)
    project.save()
Пример #2
0
    def post(self, request, *args, **kwargs):
	org_name = request.POST.get('org_name','')
	org_contact = request.POST.get('org_contact','')
	org_email = request.POST.get('org_email','')
	org_password = request.POST.get('org_password','')
	org_password1 = request.POST.get('org_password1','')
	org_address = request.POST.get('org_address','')
	org_url = request.POST.get('org_url','')

        if org_password != org_password1:
            messages.success(request, 'Password did not match ')
            return HttpResponseRedirect('/organization/create')
        else:
	    org = Organization()
	    org.org_name = org_name
	    org.org_url = org_url	    
	    org.street = org_address
	    org.email = org_email
            org.password = org_password
	    org.org_url = org_url
	    pin  ='REG_'+str(random.randint(56,100022))
 	    org.org_pin = pin
	    org.save()
	    send_mail('Your User Registration pin on Myconfec','Thanks for registring with us ask your users to enter '+pin+'  to register.','*****@*****.**',[org_email])

	    messages.success(request, 'Profile created please check your email for pin.')

	    return HttpResponseRedirect('/organization/create')
Пример #3
0
 def insertAttorneys(self):
     """Insert attorneys one-by-one
     """
     out = []
     for a in self.attorneys:
         try:
             org = Organization.objects(
                 organization_name=self.clean_up(a["organization_name"])
                 ).modify(
                     upsert=True, new=True,
                     set__organization_name=self.clean_up(a["organization_name"])
                 ).save()
             attorney = Attorney(
                 first_name=self.clean_up(a["first_name"]),
                 last_name=self.clean_up(a["last_name"]),
                 email_address=self.clean_up(a["email_address"]),
                 organization_name=org.organization_name,
                 records=a["records"]
             ).save()
             out.append(json_util.dumps(attorney))
         except:
             print(a)
             Attorney.drop_collection()
             Organization.drop_collection()
             raise
     return out
Пример #4
0
def organizations(organization_id=None):
    if organization_id is not None:
        return dumps({
            "organization_name": Organization.objects(id=organization_id)
                                             .first().organization_name
        })
    return dumps(Organization.dump_list())
Пример #5
0
def populate_db():
    with app.app_context():
        o = Organization('Testing', '555-512-1234')
        db.session.add(Organization('Real Estate', '555-555-5555'))
        db.session.add(Organization('Insurance', '555-555-5556'))
        db.session.add(Organization('Private Equity', '555-555-5557'))
        db.session.commit()
Пример #6
0
def _organization(slug):
    """
    Organization detail page.
    """
    context = make_context()

    ago = get_ago()
    
    organization = Organization.get(Organization.slug==slug)
    organizations = Organization.select().join(Expenditure).where(Expenditure.report_period >= ago).distinct()

    for o in organizations:
        o.total_spending = o.expenditures.where(Expenditure.report_period >= ago).aggregate(fn.Sum(Expenditure.cost))

    organizations_total_spending = sorted(organizations, key=lambda o: o.total_spending, reverse=True)
    
    organization_rank = None

    for i, o in enumerate(organizations_total_spending):
        if o.id == organization.id:
            organization_rank = i + 1

    legislator_spending = {}

    for ex in organization.expenditures:
        # Groups or old/non-attributable expenses
        if not ex.legislator:
            continue

        if ex.legislator.id in legislator_spending:
            legislator_spending[ex.legislator.id] += ex.cost
        else:
            legislator_spending[ex.legislator.id] = ex.cost

    top_legislators = []

    for legislator_id, spending in legislator_spending.items():
        legislator = Legislator.get(Legislator.id == legislator_id)
        legislator.total_spending = spending
        top_legislators.append(legislator)

    top_legislators = sorted(top_legislators, key=lambda o: o.total_spending, reverse=True)[:10]

    context['organization'] = organization
    context['expenditures_recent'] = organization.expenditures.where(Expenditure.report_period >= ago).order_by(Expenditure.cost.desc())
    context['total_spending'] = sum([e.cost for e in organization.expenditures]) 
    context['total_spending_recent'] = sum([e.cost for e in organization.expenditures.where(Expenditure.report_period >= ago)]) 
    context['total_expenditures'] = organization.expenditures.count()
    context['total_expenditures_recent'] = organization.expenditures.where(Expenditure.report_period >= ago).count()
    context['top_legislators'] = top_legislators 
    context['organization_rank'] = organization_rank

    return render_template('organization.html', **context)
Пример #7
0
def organizations_management():
    if request.method == "POST":
        form = CreateOrganizationForm(request.form)
        if form.validate():
            org = Organization(name=form.short_name.data, full_name=form.full_name.data)
            org.put()
    else:
        form = CreateOrganizationForm()
    
    existing_orgs = Organization.query().fetch(100)    
    
    return render_template("admin/organizations.html",
                            existing_orgs=existing_orgs,
                            form=form)
Пример #8
0
    def get_orgs(self):
        url = 'http://registry.usa.gov/accounts.json?service_id=github'

        r = requests.get(url)
        if r.status_code == 200:
            for acct in r.json['accounts']:
                org = Organization.query.filter_by(username=acct['account']).first()
                if org is None:
                    org = Organization()
                    org.name = acct['organization']
                    org.username = acct['account']
                    db.session.add(org)
            db.session.commit()
        else:
            print 'Error importing organizations'
Пример #9
0
def organizations_management():
    if request.method == "POST":
        form = CreateOrganizationForm(request.form)
        if form.validate():
            org = Organization(name=form.short_name.data,
                               full_name=form.full_name.data)
            org.put()
    else:
        form = CreateOrganizationForm()

    existing_orgs = Organization.query().fetch(100)

    return render_template("admin/organizations.html",
                           existing_orgs=existing_orgs,
                           form=form)
Пример #10
0
	def get(self):
	        self.response.headers['Content-Type'] = 'application/json'
		key = ndb.Key(urlsafe = self.request.get('entity'))

		if key.kind() == 'Organization':
			entity = Organization.get_by_key(key.urlsafe())
		elif key.kind() == 'OU':
			entity = OU.get_by_key(key.urlsafe())
		elif key.kind() == 'CN':
			entity = CN.get_by_key(key.urlsafe())
		logging.warning('DEBUG OrganizationTree - key.kind(): %s' % key.kind())

		if key.kind() in ['Organization', 'OU']:
			name = entity.name
		else:
			name = entity.first_name + ' ' + entity.last_name

		treedict = {'key': entity.key.urlsafe(), 'name': name, 'kind': key.kind()}

		level = treedict

		# Ascending tree
		while key.kind() != 'Organization':
			parent = entity.parent
			if parent.kind() == 'Organization':
				entity = Organization.query(Organization.key == parent).get()
			else:
				entity = OU.query(OU.key == parent).get()
			key = entity.key

			logging.warning('DEBUG OrganizationTree - parent: %s - entity: %s' % (parent, str(entity)))
			entitydict = {'key': entity.key.urlsafe(), 'name': entity.name, 'kind': parent.kind()}
			level['parent'] = entitydict
			level = level['parent']

		children = []
		ouchildren = OU.query(OU.parent == key).fetch()
		for ouchild in ouchildren:
			oudict = {'key': ouchild.key.urlsafe(), 'name': ouchild.name, 'kind': ouchild.key.kind()}
			children.append(oudict)
		cnchildren = CN.query(CN.parent == key).fetch()
		for cnchild in cnchildren:
			cndict = {'key': cnchild.key.urlsafe(), 'name': cnchild.first_name + ' ' + cnchild.last_name, 'kind': cnchild.key.kind()}
			children.append(cndict)

		treedict['child'] = pop_list(treedict)

		self.response.write(json.dumps(treedict))
    def __init__(
            self,  # pylint: disable=too-many-arguments
            user,
            district_factory=None,
            subdistrict_factory=None,
            sporg_factory=None,
            unit_factory=None,
            organization_persister=None):
        self.user = user

        if district_factory:
            self.district_factory = district_factory
        else:
            self.district_factory = District.Factory()
        if subdistrict_factory:
            self.subdistrict_factory = subdistrict_factory
        else:
            self.subdistrict_factory = Subdistrict.Factory()
        if sporg_factory:
            self.sporg_factory = sporg_factory
        else:
            self.sporg_factory = SponsoringOrganization.Factory()
        if unit_factory:
            self.unit_factory = unit_factory
        else:
            self.unit_factory = Unit.Factory()
        if organization_persister:
            self.organization_persister = organization_persister
        else:
            self.organization_persister = Organization.Persister()
Пример #12
0
    def get(self):

        role = self.session.get('role')
        user_session = self.session.get("user")

        if role != "admin" and role != "staff":
            self.redirect("/users/login?message={0}".format(
                "You are not authorized to view this page"))
            return

        if not self.legacy:
            self.redirect("/#/admin/organizations/new")

        form = Organization.NewOrganizationForm()
        template_values = {"form": form, "user_session": user_session}
        language = None
        if "language" in self.request.cookies:
            language = self.request.cookies["language"]
        else:
            language = "fr"
            self.response.set_cookie("language", "fr")

        language = language.replace('"', '').replace("'", "")
        if language == "fr":

            LEGACY_TEMPLATE = JINJA_ENVIRONMENT.get_template(
                'fr_new_organizations.html')
        else:
            LEGACY_TEMPLATE = JINJA_ENVIRONMENT.get_template(
                'new_organizations.html')
        self.response.write(LEGACY_TEMPLATE.render(template_values))
Пример #13
0
def sitemap():
    """
    Renders a sitemap.
    """
    context = make_context()
    context['pages'] = []

    now = datetime.date.today().isoformat()

    context['pages'].append(('/', now))
    context['pages'].append(('/methodology/', now))
    context['pages'].append(('/legislators/', now))
    context['pages'].append(('/organizations/', now))

    for legislator in Legislator.select():
        context['pages'].append((url_for('_legislator',
                                         slug=legislator.slug), now))

    for organization in Organization.select():
        context['pages'].append((url_for('_organization',
                                         slug=organization.slug), now))

    sitemap = render_template('sitemap.xml', **context)

    return (sitemap, 200, {'content-type': 'application/xml'})
Пример #14
0
    def setUp(self):

        app.config['TESTING'] = True
        app.config['WTF_CSRF_ENABLED'] = False
        app.config['DEBUG'] = False
        app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + \
            os.path.join(path, TEST_DB)
        self.app = app.test_client()
        db.drop_all()
        db.create_all()

        #setting up org and users
        org = Organization(name='Test', org_key='12345')
        add_db_entry(org)
        admin = User(organization=org.id,
                     email=self.admin_username,
                     password=generate_password_hash(self.admin_password),
                     name='Admin',
                     role='admin')
        add_db_entry(admin)
        user = User(organization=org.id,
                    email=self.user_username,
                    password=generate_password_hash(self.user_password),
                    name='User',
                    role='user')
        add_db_entry(user)

        self.assertEqual(app.debug, False)
Пример #15
0
 def test_country_5(self):
     c = Country(name='Cowland')
     s = Organization(name='Monthly Milkpost')
     c.organizations.append(s)
     db.session.add(s)
     first = Country.query.first()
     self.assertEqual(len(first.organizations), 1)
Пример #16
0
def handle_organization():
    """
    agrega una organizacion (POST), trae lista de organizaciones (GET)
    """

    # POST request
    if request.method == 'POST':
        body = request.get_json()

        if body is None:
            raise APIException("You need to specify the request body as a json object", status_code=400)
        if 'name' not in body:
            raise APIException('You need to specify the name', status_code=400)
        if 'address' not in body:
            raise APIException('You need to specify the address', status_code=400)
        if 'phone' not in body:
            raise APIException('You need to specify the phone', status_code=400)
        if 'email' not in body:
            raise APIException('You need to specify the email', status_code=400)

        organization1 = Organization(name=body['name'], address=body['address'], phone=body['phone'], email=body['email'])
        db.session.add(organization1)
        db.session.commit()
        return "ok", 200

        # GET request
    if request.method == 'GET':
        all_organization = Organization.query.all()
        all_organization = list(map(lambda x: x.serialize(), all_organization))
        return jsonify(all_organization), 200

    return "Invalid Method", 404
Пример #17
0
    def post(self):
        """
        Create a new Organization
        """

        if "Administrator" != current_user.role:
            return make_response(jsonify({"msg": "Forbidden"}), 403)

        id = request.json.get('id')
        name = request.json.get("name")
        network_id = request.json.get('network_id')

        organization = Organization.query.filter_by(
            name=name, network_id=network_id).first()

        if not organization:  # If no organization exists with that name, then create a new one
            organization = Organization(id=id,
                                        name=name,
                                        network_id=network_id)
            db.session.add(organization)
            db.session.commit()
            ret = {'msg': 'Success'}
            return make_response(jsonify(ret), 200)

        else:
            return make_response(
                jsonify({
                    "msg":
                    "Organization with that name already exists, please try again with a new name."
                }), 400)
Пример #18
0
 def test_article_4(self):
     s = Organization(name='CowNews')
     a = Article(title='Why you shouldn\'t drink your own milk',
                 organization=s)
     db.session.add(a)
     first = Article.query.first()
     self.assertEqual(first.organization.name, 'CowNews')
Пример #19
0
 def test_organization_5(self):
     a = Article(title='Breaking: Milking Postponed Until Saturday')
     s = Organization(name='CowNews')
     s.articles.append(a)
     db.session.add(s)
     first = Organization.query.first()
     self.assertEqual(len(first.articles), 1)
Пример #20
0
def org_create(request):
    form = OrganizationForm()
    if request.method == "POST":
        req_data = {}
        data = request.POST
        user_id = request.session.get("user").get("id")
        up = UserProfile.objects.get(pk=user_id)
        req_data["state"] = State.objects.get(pk=data["state"])
        req_data["city"] = City.objects.get(pk=data["city"])
        req_data["country"] = Country.objects.get(pk=data["country"])
        req_data["user"] = up
        req_data["name"] = data.get("name")
        org = Organization(**req_data)
        org.save()
        return redirect("/userorgs/")
    return render(request, "bloodgroup/organization_form.html", {"form": form})
Пример #21
0
def populate_db():
    with app.app_context():
        db.session.add(
            Organization('San Martin Animal Shelter',
                         '12370 Murphy Ave, San Martin, CA 95046',
                         '(408) 686-3900', 5))
        db.session.commit()
Пример #22
0
 def post(self, org_name):
     """The POST handler for the /orgs/<org_name> endpoint
 
 Arguments:
     org_name {str} -- The organization's name
 
 Returns:
     dict -- A status message
 """
     args = parser.parse_args()
     org = Organization.query.filter_by(name=org_name).first()
     if org:
         return {
             'status': 'error',
             'message': 'This organization already exists!'
         }, 401
     new_org = Organization(org_name)
     db.session.add(new_org)
     db.session.commit()
     # Make user the admin of the new organization
     req_user = this_user()
     new_org_id = Organization.query.filter_by(name=org_name).first().id
     user = User.query.filter_by(id=req_user['id']).first()
     user.org_id = new_org_id
     user.role = 'admin'
     db.session.commit()
     return {'status': 'success'}, 201
Пример #23
0
Файл: utils.py Проект: AASHE/iss
def upsert_organizations(since, get_all=False, max=None):
    """
        Upserts Organizations for MemberSuite objects.
        max is the maximum number of records to return (useful for tests)
        returns organizations modified since `since` days ago
    """
    if not get_all:
        orgs = ms_session.org_service.get_orgs(max_calls=max,
                                               since_when=since,
                                               verbose=True)
    else:
        orgs = ms_session.org_service.get_orgs(max_calls=max, verbose=True)
    if orgs:
        for org in orgs:
            logger.debug('upserting organization for org: "{org}"'.format(
                org=org.account_num))
            Organization.upsert_organization(org=org)
Пример #24
0
def wsRegister(request):
    serialized = UserSerializer(data=request.data)
    if serialized.is_valid():
        serialized.save()
        org = Organization(name=request.POST['company_name'])
        org.save()
        print("user data")
        print(serialized.data['username'])

        user = User.objects.get(username=serialized.data['username'])
        print(user)
        profile = UserProfile(user=user, organization=org)
        profile.save()
        return Response(serialized.data, status=status.HTTP_201_CREATED)
    else:
        print("bad request")
        return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
Пример #25
0
def eval_organizations(elem):
	"""
	Parses data from "<Organization />" tags
	Stores in Django model
	Saves model to mysql database
	"""
	for o in elem :
		assert o.get('ID') != None
		assert o.get('Name') != None
		org = Organization(name = o.get('Name'), wcdb_id = o.get('ID'))
		people = o.find('People')
		org.save()
		list_people = Person.objects.all()
		if (people != None):
			for p in people:
				for person in list_people:
					if (p.get('ID') == person.wcdb_id):
						org.people.add(person)
						break
		kind = o.find('Kind')
		location = o.find('Location')
		hist = o.find('History')
		contact = o.find('ContactInfo')
		common = o.find('Common')
		if(kind != None):
			org.kind = kind.text
		if(location != None):
			org.location =  location.text
		if(hist != None):
				org.history += listings(hist)
		if(contact != None):
				org.contact += listings(contact)
		if(common != None):
			make_common(common, org)
		org.save()
Пример #26
0
def _legislator(slug):
    """
    Legislator detail page.
    """
    context = make_context()

    ago = get_ago()

    legislators = Legislator.select()
    legislator = Legislator.get(Legislator.slug==slug)

    for l in legislators:
        l.total_spending = l.expenditures.where(Expenditure.report_period >= ago).aggregate(fn.Sum(Expenditure.cost))

    legislators_total_spending = sorted(legislators, key=lambda l: l.total_spending, reverse=True)
    
    legislator_rank = None

    for i, l in enumerate(legislators_total_spending):
        if l.id == legislator.id:
            legislator_rank = i + 1

    org_spending = {}

    for ex in legislator.expenditures:
        if ex.organization.id in org_spending:
            org_spending[ex.organization.id] += ex.cost
        else:
            org_spending[ex.organization.id] = ex.cost

    top_organizations = []
    top_categories = {}

    for org_id, spending in org_spending.items():
        org = Organization.get(Organization.id == org_id)
        org.total_spending = spending
        top_organizations.append(org)

        if org.category in top_categories:
            top_categories[org.category] += org.total_spending
        else:
            top_categories[org.category] = org.total_spending

    top_organizations = sorted(top_organizations, key=lambda o: o.total_spending, reverse=True)[:10]
    top_categories = sorted(top_categories.items(), key=lambda c: c[1], reverse=True)

    context['legislator'] = legislator
    context['expenditures_recent'] = legislator.expenditures.where(Expenditure.report_period >= ago).order_by(Expenditure.cost.desc())
    context['total_spending'] = sum([e.cost for e in legislator.expenditures]) 
    context['total_spending_recent'] = sum([e.cost for e in legislator.expenditures.where(Expenditure.report_period >= ago)]) 
    context['total_expenditures'] = legislator.expenditures.count()
    context['total_expenditures_recent'] = legislator.expenditures.where(Expenditure.report_period >= ago).count()
    context['top_organizations'] = top_organizations 
    context['legislator_rank'] = legislator_rank
    context['top_categories'] = top_categories

    return render_template('legislator.html', **context)
Пример #27
0
def organizations():
    """
    Legislator list page.
    """
    context = make_context()

    context['organizations'] = Organization.select().order_by(Organization.name)

    return render_template('organization_list.html', **context)    
Пример #28
0
def create_orga():
    if request.method == 'POST':
        name = request.form['name']
        email = request.form['email']
        telephone = request.form['telephone']
        new_orga = Organization(name, email, telephone)
        db.session.add(new_orga)
        db.session.commit()
        db.session.close()
    return redirect(url_for('show_home'))
Пример #29
0
def kickoff_compute_value():
    org_keys = Organization.query().iter(keys_only=True)
    for org_key in org_keys:
        url = url_for("compute_org_value", organization_key=org_key.urlsafe())
        if DEVELOPMENT:
            taskqueue.add(url=url)
        else:
            taskqueue.add(url=url, target="1.analyzer")

    return redirect(url_for("value"))
Пример #30
0
def organizations():
    """
    Legislator list page.
    """
    context = make_context()

    context['organizations'] = Organization.select().order_by(
        Organization.name)

    return render_template('organization_list.html', **context)
Пример #31
0
def kickoff_compute_value():
    org_keys = Organization.query().iter(keys_only=True)
    for org_key in org_keys:
        url = url_for("compute_org_value", organization_key=org_key.urlsafe())
        if DEVELOPMENT:
            taskqueue.add(url=url)
        else:
            taskqueue.add(url=url, target="1.analyzer")

    return redirect(url_for("value"))
Пример #32
0
	def get(self):
	        self.response.headers['Content-Type'] = 'application/json'
		user = User.get_by_username(self.request.get('username'))
		organization = Organization.get_by_key(self.request.get('organization'))
		organizationUser = OrganizationUser()
		organizationUser.user = user.key
		organizationUser.organization = organization.key
		organizationUser.put()

		self.response.write(json.dumps({'status': 0, 'message': 'El usuario %s fue agregado a la escuela %s.' % (user.first_name + ' ' + user.last_name, organization.name), 'organization': {'key': organization.key.urlsafe(), 'name': organization.name, 'address1': organization.address1, 'address2': organization.address2, 'zipcode': organization.zipcode, 'state': organization.state, 'country': organization.country, 'notes': organization.notes}, 'user': {'key': user.key.urlsafe(), 'first_name': user.first_name, 'last_name': user.last_name}}))
Пример #33
0
 def sync(self):
     consented_organizations = Organization.get_consented()
     if consented_organizations:
         for organization in consented_organizations:
             try:
                 self._sync_organization(organization)
             except:
                 print('Failed to sync users of {0}. Error: {1}'.format(
                     organization.name, sys.exc_info()))
     else:
         print('No consented organization found. This sync was canceled.')
    def get(self):
        args = request.args

        if 'id' in args:
            return me_obj_to_serializable(
                Organization.objects.get(id=args['id']))
        elif 'code' in args:
            return me_obj_to_serializable(
                Organization.objects(code=args['code']))
        else:
            return me_obj_to_serializable(Organization.objects)
Пример #35
0
def merge_organizations(elem):
	"""
	Parses data from "<Organization />" tags
	Stores in Django model
	Saves model to mysql database
	"""
	for o in elem :
		org_filter_obj = Organization.objects.filter(wcdb_id = o.get('ID'))
		if (len(org_filter_obj) != 0):
			org = org_filter_obj[0]	#if org exists, use it
			org.name = o.get('Name')
		else:				#else make a new one
			org = Organization(name = o.get('Name'), wcdb_id = o.get('ID'))
		people = o.find('People')
		org.save()
		list_people = Person.objects.all()
		if (people != None):
			for p in people:
				for person in list_people:
					if (p.get('ID') == person.wcdb_id):
						if(len(org_filter_obj.filter(people__wcdb_id__exact = p.get('ID'))) == 0):
							org.people.add(person)
							break
		kind = o.find('Kind')
		location = o.find('Location')
		hist = o.find('History')
		contact = o.find('ContactInfo')
		common = o.find('Common')
		if (kind != None):
			org.kind = kind.text
		if (location != None):
			org.location =  location.text
		if (hist != None):
			str_hist = org.history.split('\n')
			list_hist = listings(hist).split('\n')
			listunion(str_hist, list_hist)
			org.history = '\n'.join(str_hist)
		if (contact != None):
			str_contact = org.contact.split('\n')
			list_contact = listings(contact).split('\n')
			listunion(str_contact, list_contact)
			org.contact = '\n'.join(str_contact)
		if (common != None):
			merge_common(common, org)
		org.save()
Пример #36
0
def org_edit(id=0):
    setExits()
    id = cleanRecordID(id)
    if id < 0:
        flash("That is not a valid ID")
        return redirect(g.listURL)
     
    timeZones = getTimeZones()
    if not request.form:
        """ if no form object, send the form page """
        # get the Org record if you can
        rec = None
        if int(id) > 0:
            rec = Organization.query.get(id)
            
        return render_template('org/org_edit.html', rec=rec, timeZones=timeZones)
            
            
    #have the request form
    if validForm():
        if id > 0:
            rec = Organization.query.get(id)
        else:
            ## create a new record stub
            rec = Organization(request.form['name'],request.form['email'],request.form["defaultTimeZone"])
            db.session.add(rec)
        #update the record
        rec.name = request.form['name']
        rec.email = request.form['email']
        rec.defaultTimeZone = request.form["defaultTimeZone"]
        try:
            db.session.commit()
        except Exception as e:
            flash(printException('Error attempting to create '+g.title+' record.',"error",e))
            db.session.rollback()
            
        return redirect(url_for('.org_list'))
        
    # form not valid - redisplay
    return render_template('org/org_edit.html', rec=request.form, timeZones=timeZones)
Пример #37
0
def create_organization(current_user):
    if not current_user.admin:
        return jsonify({'message': 'This endpoint is not allowed!'})

    data = request.get_json()
    hashed_pw = generate_password_hash(data['password'], method='sha256')
    new_org = Organization(public_id=str(uuid.uuid4()),
                           name=data['name'],
                           password=hashed_pw,
                           admin=False)
    db.session.add(new_org)
    db.session.commit()
    return jsonify({"message": "New Organization Created!"})
Пример #38
0
def org_detail(request, pk):
    """ The public profile of an organization.

    Visible to users/organizations in the same networks.
    Displays the organization's name, logo, description, team members, most recent
    shared content, admin email addresses.
    """

    organization = get_object_or_404(Organization, pk=pk)

    users = Organization.get_org_users(organization)

    return render(request, 'editorial/organizationdetail.html', {'organization': organization})
    def post(self):

        json = request.json
        abort_if_invalid_request_params(json, ['code', 'name'])

        organization = Organization()
        organization.code = json['code']
        organization.name = json['name']

        if 'description' in json:
            organization.description = json['description']

        organization.save()
        return me_obj_to_serializable(organization)
    def test_nonmember_cannot_editor_private_repo(self):
        user = User(username="******",
                    password="******",
                    display_name="Display Name",
                    email="*****@*****.**")
        org = Organization(name="org", display_name="Organization")
        Repository(organization=org,
                   name="repo",
                   display_name="A Repository",
                   is_public=False)

        self.session.add(user)
        self.session.commit()

        self.assertFalse(
            RepositoryUserMapManager.is_editable(self.session, "username",
                                                 "org", "repo"))
Пример #41
0
def index():
    """
    Example view demonstrating rendering a simple HTML page.
    """
    context = make_context()

    ago = get_ago()

    expenditures = Expenditure.select().where(Expenditure.report_period >= ago)
    organizations = Organization.select().join(Expenditure).where(Expenditure.report_period >= ago).distinct()
    lobbyists = Lobbyist.select().join(Expenditure).where(Expenditure.report_period >= ago).distinct()
    legislators = Legislator.select().join(Expenditure).where(Expenditure.report_period >= ago).distinct()

    for legislator in legislators:
        legislator.total_spending = legislator.expenditures.where(Expenditure.report_period >= ago).aggregate(fn.Sum(Expenditure.cost))

    legislators_total_spending = sorted(legislators, key=lambda l: l.total_spending, reverse=True)[:10]
    
    categories_total_spending = {}

    for org in organizations:
        org.total_spending = org.expenditures.where(Expenditure.report_period >= ago).aggregate(fn.Sum(Expenditure.cost))

        if not org.total_spending:
            continue

        if org.category in categories_total_spending:
            categories_total_spending[org.category] += org.total_spending
        else:
            categories_total_spending[org.category] = org.total_spending

    organizations_total_spending = sorted(organizations, key=lambda o: o.total_spending, reverse=True)[:10]
    categories_total_spending = sorted(categories_total_spending.items(), key=lambda c: c[1], reverse=True)

    context['senators'] = Legislator.select().where(Legislator.office == 'Senator')
    context['representatives'] = Legislator.select().where(Legislator.office == 'Representative')
    context['expenditures'] = expenditures
    context['total_spending'] = expenditures.aggregate(fn.Sum(Expenditure.cost)) 
    context['total_expenditures'] = expenditures.count()
    context['total_organizations'] = organizations.count()
    context['total_lobbyists'] = lobbyists.count()
    context['organizations_total_spending'] = organizations_total_spending
    context['legislators_total_spending'] = legislators_total_spending
    context['categories_total_spending'] = categories_total_spending

    return render_template('index.html', **context)
Пример #42
0
 def post(self):
   """Handles POST requests for /orgs endpoint
   
   Returns:
       dict -- Status message
   """
   try:
     args = parser.parse_args()
     auth = args['secret']
     if auth != auth_key:
       return {'message': 'Bad secret'}, 401
     organization = Organization(name=args['name'], phone_number=args['phone_number'])
     db.session.add(Organization)
     db.session.commit()
     return {'message': 'success'}
   except Exception as e:
     traceback.print_exc()
     return generic_400(e)
Пример #43
0
	def get(self):
	        self.response.headers['Content-Type'] = 'application/json'

		user = User.get_by_username(self.request.get('username'))
		organizationUser = OrganizationUser.fetch_organizations_by_user(user.key)

		organizationlist = []
		for organizationU in organizationUser:
			organization = Organization.get_by_key(organizationU.organization.urlsafe())

			# Fix the issue if an organization's owner is not defined
			if organization.owner is None:
				organization.owner = user.key
				organization.put()

			organizationdict = {'status': 0, 'message': 'Organization list.', 'organization': {'key': organization.key.urlsafe(), 'owner': organization.owner.urlsafe(), 'name': organization.name, 'address1': organization.address1, 'address2': organization.address2, 'zipcode': organization.zipcode, 'state': organization.state, 'country': organization.country, 'notes': organization.notes}}
			organizationlist.append(organizationdict)
		self.response.write(json.dumps(organizationlist))
Пример #44
0
    def top_3(self, request):
        """ Top 3 Organization of filter API Endpoint."""

        # Currently only can get top 3 of category.

        query_params = self.request.query_params

        category = query_params.get('category', '')

        # TODO Return Top3 of all categories
        if not category:
            # Return empty response
            return Response([])

        top_3 = Organization.top_3_of_category(category)

        org_serializer = self.get_serializer(top_3, many=True)

        return Response(org_serializer.data)
    def test_repo_editor_can_editor_private_repo(self):
        user = User(username="******",
                    password="******",
                    display_name="Display Name",
                    email="*****@*****.**")
        org = Organization(name="org", display_name="Organization")
        OrganizationUserMap(organization=org, user=user, role_shortname='M')
        repo = Repository(organization=org,
                          name="repo",
                          display_name="A Repository",
                          is_public=False)
        RepositoryUserMap(repository=repo, user=user, role_shortname='E')

        self.session.add(user)
        self.session.commit()

        self.assertTrue(
            RepositoryUserMapManager.is_editable(self.session, "username",
                                                 "org", "repo"))
Пример #46
0
 def post(self, org_name):
     args = parser.parse_args()
     org = Organization.query.filter_by(name=org_name).first()
     if org:
         return {
             'status': 'error',
             'message': 'This organization already exists!'
         }, 401
     new_org = Organization(org_name)
     db.session.add(new_org)
     db.session.commit()
     # Make user the admin of the new organization
     token = AuthToken.query.filter_by(data=args['Auth-Token']).first()
     req_user = User.query.filter_by(id=token.user_id).first()
     new_org_id = Organization.query.filter_by(name=org_name).first().id
     req_user.org_id = new_org_id
     req_user.role = 'admin'
     db.session.commit()
     return {'status': 'success'}, 201
Пример #47
0
def userRegisteration(request: User, db: Session = Depends(get_db)):

    id_uid = id_uuids()
    organization = Organization(id=id_uid, name=request.organization_name)
    db.add(organization)
    db.commit()
    db.refresh(organization)

    id_uid = id_uuids()
    tenant = Tenant(id=id_uid,
                    name=request.tenant_name,
                    company_logo=request.company_logo,
                    organization_id=organization.id)
    db.add(tenant)
    db.commit()
    db.refresh(tenant)

    role = db.query(
        models.Role).filter(models.Role.name == "tenentAdmin").first()
    if role:
        print(role.id)

    else:

        role = Role(id=id_uid, name="tenentAdmin")
        db.add(role)
        db.commit()
        db.refresh(role)

        # atuo generate password
    a = randoms()
    password = str(a)
    Tenantuser = TenantUser(id=id_uid,
                            username=request.username,
                            role_id=role.id,
                            password=password,
                            tenant_id=tenant.id)
    db.add(Tenantuser)
    db.commit()
    db.refresh(Tenantuser)

    return {organization, tenant, Tenantuser}
Пример #48
0
def team_list(request):
    """ Return teams list.

    Displays team members from the user's own organization.
    Displays team members from any network that the user's organization is part of.
    """

    # the user's organization
    organization = request.user.organization
    networks = Organization.get_org_networks(organization)

    # form for adding a new user to the team
    adduserform = AddUserForm()
    # only visible for admin users

    return render(request, 'editorial/team.html', {
        'organization': organization,
        'networks': networks,
        'adduserform': adduserform,
        })
Пример #49
0
def run_analysis(org_key=None):
    """
    Task that deletes all existing CombinedUsers and regenerates them from the
    underlying IntakeUsers. This task can take a long time to run, so it should
    be run on a dedicated instance. 
    """
    DELETE_BATCH = 500
    ANALYZE_BATCH = 50
    
    # Clear out the existing combined users    
    cu_query = CombinedUser.query()
    if org_key:
        org_key = ndb.Key(urlsafe=org_key)
        cu_query = cu_query.filter(CombinedUser.orgs == org_key)
    
    while True:
        results, cursor, more = cu_query.fetch_page(DELETE_BATCH, keys_only=True)
        ndb.delete_multi(results)
        if not more:
            break            
    
    # Analyze all the intake users, on a per-organization basis  
    if org_key:
        org_keys = [org_key]
    else:
        org_keys = Organization.query().iter(keys_only=True)
    
    for org_key in org_keys:
        counter_key = "analysis::run_count::%s" % org_key.urlsafe()
        memcache.set(key=counter_key, value=0)
        
        iu_query = IntakeUser.query(IntakeUser.org == org_key)        
        for iu_key in iu_query.iter(keys_only=True):
            memcache.incr(counter_key)            
            #deferred.defer(analyze_user, intake_user_key=iu_key)
            analyze_user(iu_key)
        
        generate_csv(org_key.get().name)

    return "Great Success"
Пример #50
0
def analysis():
    orgs = Organization.query().fetch(50)

    orgs_info = {}   
    for org in orgs:
        total_users = IntakeUser.query(IntakeUser.org == org.key).count()
        if total_users == 0:
            continue            
        orgs_info[org.name] = {}
        counter_key = "analysis::run_count::%s" % org.key.urlsafe()
        orgs_info[org.name]["analyzed_users"] = memcache.get(counter_key)
        orgs_info[org.name]["total_users"] = total_users
        orgs_info[org.name]["org_key"] = org.key.urlsafe()
    
    if request.method == "POST":
        org_key = request.form.get("org_key", None)            
        taskqueue.add(url=url_for("run_analysis", org_key=org_key), 
                      target="analyzer")
        return redirect(url_for("analysis"))

    return render_template("admin/analysis.html",
                            orgs_info=orgs_info)
Пример #51
0
def sitemap():
    """
    Renders a sitemap.
    """
    context = make_context()
    context['pages'] = []

    now = datetime.date.today().isoformat()

    context['pages'].append(('/', now))
    context['pages'].append(('/methodology/', now))
    context['pages'].append(('/legislators/', now))
    context['pages'].append(('/organizations/', now))

    for legislator in Legislator.select():
        context['pages'].append((url_for('_legislator', slug=legislator.slug), now))

    for organization in Organization.select():
        context['pages'].append((url_for('_organization', slug=organization.slug), now))

    sitemap = render_template('sitemap.xml', **context)

    return (sitemap, 200, { 'content-type': 'application/xml' })
Пример #52
0
def generate_csv(org_name):
    org = Organization.query(Organization.name == org_name).get()
    combined_users = CombinedUser.query(CombinedUser.orgs == org.key)
    
    rv = "UserID,LegitScore,Memberships,Transactions,Reviews,PositiveReviewPercentage,Bannings,Facebook,Twitter,Linkedin\n"
    for cu in combined_users:
        org_user_id = [ui for ui in cu.user_id if ui.startswith(org_name)][0]
        has_facebook = 1 if cu.facebook_id else 0
        has_twitter = 1 if cu.twitter_id else 0
        has_linkedin = 1 if cu.linkedin_id else 0
        rv += ("%s,%.1f,%d,%d,%d,%.2f,%d,%d,%d,%d\n" % 
                    (org_user_id,
                     cu.legit_report["legitscore"],
                     cu.legit_report["lrg_reputation"]["marketplace_memberships"],
                     cu.legit_report["lrg_reputation"]["total_transactions"],
                     cu.legit_report["lrg_reputation"]["total_reviews"],
                     cu.legit_report["lrg_reputation"]["overall_positive_feedback"],
                     len(cu.legit_report["lrg_reputation"]["permanent_removals"]),
                     has_facebook,
                     has_twitter,
                     has_linkedin))
    
    #logging.info("CSV FILE")
    #logging.info(rv)
                     
    file_name = files.blobstore.create(mime_type='text/plain',
                                       _blobinfo_uploaded_filename="%s-analysis" % org_name)
    with files.open(file_name, 'a') as f:
        f.write(rv)
        
    files.finalize(file_name) 
    blob_key = files.blobstore.get_blob_key(file_name)
    
    ar = AnalysisReport.query(AnalysisReport.org_name == org_name).get() or AnalysisReport(org_name=org_name)
    ar.blob_key = blob_key
    ar.put()
 def organization_with_id(self, organization_id):
     return Organization.get(Organization.id == organization_id)
Пример #54
0
def register(request):
    if is_registration_disabled():
        raise Http404

    user = request.user
    title = "Registration"

    try:
        definition = ZosiaDefinition.objects.get(active_definition=True)
    except Exception:
        raise Http404

    price_overnight             = definition.price_overnight
    price_overnight_breakfast   = definition.price_overnight_breakfast
    price_overnight_dinner      = definition.price_overnight_dinner
    price_overnight_full        = definition.price_overnight_full
    price_organization          = definition.price_organization
    price_transport             = definition.price_transport
    date_1, date_2, date_3, date_4 = definition.zosia_start, (definition.zosia_start + timedelta(days=1)),\
                                                 (definition.zosia_start + timedelta(days=2)),\
                                                 (definition.zosia_start + timedelta(days=3))
    city                        = definition.city
    # login_form = LoginForm()

    #if user.is_authenticated:
    #    return HttpResponseRedirect('/blog/')

    free_seats = UserPreferences.get_free_seats()

    if request.method == 'POST':
        form = RegisterForm(request.POST)
        if form.is_valid():
            email    = form.cleaned_data['email']
            password = form.cleaned_data['password']
            username = form.cleaned_data['email']
            try:
                user = User.objects.get(email=email)
                return HttpResponseRedirect('/password_reset/')
            except User.DoesNotExist:
                user = User.objects.create_user(email, email, password)
                user.first_name = form.cleaned_data['name']
                user.last_name  = form.cleaned_data['surname']
                user.is_active = False
                # send activation mail
                t = loader.get_template("activation_email.txt")
                try:
                    definition = ZosiaDefinition.objects.get(active_definition=True)
                except Exception:
                    raise Http404
                c = {
                    'site_name': RequestSite(request),
                    'uid': int_to_base36(user.id),
                    'token': token_generator.make_token(user),
                    'payment_deadline': definition.payment_deadline,
                }
                send_mail( _('activation_mail_title'),
                            t.render(Context(c)),
                           '*****@*****.**',
                            [ user.email ],
                            fail_silently=True )
                user.save()
            #saving organization
            try:
                org1 = form.cleaned_data['organization_1']
                org2 = form.cleaned_data['organization_2']
                if org1 == 'new':
                    org = Organization(name=org2, accepted=False)
                    org.save()
                else:
                    org = Organization.objects.get(id=org1)
            except Exception:
                org = Organization("fail",accepted=False)
                org.save()
            prefs = UserPreferences(user=user)
            prefs.org         = org
            prefs.day_1       = form.cleaned_data['day_1']
            prefs.day_2       = form.cleaned_data['day_2']
            prefs.day_3       = form.cleaned_data['day_3']
            prefs.breakfast_2 = form.cleaned_data['breakfast_2']
            prefs.breakfast_3 = form.cleaned_data['breakfast_3']
            prefs.breakfast_4 = form.cleaned_data['breakfast_4']
            prefs.dinner_1    = form.cleaned_data['dinner_1']
            prefs.dinner_2    = form.cleaned_data['dinner_2']
            prefs.dinner_3    = form.cleaned_data['dinner_3']
            if not free_seats:
                prefs.bus         = False
            else:
                prefs.bus         = form.cleaned_data['bus']
            prefs.vegetarian  = form.cleaned_data['vegetarian']
            prefs.shirt_size  = form.cleaned_data['shirt_size']
            prefs.shirt_type  = form.cleaned_data['shirt_type']
            prefs.minutes_early = 0
            prefs.save()
            return HttpResponseRedirect('/register/thanks/')
    else:
        form = RegisterForm()
    return render_to_response('register_form.html', locals())
 def organization_with_name(self, name):
     return Organization.get(Organization.name == 'Cancer Awareness Organization')
Пример #56
0
def register(request):
    if is_registration_disabled():
        raise Http404

    user = request.user
    title = "Registration"
    # login_form = LoginForm()

    #if user.is_authenticated:
    #    return HttpResponseRedirect('/blog/')

    if request.method == 'POST':
        form = RegisterForm(request.POST)
        if form.is_valid():
            email    = form.cleaned_data['email']
            password = form.cleaned_data['password']
            username = form.cleaned_data['email']
            try:
                user = User.objects.get(email=email)
                return HttpResponseRedirect('/password_reset/')
            except User.DoesNotExist:
                user = User.objects.create_user(email, email, password)
                user.first_name = form.cleaned_data['name']
                user.last_name  = form.cleaned_data['surname']
                user.is_active = False
                # send activation mail
                t = loader.get_template("activation_email.txt")
                c = {
                    'site_name': RequestSite(request),
                    'uid': int_to_base36(user.id),
                    'token': token_generator.make_token(user),
                }
                send_mail( _('activation_mail_title'), 
                            t.render(Context(c)),
                           '*****@*****.**',
                            [ user.email ], 
                            fail_silently=True )
                user.save()
            #saving organization
            try:
                org1 = form.cleaned_data['organization_1']
                org2 = form.cleaned_data['organization_2']
                if org1 == 'new':
                    org = Organization(name=org2, accepted=False)
                    org.save()
                else:
                    org = Organization.objects.get(id=org1)
            except Exception:
                org = Organization("fail",accepted=False)
                org.save()
            prefs = UserPreferences(user=user)
            prefs.org         = org
            prefs.day_1       = form.cleaned_data['day_1']
            prefs.day_2       = form.cleaned_data['day_2']
            prefs.day_3       = form.cleaned_data['day_3']
            prefs.breakfast_2 = form.cleaned_data['breakfast_2']
            prefs.breakfast_3 = form.cleaned_data['breakfast_3']
            prefs.breakfast_4 = form.cleaned_data['breakfast_4']
            prefs.dinner_1    = form.cleaned_data['dinner_1']
            prefs.dinner_2    = form.cleaned_data['dinner_2']
            prefs.dinner_3    = form.cleaned_data['dinner_3']
            prefs.bus         = form.cleaned_data['bus']
            prefs.vegetarian  = form.cleaned_data['vegetarian']
            prefs.shirt_size  = form.cleaned_data['shirt_size']
            prefs.shirt_type  = form.cleaned_data['shirt_type']
            prefs.save()
            return HttpResponseRedirect('/register/thanks/')
    else:
        form = RegisterForm()
    return render_to_response('register_form.html', locals())
Пример #57
0
    def get(self):
        self.response.headers['Content-Type'] = 'application/json'

	user = User.get_by_username(self.request.get('username'))
	new = False
	if len(self.request.get('organization')) > 0:
		organization = Organization.get_by_key(self.request.get('organization'))
	else:
		new = True
		organization = Organization()
		organization.owner = user.key

	if new or len(self.request.get('name')) > 0:
		organization.name = self.request.get('name')
	if new or len(self.request.get('owner')) > 0:
		organization.owner = self.request.get('owner')
	if new or len(self.request.get('address1')) > 0:
		organization.address1 = self.request.get('address1')
	if new or len(self.request.get('address2')) > 0:
		organization.address2 = self.request.get('address2')
	if new or len(self.request.get('city')) > 0:
		organization.city = self.request.get('city')
	if new or len(self.request.get('zipcode')) > 0:
		organization.zipcode = self.request.get('zipcode')
	if new or len(self.request.get('state')) > 0:
		organization.state = self.request.get('state')
	if new or len(self.request.get('country')) > 0:
		organization.country = self.request.get('country')
	if new or len(self.request.get('phone')) > 0:
		organization.phone = self.request.get('phone')
	if new or len(self.request.get('notes')) > 0:
		organization.notes = self.request.get('notes')
	organization.put()

	if OrganizationUser.get_combo(user.key, organization.key) is None:
		organizationUser = OrganizationUser()
		organizationUser.user = user.key
		organizationUser.organization = organization.key
		organizationUser.put()

	self.response.write(json.dumps({'status': 0, 'message': 'La escuela fue agregada/modificada.', 'organization': {'key': organization.key.urlsafe(), 'name': organization.name, 'address1': organization.address1, 'address2': organization.address2, 'zipcode': organization.zipcode, 'state': organization.state, 'country': organization.country, 'notes': organization.notes}}))
Пример #58
0
Bitmymoney
id: ivMaXfSHBQ9hBq5igz5nU1



"""
from models import Organization, Book, Account, JournalEntry


if __name__ == "__main__":
    import logging

    logging.basicConfig(level=logging.INFO)

    (id_, secret) = file('subledger.secret').read().strip().split()
    Organization.authenticate(id_, secret)

    org_id = 'ivMaXfSHBQ9hBq5igz5nU1'

    #o = Organization.from_id(org_id)
    #print o

    # Test if we can skip loading the Org first
    from base import Dummy

    o = Dummy()
    o._id = org_id
    #b = Book(a._id, 'XBT')
    #b.save()

    #b = Book.from_id(u'nFCZ2CIDfIkaY1f6b7bBG4', a._id)
Пример #59
0
def register(request):
    if request.method == 'POST':
        username = request.POST.get('username', '')
        email = request.POST.get('email', '')
        password = request.POST.get('password', '')
        cellphone = request.POST.get('cellphone', '')
        companyName = request.POST.get('companyName', '')
        servercnt = request.POST.get('servercnt', '')
        organization_name = companyName
        sub_domain_name = request.POST.get('sub_domain', '')
        if not User.objects.filter(username=username):
            user = User(username=username,
                        email=email,
                        is_superuser=False,
                        is_staff=True,
                        is_active=True,
                        date_joined=str(datetime.datetime.now()))
            user.set_password(password)
            user.save()
            user_details = UserDetail(email=email,
                                      phone=cellphone,
                                      company=companyName,
                                      password=password,
                                      server_count=servercnt,
                                      name=username,
                                      org_name=organization_name,
                                      domain_name=sub_domain_name,
                                      user=user)

            org = None
            sentryInstance = None
            instance_list = AliyunSDK.AliyunSDK.get_instances()
            instance_list = instance_list['Instances']['Instance']
            sentry_list = []
            for e in instance_list:
                if e['InstanceName'][:len(settings.ALIYUN_ECS_SENTRY_INSTANCE_PREFIX)] == settings.ALIYUN_ECS_SENTRY_INSTANCE_PREFIX:
                    sentry_list.append(e)
            print 'sentry instance count: ', len(sentry_list)
            sentry_count = len(sentry_list)
            sentry_index = random.randint(0, sentry_count-1)
            sentry_instance = sentry_list[sentry_index]
            # create organization
            org_list = Organization.objects.filter(sentry_instance=sentry_instance['InstanceName'])
            while len(org_list) >= settings.MAX_SENTRY_INSTANCE_COUNT:
                sentry_index = random.randint(0, sentry_count-1)
                sentry_instance = sentry_list[sentry_index]
                org_list = Organization.objects.filter(sentry_instance=sentry_instance['InstanceName'])

            # update sentry_instance model
            sentry_ipaddress = sentry_instance['PublicIpAddress']['IpAddress'][0]
            print 'ipaddress = ', sentry_ipaddress
            url_prefix = "http://%s:%s" % (sentry_ipaddress, settings.SENTRY_DEFALUT_PORT)
            se_inst = SentryInstance.objects.filter(sentry_instance_name=sentry_instance['InstanceName'])
            if not se_inst:
                print 'sentry_instance_name = ', sentry_instance['InstanceName']
                sentryInstance = SentryInstance.objects.create(sentry_instance_name=sentry_instance['InstanceName'],
                                                sentry_instance_url_prefix=url_prefix)

            domain_name = sub_domain_name + settings.DEFAULT_SUB_DOMAIN_SUFFIX
            if not (Organization.objects.filter(organization_name=organization_name)
                and Organization.objects.filter(sub_domain_name=domain_name)):
                org = Organization(organization_name=organization_name,
                                   domain_name=sub_domain_name + settings.DEFAULT_SUB_DOMAIN_SUFFIX,
                                   sentry_instance=sentry_instance['InstanceName'])
            else:
                return render_to_response("loginsight/500.html")

            # save to database
            user_details.save()
            org.save()
            # add nginx vhost conf
            VHost.addVhostConf(domain=domain_name, organization=organization_name, sentry_url=url_prefix)
            VHost.reload_nginx()

            # add domain record for Aliyun Wan network
            resp = AliyunSDK.AliyunSDK.add_domain_record(domain_name=settings.OFFICIAL_DOMAIN_NAME,
                                                         RR=domain_name,
                                                         Type="A",
                                                         Value=sentry_ipaddress)
            return render_to_response("loginsight/signup-com.html")

        else:
            return render_to_response('loginsight/signup-infor.html',  context_instance=RequestContext(request))
    c = {}
    c.update(csrf(request))
    return render_to_response("loginsight/signup-infor.html", c)