def create_new_user(self, rawname, role, email=""): """ Creates a new Person record with a unique username, or returns a person wiht the matching username""" ut = Utils() username = ut.cleanUserName(rawname) if ut.validateUserName(username): # check for username person = self.get_person(username) # create a new person if we have not got this one if person == None: person = Person() person.email = email person.passhash = "" # no passhash if not got a direct logon person.username = username person.displayname = ut.tidyUserName( rawname ) # allow the username to be updated on the myHoots or profile or summink person.before_put() person.role = role person.put() self._person = person return username else: return ""
def post(self): person = None if self.request.get("email").lower() != "": if not getPersonObjectByEmail(self.request.get("email").lower()): person = Person() person.firstName = self.request.get("first_name").lower() person.lastName = self.request.get("last_name").lower() person.email = self.request.get("email").lower() person.put() else: person = getPersonObjectByEmail( self.request.get("email").lower()) review = None if not getReviewObject( person.key): # person hasn't submitted a review. review = Review(parent=person.key) review.rating = int(self.request.get("rating").lower()) review.subject = "no subject" review.message = self.request.get("message_body") review.visitFrequency = self.request.get("visit_frequency") putReviewObject(review) else: pass review_template = jinja_env.get_template("templates/reviews.html") self.response.headers['Content-Type'] = 'text/html' self.response.out.write(review_template.render(renderAllReviews()))
def post(self): """Create new person""" person = Person() person.first_name = api.payload["first_name"] person.last_name = api.payload["last_name"] person.email = api.payload["email"] if "student_number" in api.payload: person.student_number = api.payload["student_number"] db.session.add(person) db.session.commit() return all_persons(include_active_partners=True)
def register(request): if request.method == 'POST': form = RegistrationForm(request.POST) if form.is_valid(): person = Person() person.name = form.cleaned_data['name'] person.email = form.cleaned_data['email'] person.save() return HttpResponseRedirect('../list/') else: form = RegistrationForm() return render(request, '../templates/register.html', {'form': form})
def go(request): tabselected = None filtertag = request.META['PATH_INFO'] if filtertag.find('/idea/') >= 0: filtertag = filtertag[6:] tabselected = filtertag.replace('/', '') # tabselected = 4 else: filtertag = None user = request.user rating = None if user.is_authenticated(): person = views.getPerson(request) if person: pratings = Rating.objects().order_by('score') if pratings and len(pratings)>=0: for prating in pratings: if person.currentRating >= prating.score: rating = prating else: break else: person = Person() person.email = user.email person.name = str(user) person.activationdate = datetime.datetime.now() person.save() views.incrementStat('users',1) pratings = Rating.objects().order_by('score') if pratings and len(pratings)>=0: for prating in pratings: if person.currentRating >= prating.score: rating = prating else: break template_values = { 'user':user, 'tabselected':tabselected, 'filtertag':None, 'rating':rating, } path = os.path.join(os.path.dirname(__file__), 'templates/ideas/index.html') return render_to_response(path, template_values)
def new_person(): if not g.site.domain == g.user: abort(403) p = Person() if request.method == "POST": reqfile = request.files.get('file') if reqfile: f = File() f.site = g.site.domain f.name = reqfile.filename f.content_type = reqfile.mimetype f.slug, f.content_length = save_file( reqfile, current_app.config["UPLOAD_FOLDER"]) f.save() p.site = g.site.domain p.name = request.form.get("name") p.title = request.form.get("title") p.phone = request.form.get("phone") p.email = request.form.get("email") p.twitter = request.form.get("twitter") p.description = request.form.get("description") slugs = [__p.slug for __p in Person.objects.filter(site=g.site.domain)] slug = slugify(p.name) counter = 1 __slug = slug while __slug in slugs: counter += 1 __slug = "%s_%d" % (slug, counter) p.slug = __slug if reqfile: p.image_slug = f.slug p.save() pl = Personnel.objects.get(site=g.site.domain) pl.people.append(p.slug) pl.save() return redirect(url_for(".show_personnel")) return render_template("edit_person.html", person=p)
def new_person(): if not g.site.domain == g.user: abort(403) p = Person() if request.method == "POST": reqfile = request.files.get('file') if reqfile: f = File() f.site = g.site.domain f.name = reqfile.filename f.content_type = reqfile.mimetype f.slug, f.content_length = save_file(reqfile, current_app.config["UPLOAD_FOLDER"]) f.save() p.site = g.site.domain p.name = request.form.get("name") p.title = request.form.get("title") p.phone = request.form.get("phone") p.email = request.form.get("email") p.twitter = request.form.get("twitter") p.description = request.form.get("description") slugs = [ __p.slug for __p in Person.objects.filter(site=g.site.domain) ] slug = slugify(p.name) counter = 1 __slug = slug while __slug in slugs: counter += 1 __slug = "%s_%d" % (slug, counter) p.slug = __slug if reqfile: p.image_slug = f.slug p.save() pl = Personnel.objects.get(site=g.site.domain) pl.people.append(p.slug) pl.save() return redirect(url_for(".show_personnel")) return render_template("edit_person.html", person=p)
def load_persons(): persons = [] managers = {} # TEAMS existing_teams = {} teams = Team.query.all() for team in teams: existing_teams[team.name] = team print(existing_teams) # ROOMS existing_rooms = {} rooms = Room.query.all() for room in rooms: existing_rooms[room.name] = room print(existing_rooms) # We try to use a custom persons file if it exists. If not, default file if (path.isfile(config.DATABASE_PERSONS_FILE)): persons_file = config.DATABASE_PERSONS_FILE else: persons_file = config.DATABASE_PERSONS_DEFAULT_FILE with io.open(persons_file, 'r', encoding='utf8') as f: for line in f: if (len(line) > 1 and line[0] != '#'): neo = Person() split = line[:-1].split(';') neo.login = split[2].strip().lower() neo.surname = split[3] neo.name = split[4] neo.birthday = datetime.datetime.fromtimestamp(float(format_date(split[5]))) neo.arrival = datetime.datetime.fromtimestamp(float(format_date(split[6]))) neo.job = split[7] neo.email = split[8] neo.skype = split[9] neo.fixe = split[10] neo.mobile = split[11] team = split[1] manager = split[12] room = split[13] if manager in managers: managers[manager].append(neo) else: managers[manager] = [neo] if (team in existing_teams): neo.team = existing_teams[team] if (room in existing_rooms): neo.room = existing_rooms[room] else: print('Error: Missing team ' + team + ' for ' + neo.login) persons.append(neo) for person in persons: # We link the managers if person.login in managers: person.subordinates = managers[person.login] db.session.add(person) db.session.commit()
def load_csv(self): """We create the persons from the data files.""" # check if the post request has the file part if 'csv_file' not in request.files: return redirect(url_for('database.get_view', error='Missing file')) file = request.files['csv_file'] # if user does not select file, browser also # submit a empty part without filename if file.filename == '': return redirect(url_for('database.get_view', error='Missing file')) if file: file.save(os.path.join(config.CSV_FOLDER, 'persons.csv')) # Cleaning the existing data. This change is not registered until the parsing is ok db.session.query(Person).delete() db.session.query(Team).delete() # Parsing the CSV file persons = [] managers = {} existing_teams = {} encoding_type = 'cp1252' #'ISO-8859-1' try: with io.open(os.path.join(config.CSV_FOLDER, 'persons.csv'), 'r', encoding=encoding_type) as f: reader = csv.reader(f, delimiter=',', quotechar='"') for row in reader: if (len(row) > 1): neo = Person() neo.login = unicode(row[1].strip().lower(), encoding_type) neo.surname = unicode(row[2], encoding_type) neo.name = unicode(row[3], encoding_type) neo.job = unicode(row[6], encoding_type) neo.email = unicode(row[7], encoding_type) neo.skype = unicode(row[8], encoding_type) neo.fixe = unicode(row[9], encoding_type) neo.mobile = unicode(row[10], encoding_type) # TEAM team = unicode(row[0], encoding_type) if not (team in existing_teams): print('Creating team ' + team + ' for ' + neo.login) neo_team = Team(team) existing_teams[team] = neo_team db.session.add(neo_team) neo.team = existing_teams[team] # MANAGER manager = unicode(row[11], encoding_type) if manager in managers: managers[manager].append(neo) else: managers[manager] = [neo] persons.append(neo) # We have to commit here first to create Team links # TODO : Add check on the persons here (ex: detect loops) db.session.commit() for person in persons: # We link the managers if person.login in managers: person.subordinates = managers[person.login] # We create a team hierarchy for subperson in person.subordinates: if (subperson.team_id != person.team_id): subperson.team.high_team = person.team db.session.add(person) db.session.commit() except csv.Error as e: return redirect(url_for('database.get_view', error=e)) except Exception as e: print e return redirect( url_for('database.get_view', error='Error while parsing. Check logs.')) return redirect(url_for('database.get_view', error=None))
from typing import List, Dict from models import Person, Order, str_to_dict def print_all(mylist) -> None: for item in mylist: print(item) person = Person() person.name = "Ольга Охманюк" person.email = "*****@*****.**" person.phone = "+79246432292" person.is_customer = True str1 = "[email protected];id=None; is_customer=True; is_performer=None; name=Ольга Охманюк; phone=+79246432292" result_dict = str_to_dict(str1) print(result_dict) person2 = Person.from_string(str1) print(person2)
Base.metadata.drop_all(db_engine) Base.metadata.create_all(db_engine) basedir = os.path.abspath(os.path.dirname(__file__)) # connStr = 'mysql+mysqlconnector://root:4Belki8Sov@localhost:3306/doudb' connStr = 'sqlite:///' + os.path.join(basedir, 'app.db') engine = create_engine(connStr, echo=False) recreate_database(engine) Session = sessionmaker(bind=engine) session = Session() person = Person() person.name = 'Eugeny Bobylev' person.email = '*****@*****.**' person.phone = '+79247401790' person.is_customer = True session.add(person) order = Order() order.customer = person order.url_source='https//contoso.com' session.add(order) session.commit() print(order.customer) for ord in person.customer_orders: print(ord)