prakhar joshi writes:

 > So you want to store only changed attributes under a specific list
 > style in the table ? Isn't that make the table dynamic in width as
 > sometimes only one attribute is stored and sometimes 3-4 attributes
 > are stored ?

That's a feature of object-relational managers (ORM) like SQLAlchemy.
In the background there will be a special value in the backing RDBMS
such as 'inherit' or perhaps NULL.  But NULL is risky because it has
assorted interpretations.

 > By extensibility you mean to add new attributes ?

Attributes.

 > or add new class as there are few classes in the
 > mailman/src/mailma/styles/base.py (but that can't be possible
 > through web interface, I guess? )

Anything's possible, but Zope's experience with that level of
through-the-web extensibility was pretty bad.  We don't need it.

 > > { name: <list specific>, read-only: no, notmetoo_default: no }
 > > { name: anonymous_overlay, read-only: yes, redact_all_addresses: yes }
 > > { name: discussion, read-only: yes, <usual discussion list options ...> }
 > >
 > 
 > If there are more than 1 attributes in the last section of above list style
 > configuration then the list table will not have the same width ?

I'm not sure what you're asking.  Tables have to have the same width
by definition.  You use NULLs or other special values to simulate
absence of a value, or a table join with optional attributes in a
separate table.  Object-oriented DBs can have different attributes for
each object.

 > unspecified attributes ? You mean attributes other than that of mailing
 > list table ?

No, I mean the attributes I was too lazy to write in the schematic
example above.

 > I think we are still not on same page for list style storage as
 > still there are few things that I have in my mind like admin can't
 > create its own new attribute, he/she can just change the value of
 > the attribute, right ?

Probably.  What I had in mind was that site admins could add new
Handlers that define attributes that aren't in the standard set, or
somebody could want to import a style from a later version of Mailman
that has such attributes.

 > And if that is true(admin can't add new attributes) than how can we
 > just store only changed/modified attributes in the styles table as
 > than the table will not have same width, lets assume for style A we
 > will store one attributes and for style B we will store two/more
 > attribute.

To create attributes on the fly is easy, even in RDBMS.  You have a
table user_defined_attributes with columns foreign_key, attribute_id,
and attribute_value.  Then do a select on the foreign key.

 > Basically the style table will be copy of mailing list table and
 > will have same number of column same as mailing list table with one
 > more column about permission (read_only or editable).

You need to be more careful about this.  I'm not sure exactly how this
is implemented in Mailman 3, but a mailing list has attributes (such
as the owner and the moderator list) that are not relevant to styles.
There is going to be a question of whether to refactor the list schema
into a "stylable" part and a "list-specific" part (so that the
stylable part is literally a copy of the style) or to copy the
individual attributes from styles to the list configuration.

_______________________________________________
Mailman-Developers mailing list
Mailman-Developers@python.org
https://mail.python.org/mailman/listinfo/mailman-developers
Mailman FAQ: http://wiki.list.org/x/AgA3
Searchable Archives: 
http://www.mail-archive.com/mailman-developers%40python.org/
Unsubscribe: 
https://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9

Reply via email to