diff --git a/get_from_tagia.py b/get_from_tagia.py index 8de3e1a20c19e1f7d4a7ec44cffde81193af1700..178b75a0503f97e06f547d05a853c701d51a009d 100644 --- a/get_from_tagia.py +++ b/get_from_tagia.py @@ -10,7 +10,7 @@ class Person(): Person class for describing informatron about users to page writer ''' - def __init__(self, member, user) -> (None): + def __init__(self, member, user, role_name) -> (None): ''' Constructor to Person object ''' @@ -18,9 +18,9 @@ class Person(): self.username = user.username self.photo = user.big_photo self.bio = user.bio - self.role_name = member.role_name[0], + self.role_name = role_name - def add_link(self, link): + def set_link(self, link): self.link = link class TaigaReader(): @@ -41,7 +41,9 @@ class TaigaReader(): Create Person with member and request to getting information from user ''' user = self._api.users.get(member.user) - return Person(member, user) + roles = self._api.projects.get_by_slug(self._project_slug).list_roles() + role_name = str(roles.get(id=member.role).name) + return Person(member, user, role_name) def get_persons(self): ''' diff --git a/list_page.tmpl b/list_page.tmpl new file mode 100644 index 0000000000000000000000000000000000000000..21da375c53c0d628e51cd437bea6aee6c137ba39 --- /dev/null +++ b/list_page.tmpl @@ -0,0 +1,8 @@ +# Список участников проектной школы +{% for role, persons in persons_by_role.items() %} +## {{role}} +{% for person in persons %} +* [{{person.full_name}}]({{person.link}}) +{% endfor %} +--- +{% endfor %} \ No newline at end of file diff --git a/main.py b/main.py index 9c129abf935fbaba7a69edadf615e8ae5927e52e..b3f50bb6b01a68bc2765f00b76ae7e602953483a 100644 --- a/main.py +++ b/main.py @@ -16,6 +16,6 @@ for person in reader.get_persons(): if not is_succes: print(f'Page not created for: {person.username}, message: {message}') -# writer.write_list_page(persons_by_roles) +writer.write_list_page(persons_by_roles) print('Pages created') \ No newline at end of file diff --git a/page_writer.py b/page_writer.py index d387cbd5394f8d20d9378b10e8176693a5df06ed..ab6158985871e4adb9f4ec37f1f7ded1474b0c02 100644 --- a/page_writer.py +++ b/page_writer.py @@ -11,10 +11,12 @@ class PageWriter(): def __init__( self, wiki_config, person_template='person_page.tmpl', + list_template='list_page.tmpl', query_template='query.tmpl' ): env = Environment(loader=FileSystemLoader('./')) self._user_template = env.get_template(person_template) + self._list_template = env.get_template(list_template) self._query_template = env.get_template(query_template) self._path = wiki_config['path'] sample_transport=RequestsHTTPTransport( @@ -37,13 +39,24 @@ class PageWriter(): path=self._path + person.username, title=person.full_name ) - print(query_text) resp = self._client.execute( gql(query_text) )['pages']['create']['responseResult'] link = '' if resp['succeeded']: - link = './' + person.user_name + link = './' + person.username person.set_link(link) return resp['succeeded'], resp['message'] + + def write_list_page(self, persons_by_role, title='Список участников'): + content = self._list_template.render(persons_by_role=persons_by_role) + query_text = self._query_template.render( + content=_normalise_str(content), + path=self._path + 'list', + title=title + ) + resp = self._client.execute( + gql(query_text) + )['pages']['create']['responseResult'] + return resp['succeeded'], resp['message'] diff --git a/person_page.tmpl b/person_page.tmpl index 716ed11ac3292afe58f87e049e23859679c7178d..56e18d61638bc0e8540bdfb7ce1401294e3eeb7e 100644 --- a/person_page.tmpl +++ b/person_page.tmpl @@ -1,4 +1,4 @@ -# {{person.full_name}} {{person.full_name}} +# {{person.full_name}} ({{person.role_name}}) <img src='{{person.photo}}'> ---