Django Admin Revamp - Any updates?

1,674 views
Skip to first unread message

Victor Hooi

unread,
Apr 26, 2012, 7:06:06 PM4/26/12
to django-d...@googlegroups.com
Hi,

Is there any news on the Django Admin rewrite front?

I remember around a year ago, there was quite a bit of talk on revamping the Django admin UI - I think Idan Gazit was heading that, right?

Is that still on the Django roadmap? Any idea of whether it'll be in 1.5, 1.6, 1.7 etc?

Cheers,
Victor

h3

unread,
Apr 27, 2012, 4:01:18 PM4/27/12
to Django developers
I don't know the status of this project, but my guess is that you
shouldn't hold your breath for it.

Fortunately, there is Grappelli: https://github.com/sehmaschine/django-grappelli

We are currently working on making it compatible with django 1.4 (see
the "grappelli_2_4" branch)

Alternatively the branch on my fork works pretty well with 1.4:
https://github.com/h3/django-grappelli/tree/grappelli_2_4

Cheers

Idan Gazit

unread,
Apr 27, 2012, 5:19:47 PM4/27/12
to django-d...@googlegroups.com
Hey all,

Yeah, you aren't missing anything — originally I wanted to wait for the formrendering stuff, but that never panned out, and then I got busy.

Grappelli is lovely. Without knocking it at all, I think that the next version of the admin should be as forward-looking as the last version, which means rethinking what the admin does, not just how it looks. Unfortunately, I haven't stepped up to champion this beyond idle thoughts.

As noted, "don't hold your breath" would be wise. Even if we did jump in on an admin rewrite tomorrow, the fruits of that labour won't be one release in the making. The transition would probably resemble newforms, with "newadmin" appearing alongside "admin" in one release, then admin deprecated to "oldadmin" for one release, and finally disappearing after that. We wouldn't even release "newadmin" as a thing until we had something functional and mostly stable. I don't see much point in speculating when that might happen.

-I

On Friday, April 27, 2012 at 11:01 PM, h3 wrote:

> I don't know the status of this project, but my guess is that you
> shouldn't hold your breath for it.
>
> Fortunately, there is Grappelli: https://github.com/sehmaschine/django-grappelli
>
> We are currently working on making it compatible with django 1.4 (see
> the "grappelli_2_4" branch)
>
> Alternatively the branch on my fork works pretty well with 1.4:
> https://github.com/h3/django-grappelli/tree/grappelli_2_4
>
> Cheers
>
> On Apr 26, 7:06 pm, Victor Hooi <victorh...@gmail.com (http://gmail.com)> wrote:
> > Hi,
> >
> > Is there any news on the Django Admin rewrite front?
> >
> > I remember around a year ago, there was quite a bit of talk on revamping
> > the Django admin UI - I think Idan Gazit was heading that, right?
> >
> > Is that still on the Django roadmap? Any idea of whether it'll be in 1.5,
> > 1.6, 1.7 etc?
> >
> > Cheers,
> > Victor
> >
>
>
>
> --
> You received this message because you are subscribed to the Google Groups "Django developers" group.
> To post to this group, send email to django-d...@googlegroups.com (mailto:django-d...@googlegroups.com).
> To unsubscribe from this group, send email to django-develop...@googlegroups.com (mailto:django-develop...@googlegroups.com).
> For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.
>



Daniel Sokolowski

unread,
Apr 27, 2012, 5:55:20 PM4/27/12
to Django developers
On that note, why can't the fruits of Grappelli be used as a starting point?
--
You received this message because you are subscribed to the Google Groups
"Django developers" group.
To post to this group, send email to django-d...@googlegroups.com.
To unsubscribe from this group, send email to
django-develop...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/django-developers?hl=en.


Daniel Sokolowski
Web Engineer
Danols Web Engineering
http://webdesign.danols.com/

Idan Gazit

unread,
Apr 28, 2012, 4:13:03 PM4/28/12
to django-d...@googlegroups.com
As I wrote, I'd like to have a clear idea of what a new admin will accomplish before starting to bolt on enhancements, even great enhancements like grappelli.

The admin was an impressively future-proof design, given that it is still so useful years after it was designed. We should aim to make an admin that will be relevant and useful five years from now; we can't design for that without a couple of clear, simple goals. Grappelli may or may not align with those goals.

-I

On Saturday, April 28, 2012 at 12:55 AM, Daniel Sokolowski wrote:

> On that note, why can't the fruits of Grappelli be used as a starting point?
>
> -----Original Message-----
> From: h3
> Sent: Friday, April 27, 2012 4:01 PM
> To: Django developers
> Subject: Re: Django Admin Revamp - Any updates?
>
> I don't know the status of this project, but my guess is that you
> shouldn't hold your breath for it.
>
> Fortunately, there is Grappelli:
> https://github.com/sehmaschine/django-grappelli
>
> We are currently working on making it compatible with django 1.4 (see
> the "grappelli_2_4" branch)
>
> Alternatively the branch on my fork works pretty well with 1.4:
> https://github.com/h3/django-grappelli/tree/grappelli_2_4
>
> Cheers
>
> On Apr 26, 7:06 pm, Victor Hooi <victorh...@gmail.com (http://gmail.com)> wrote:
> > Hi,
> >
> > Is there any news on the Django Admin rewrite front?
> >
> > I remember around a year ago, there was quite a bit of talk on revamping
> > the Django admin UI - I think Idan Gazit was heading that, right?
> >
> > Is that still on the Django roadmap? Any idea of whether it'll be in 1.5,
> > 1.6, 1.7 etc?
> >
> > Cheers,
> > Victor
> >
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django developers" group.
> To post to this group, send email to django-d...@googlegroups.com (mailto:django-d...@googlegroups.com).
> To unsubscribe from this group, send email to
> django-develop...@googlegroups.com (mailto:django-develop...@googlegroups.com).
> For more options, visit this group at
> http://groups.google.com/group/django-developers?hl=en.
>
>
> Daniel Sokolowski
> Web Engineer
> Danols Web Engineering
> http://webdesign.danols.com/
>
> --
> You received this message because you are subscribed to the Google Groups "Django developers" group.
> To post to this group, send email to django-d...@googlegroups.com (mailto:django-d...@googlegroups.com).
> To unsubscribe from this group, send email to django-develop...@googlegroups.com (mailto:django-develop...@googlegroups.com).

Brett H

unread,
Apr 30, 2012, 3:16:24 AM4/30/12
to Django developers
Now that django is on github the best thing that could happen is to
set it free and split it out as a separate django-admin repository
that people can build on, and making site something like site =
load_admin_site(settings.ADMIN_SITE) so that people can do drop in
replacements. Not just that but splitting out the templates and static
assets into a django-admin-originaltheme repository.

In this fashion projects like grappelli can proceed in an opinionated
fashion on making changes to the admin as they see fit but remaining
compatible with the ModelAdmin specifications, and django can pull
back in the consensus commits. Grappelli does a lot of things right,
but now I'm wanting to drop twitter bootstrap in on top of it, and
tomorrow something else might be flavour of the month.

Increasing the flexibility for development and integration is more
important than trying to 2nd guess where we are going to be in 5 years
time.

Idan Gazit

unread,
Apr 30, 2012, 5:41:14 PM4/30/12
to django-d...@googlegroups.com


On Monday, April 30, 2012 at 10:16 AM, Brett H wrote:

> Increasing the flexibility for development and integration is more
> important than trying to 2nd guess where we are going to be in 5 years
> time.

Fair enough, but that sort of flexibility is available now. Nothing is preventing you from starting your 3rd-party admin app today.



The issue is Django's officially-blessed, officially-documented admin. I'm not sure it's better to have admin in contrib (or contrib at all, but that's a separate ball of wax). I have a feeling that this issue will probably be addressed once again now that we're on github.

All the same, if there's going to be an official django admin, I'd like it to give some thought to the issues I've raised. I have no problem (read: would love) to draw upon existing solutions for an admin revamp, but right now I don't have a fitness function to guide my decisions, and I think that is necessary. Not a spec, just an attempt to step back and think about what the admin should do.

-I


patrickk

unread,
May 18, 2012, 6:18:59 AM5/18/12
to django-d...@googlegroups.com
I agree with Idan. We mainly did Grappelli because of the look & feel (and then added some functionality like autocompletes).

However, it just doesn´t make sense to simply "beautify" the existing admin-interface. Rethinking the functionality, adding flexibility, being able to customize ... these are all necessary steps IMHO, but I´m still missing a clear approach/roadmap on how/when this should happen.

I planned to give a talk on djangocon.eu about how to improve the admin-interface. Unfortunately, I had to step back from that idea because of some customer-related projects. Still, the thoughts are there and I´m happy to discuss this issue anytime. This discussion could start with defining the so-called "trusted editor" – what does he/she knows resp. needs to know when dealing with the admin-interface? What are the consequences (e.g., does an editor care about an app-list, does he even know what it is)? What working-groups do we need (python, html/css, js, ...)? How can we publish the process/discussion? And much more ... let´s start ... but how?

best,
patrick

Victor Hooi

unread,
Nov 15, 2012, 10:23:10 AM11/15/12
to django-d...@googlegroups.com
Hi,

I'm guessing there aren't any updates on this? Lol.

Idan - you mentioned you'd like to get thoughts on what we hope to achieve in a new admin - basically, what is the purpose of Django's contrib.admin - is that right?

Is there some place that people can brainstorm or contribute their thoughts on this? Should somebody make a wiki page for collecting all this?

Cheers,
Victor
Message has been deleted
Message has been deleted
Message has been deleted

Christian Bertschy

unread,
Nov 16, 2012, 10:41:05 AM11/16/12
to django-d...@googlegroups.com
Hi everyone

At Divio we are working on a new look of the Django Admin for our projects. To be clear, it's just the looks. I agree 100% with Idan that a real revamp should consider not only the looks but also rethink the way the admin works (and we all know that this is a huge difference :-)). 


It's still in beta, but feel free to use it or even better contribute to it.

Here are some screenshots:

Have fun,

Christian

Stephen Burrows

unread,
Nov 21, 2012, 5:02:02 PM11/21/12
to django-d...@googlegroups.com
There is a project to create a third-party django admin. It is currently moving slowly, but it does have basic admin functionality.

irc: Freenode/#django-djam (if you want to ping me about it.)

--Stephen

Jeremy Dunck

unread,
Nov 21, 2012, 9:01:41 PM11/21/12
to django-d...@googlegroups.com
For the record: It's bad timing for Idan. He lives in Tel Aviv which
is currently receiving intermittent rocket attacks. He may be a bit
slow to respond. ;)

Let's wish him and his family safety and the luxury of worrying about
django's admin in good time.
> --
> You received this message because you are subscribed to the Google Groups
> "Django developers" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/django-developers/-/CTFFiNcb9KMJ.
>
> To post to this group, send email to django-d...@googlegroups.com.
> To unsubscribe from this group, send email to
> django-develop...@googlegroups.com.

Victor Hooi

unread,
Nov 23, 2012, 5:05:26 PM11/23/12
to django-d...@googlegroups.com
Hi,

Aha, I didn't realise he live in Tel Aviv. Perhaps I should FB stalk people more *grins*.

Well, our prayers are with you, Idan, hope you're keeping safe =).

Cheers,
Victor

Victor Hooi

unread,
Dec 13, 2012, 8:45:41 PM12/13/12
to django-d...@googlegroups.com, victo...@yahoo.com
Hi,

Wow, that does look nice =).

I know it's just a re-skin, but I do like the look.

It'll be curious to see whether the Django Core team would look at using this, and/or whether they're doing a deeper overhaul of the Admin interface...

Cheers,
Victor

On Friday, 14 December 2012 07:31:45 UTC+11, Riccardo Forina wrote:
Hi all,

I have an alpha version of a restyling of the django admin done with Bootstrap here: https://github.com/riccardo-forina/django-admin-bootstrapped
Based on my personal experience - I'm using it on several production sites - it's working pretty well. 

Maybe it can be a starting point for the UI revamp everybody is expecting. What do you think?

Riccardo

Riccardo Forina

unread,
Dec 14, 2012, 1:56:45 AM12/14/12
to django-d...@googlegroups.com, victo...@yahoo.com
Thank you! I discovered a video on the wild showcasing the installing and usage of django-admin-bootstrapped. If anyone is curious to see it in motion, here's the link (already at the correct second): http://youtu.be/St-30zsoDus?t=1h11m35s

Jonas Geiregat

unread,
Dec 14, 2012, 4:17:57 AM12/14/12
to django-d...@googlegroups.com

>
> Idan - you mentioned you'd like to get thoughts on what we hope to achieve
> in a new admin - basically, what is the purpose of Django's contrib.admin -
> is that right?


If I'm not mistaken the new admin interface couldn't be builded because none of the django core developers had the resources and time to start on such a large task.
Has the perhaps changed ?


>
> Is there some place that people can brainstorm or contribute their thoughts
> on this? Should somebody make a wiki page for collecting all this?
>

This would indeed be a great asset to get started!

James Pic

unread,
Dec 14, 2012, 4:36:19 AM12/14/12
to django-d...@googlegroups.com
There are *many* apps providing bootstrap templates for django.contrib.admin, here a few:

- I myself did such templates.

My thoughts, in case it helps:

- it takes just a few hours to convert Django admin to bootstrap, that's probably why there are so many admin/bootstrap apps out there,
- but it's better to tweak colors, just converting the HTML to bootstrap ends in a too "grayish", "sad" interface IMHO,
- it's a very popular demand - again that's why there are so many apps out there,
- it's a great opportunity to make a cool navbar,
- forms don't have .as_bootstrap() method, but django-forms-bootstrap provides |as_bootstrap. That's required for the admin/bootstrap integration to be "perfect", but optional to make it "good enough".
- this can live in external apps anyway ...

Riccardo Forina

unread,
Dec 14, 2012, 5:45:41 AM12/14/12
to django-d...@googlegroups.com
The problem with the external app approach is that it will break the integration between different apps. There is no way to avoid it.
Besides, developing something for the django.contrib.admin with an UI up to the recent standards is quite difficult.

Going Bootstrap is not only the thing of the moment, is a great way to open the admin app to a wide range of custom widgets already available to the Bootstrap ecosystem, with the nice plus of an out-of-the-box support for mobile devices. Commercially speaking, it's a winning choice.

I think that the actual fragmentation of the admin-bootstrap implementations is pretty bad for the django ecosystem. No one sane of mind would base his project on any of the available solutions because there is no official one, and new releases of Django may (will) break it.

In my opinion, the solution is easy. The core team should choose a project/team, bless it and wait to see how it will evolve. When ready, integrate it on the core and made it available as an _alternative_ to the default admin package.

--
You received this message because you are subscribed to the Google Groups "Django developers" group.
To post to this group, send email to django-d...@googlegroups.com.
To unsubscribe from this group, send email to django-develop...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.



--
Mobile: +39 3409090319
Visit my website: www.codingnot.es


is_null

unread,
Dec 14, 2012, 8:27:46 AM12/14/12
to django-d...@googlegroups.com
On Saturday, April 28, 2012 10:13:03 PM UTC+2, Idan Gazit wrote:
As I wrote, I'd like to have a clear idea of what a new admin will accomplish before starting to bolt on enhancements, even great enhancements like grappelli.

The admin was an impressively future-proof design, given that it is still so useful years after it was designed. We should aim to make an admin that will be relevant and useful five years from now; we can't design for that without a couple of clear, simple goals. Grappelli may or may not align with those goals.

As I just blogged: "Last year, I sent a letter to santa asking for 12 transformers with super laser powers. I waited nicely and then received a little playmobil."

A couple of "clear, simple goals", you ask:

0. Loose coupling goal

The new admin app should not include ChangeList (ie. django-tables2), form rendering (ie. django-floppy-forms), queryset filtering (ie. django-filter), etc, etc ....

1. KISS goal

The new admin app should not try to abstract the basics of Django elegant design. Instead of: admin.site.register(Foo, FooAdmin). I could use: url(r'myapp/foo/', admin.ListView.as_view(table=FooTableClass, filters=FooListFilters), name='myapp_foo_list'). Of course, I could use a shortcut / factory / something cool. But the new admin app would be so simple I wouldn't need ModelAdmin and I could override anything easily and I could even reuse parts of it in my own views (see "Loose coupling").

Hope this helps.

is_null

unread,
Dec 14, 2012, 9:00:45 AM12/14/12
to django-d...@googlegroups.com
I'm not sure if it's worth mentioning ...

2. Secure CRUD one-liner goal

The new admin app should, like the current admin app, allow the user to enable full secure (permission-based) CRUD in one line of code.

Travis Swicegood

unread,
Dec 14, 2012, 10:06:29 AM12/14/12
to django-d...@googlegroups.com
Is there a wiki page on the admin and changes that are planned for it?  This comes up every few months with a "hey, I've done X with the admin, can we just use it to replace/update contrib.admin?"  Would be nice to have everyone's (and by everyone's, I mean Idan's) thoughts on where the admin is heading so this conversation doesn't have to keep popping up (or at least it can be answered by "go contribute to {{ insert url }}."

/me goes back to yelling at kids on his lawn...

-T
--
Travis Swicegood | @tswicegood (most everywhere)

--
You received this message because you are subscribed to the Google Groups "Django developers" group.
To view this discussion on the web visit https://groups.google.com/d/msg/django-developers/-/fxyL124kbP8J.
To post to this group, send email to django-d...@googlegroups.com.
To unsubscribe from this group, send email to django-develop...@googlegroups.com.

Russell Keith-Magee

unread,
Dec 14, 2012, 8:38:58 PM12/14/12
to django-d...@googlegroups.com
On Fri, Dec 14, 2012 at 11:06 PM, Travis Swicegood <tra...@domain51.com> wrote:
Is there a wiki page on the admin and changes that are planned for it?  This comes up every few months with a "hey, I've done X with the admin, can we just use it to replace/update contrib.admin?"  Would be nice to have everyone's (and by everyone's, I mean Idan's) thoughts on where the admin is heading so this conversation doesn't have to keep popping up (or at least it can be answered by "go contribute to {{ insert url }}."

/me goes back to yelling at kids on his lawn...

To the best of my knowledge, no, this wiki page doesn't exist, and yes, creating such a wiki page, gathering requirements and so on, would be a good next step. 

The other thing I would point out is that admin is a contrib app for a reason -- it's a standalone app. It's entirely possible to recreate everything Django's admin does as a third party application. If a third party admin implementation were to appear that had a better feature set than the existing admin, and/or a better codebase to start from, and there was a reasonable migration path from old admin configurations to new admin configurations, *that* might be a viable way to get a new admin into Django.

However, all of this is dependent on someone having enough of an itch, and enough spare time to scratch it.

Yours,
Russ Magee %-)

Amirouche B.

unread,
Dec 15, 2012, 2:34:32 AM12/15/12
to django-d...@googlegroups.com
On Friday, April 27, 2012 1:06:06 AM UTC+2, Victor Hooi wrote:
Hi,

Is there any news on the Django Admin rewrite front?

I'm very interested in this topic and have some time to kill so I started the wiki page don't hesitate to comment, correct, review and add you own ideas.


Regards,

Amirouche

Amirouche B.

unread,
Dec 15, 2012, 2:31:46 PM12/15/12
to django-d...@googlegroups.com
Is there any news on the Django Admin rewrite front?

I'm very interested in this topic and have some time to kill so I started the wiki page don't hesitate to comment, correct, review and add you own ideas.

I made POC of django-hydro the widget composition framework using bootstrap, it's available at https://github.com/amirouche/django-hydro

Could you provide more insights about the issues you encounter while using and trying to extend the admin or better update the wiki page https://code.djangoproject.com/wiki/HydroAdmin or I'll add them myself.

Thanks in advance,

Amirouche

Amirouche Boubekki

unread,
Dec 21, 2012, 10:27:38 PM12/21/12
to django-d...@googlegroups.com

2012/12/15 Amirouche B. <amirouche...@gmail.com>
Hi,

I moved the page to AdminNext, did a bit of cleaning and added other admin apps, link https://code.djangoproject.com/wiki/AdminNext

Happy Holidays,

Amirouche
 

Victor Hooi

unread,
Dec 23, 2012, 6:21:19 PM12/23/12
to django-d...@googlegroups.com
Hi,

What happened to django-hydro?

Cheers,
Victor

Amirouche Boubekki

unread,
Dec 23, 2012, 11:31:08 PM12/23/12
to django-d...@googlegroups.com

2012/12/24 Victor Hooi <victo...@gmail.com>

Hi,

What happened to django-hydro?

Héllo Victor,

I moved everything to an orgnanization named django-composite, I took the name from Travis S. from the wiki, thanks to him, I find it great, it is exactly that: https://github.com/django-composite/django-composite-admin

That said I didn't push for sometime now. I will probably make a mini-annoucement on the user list so that people can give their feedback regarding current admin solutions and AdminNext.

I prepared a presentation, so you might want to look at it: https://speakerdeck.com/amiramazig/django-composite

Spoiler: It's somekind of HMVC or since Django use MVT name, HMVT. So far it has been proven overkill for the admin, but can be useful for middly complex widgets (Modal, Caroussel, Collapse), at least it looks promising to me, I don't have editing yet, so I will probably send a mail once this is done.

Thanks for your interest,

Amirouche

Victor Hooi

unread,
Feb 17, 2013, 4:10:26 PM2/17/13
to django-d...@googlegroups.com
Hi,

I just found ActiveAdmin, which seems to be a third-party Admin app for RoR:


What are people's thoughts on this?

It seems to share quite a bit with Django's admin, but also has some nice features:
  • Inbuilt CSV/XML/JSON downloads
  • Easily customizable navigation bar
  • "Scopes" - subsections?
  • "Index Styles" - different versions of the index page (table, grid, blocks, blog)
  • Customizable Sidebar
Anything we could use here to give us ideas for our own Admin efforts?

Cheers,
Victor

On Friday, 11 January 2013 05:09:46 UTC+11, Jason Kraus wrote:
Thought I would share another admin rewrite effort currently in progress:

Victor Hooi

unread,
Jun 18, 2013, 10:59:56 PM6/18/13
to django-d...@googlegroups.com
Hi,

Hmm, Daniel Greenfeld (pydanny) seems to have written another one, DjangoAdmin 2.0 as well:



Cheers,
Victor

On Monday, 11 March 2013 12:08:54 UTC+11, Pantelis Petridis wrote:
I'd like to add yawd-admin to the list. It's bootstrap, up-to date with the latest core admin changes, stable, the github master fully supports django1.5 and has many goodies like modal inlines, fancybox popups for add_related , custom widgets, db settings, google analytics support etc. 

gilberto dos santos alves

unread,
Jun 18, 2013, 11:04:28 PM6/18/13
to django-d...@googlegroups.com
yah... this is very good news for all of us. mainly when we are not
root user, and are jailed without bash, zsh. thanks. i will read
carefully. regards.

2013/6/19, Victor Hooi <victo...@gmail.com>:
> Hi,
>
> Hmm, Daniel Greenfeld (pydanny) seems to have written another one,
> DjangoAdmin 2.0 as well:
>
> https://news.ycombinator.com/item?id=5900083
>
> https://github.com/twoscoops/django-admin2
>
> Cheers,
> Victor
>
> On Monday, 11 March 2013 12:08:54 UTC+11, Pantelis Petridis wrote:
>>
>> I'd like to add yawd-admin <https://github.com/yawd/yawd-admin> to the
>> list. It's bootstrap, up-to date with the latest core admin changes,
>> stable, the github master fully supports django1.5 and has many goodies
>> like modal inlines, fancybox popups for add_related , custom widgets, db
>> settings, google analytics support etc.
>>
>> On Friday, December 14, 2012 11:36:19 AM UTC+2, is_null wrote:
>>>
>>> There are *many* apps providing bootstrap templates for
>>> django.contrib.admin, here a few:
>>>
>>> - https://github.com/michaelhelmick/django-bootstrap-admin
>>> - https://github.com/gkuhn1/django-admin-templates-twitter-bootstrap
>>> - https://github.com/riccardo-forina/django-admin-bootstrapped
>>> - https://github.com/aobo711/bootstrap-django-admin
>>> - I myself did such templates.
>>>
>>>
>>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-develop...@googlegroups.com.
> To post to this group, send email to django-d...@googlegroups.com.
> Visit this group at http://groups.google.com/group/django-developers.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>


--
gilberto dos santos alves
+55.11.98646-5049
sao paulo - sp - brasil
Reply all
Reply to author
Forward
0 new messages